Update
This commit is contained in:
29
roles/kubeconfigs/.travis.yml
Normal file
29
roles/kubeconfigs/.travis.yml
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
language: python
|
||||
python: "2.7"
|
||||
|
||||
# Use the new container infrastructure
|
||||
sudo: false
|
||||
|
||||
# Install ansible
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- python-pip
|
||||
|
||||
install:
|
||||
# Install ansible
|
||||
- pip install ansible
|
||||
|
||||
# Check ansible version
|
||||
- ansible --version
|
||||
|
||||
# Create ansible.cfg with correct roles_path
|
||||
- printf '[defaults]\nroles_path=../' >ansible.cfg
|
||||
|
||||
script:
|
||||
# Basic role syntax check
|
||||
- ansible-playbook tests/test.yml -i tests/inventory --syntax-check
|
||||
|
||||
notifications:
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
43
roles/kubeconfigs/README.md
Normal file
43
roles/kubeconfigs/README.md
Normal file
@ -0,0 +1,43 @@
|
||||
Kubeconfigs
|
||||
=========
|
||||
|
||||
Role to distribute kubeconfig for initializing the cluster
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
- kubeadm and all cluster components installed
|
||||
|
||||
Description
|
||||
--------------
|
||||
|
||||
The cluster.kubeconfig.j2 file will be placed into the $HOME/.kube directory on master node and used with the kubeadm init --config option to initialize the cluster.
|
||||
|
||||
- There is a file under this roles files directory for more complext creation of kubeconfigs.
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
|
||||
|
||||
Example Playbook
|
||||
----------------
|
||||
|
||||
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
|
||||
|
||||
- hosts: servers
|
||||
roles:
|
||||
- { role: username.rolename, x: 42 }
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
BSD
|
||||
|
||||
Author Information
|
||||
------------------
|
||||
|
||||
An optional section for the role authors to include contact information, or a website (HTML is not allowed).
|
2
roles/kubeconfigs/defaults/main.yml
Normal file
2
roles/kubeconfigs/defaults/main.yml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
# defaults file for kubeconfigs
|
229
roles/kubeconfigs/files/main_non-kubeadm.yml
Normal file
229
roles/kubeconfigs/files/main_non-kubeadm.yml
Normal file
@ -0,0 +1,229 @@
|
||||
---
|
||||
# tasks file for kubeconfigs
|
||||
|
||||
# Creating the kubeconfig files
|
||||
# First I used kubectl to generate a .kubeconfig for each k8sworker node that included 3 parts:
|
||||
# - "kubectl config set-cluster" to define the cluster
|
||||
# - "kubectl config set-credentials" to define credentials with a username as the hostname
|
||||
# - "kubectl config set-context" to set a context in the file to then use
|
||||
# use "kubectl config set-context" to then set that context in the config
|
||||
|
||||
# Each kubeconfig is created on the appropriate host at the time kubectl
|
||||
# command is run. Therefor, you must have distributed the required key and certs
|
||||
# to the nodes before running this role.
|
||||
|
||||
# worker node configs
|
||||
- name: Create worker kubeconfigs ( k8sworker01 )
|
||||
shell: |
|
||||
kubectl config set-cluster kubernetes \
|
||||
--certificate-authority=ca.pem \
|
||||
--embed-certs=true \
|
||||
--server={{load_balancer_address}}:6443 \
|
||||
--kubeconfig={{ worker01_hostname }}.kubeconfig
|
||||
|
||||
kubectl config set-credentials system:node:{{ worker01_hostname }} \
|
||||
--client-certificate={{ worker01_hostname }}.pem \
|
||||
--client-key={{ worker01_hostname }}-key.pem \
|
||||
--embed-certs=true \
|
||||
--kubeconfig={{ worker01_hostname }}.kubeconfig
|
||||
|
||||
kubectl config set-context default \
|
||||
--cluster=kubernetes \
|
||||
--user=system:node:{{ worker01_hostname }} \
|
||||
--kubeconfig={{ worker01_hostname }}.kubeconfig
|
||||
when: ansible_hostname == "k8sworker01"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- worker
|
||||
|
||||
- name: Create worker kubeconfigs ( k8sworker02 )
|
||||
shell: |
|
||||
kubectl config set-cluster kubernetes \
|
||||
--certificate-authority=ca.pem \
|
||||
--embed-certs=true \
|
||||
--server={{load_balancer_address}}:6443 \
|
||||
--kubeconfig={{ worker02_hostname }}.kubeconfig
|
||||
|
||||
kubectl config set-credentials system:node:{{ worker02_hostname }} \
|
||||
--client-certificate={{ worker02_hostname }}.pem \
|
||||
--client-key={{ worker02_hostname }}-key.pem \
|
||||
--embed-certs=true \
|
||||
--kubeconfig={{ worker02_hostname }}.kubeconfig
|
||||
|
||||
kubectl config set-context default \
|
||||
--cluster=kubernetes \
|
||||
--user=system:node:{{ worker02_hostname }} \
|
||||
--kubeconfig={{ worker02_hostname }}.kubeconfig
|
||||
when: ansible_hostname == "k8sworker02"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- worker
|
||||
|
||||
- name: Create worker kubeconfigs ( k8sworker03 )
|
||||
shell: |
|
||||
kubectl config set-cluster kubernetes \
|
||||
--certificate-authority=ca.pem \
|
||||
--embed-certs=true \
|
||||
--server={{load_balancer_address}}:6443 \
|
||||
--kubeconfig={{ worker03_hostname }}.kubeconfig
|
||||
|
||||
kubectl config set-credentials system:node:{{ worker03_hostname }} \
|
||||
--client-certificate={{ worker03_hostname }}.pem \
|
||||
--client-key={{ worker03_hostname }}-key.pem \
|
||||
--embed-certs=true \
|
||||
--kubeconfig={{ worker03_hostname }}.kubeconfig
|
||||
|
||||
kubectl config set-context default \
|
||||
--cluster=kubernetes \
|
||||
--user=system:node:{{ worker03_hostname }} \
|
||||
--kubeconfig={{ worker03_hostname }}.kubeconfig
|
||||
when: ansible_hostname == "k8sworker03"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- worker
|
||||
|
||||
# Kubeproxy config
|
||||
- name: Create Kubeproxy config
|
||||
shell: |
|
||||
kubectl config set-cluster kubernetes \
|
||||
--certificate-authority=ca.pem \
|
||||
--embed-certs=true \
|
||||
--server={{load_balancer_address}}:6443 \
|
||||
--kubeconfig=kube-proxy.kubeconfig
|
||||
|
||||
kubectl config set-credentials system:kube-proxy \
|
||||
--client-certificate=kube-proxy.pem \
|
||||
--client-key=kube-proxy-key.pem \
|
||||
--embed-certs=true \
|
||||
--kubeconfig=kube-proxy.kubeconfig
|
||||
|
||||
kubectl config set-context default \
|
||||
--cluster=kubernetes \
|
||||
--user=system:kube-proxy \
|
||||
--kubeconfig=kube-proxy.kubeconfig
|
||||
when: "'workers' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- kubeproxy
|
||||
- worker
|
||||
|
||||
# Controller manager config
|
||||
- name: Create controller manager config
|
||||
shell: |
|
||||
kubectl config set-cluster kubernetes \
|
||||
--certificate-authority=ca.pem \
|
||||
--embed-certs=true \
|
||||
--server=https://127.0.0.1:6443 \
|
||||
--kubeconfig=kube-controller-manager.kubeconfig
|
||||
|
||||
kubectl config set-credentials system:kube-controller-manager \
|
||||
--client-certificate=kube-controller-manager.pem \
|
||||
--client-key=kube-controller-manager-key.pem \
|
||||
--embed-certs=true \
|
||||
--kubeconfig=kube-controller-manager.kubeconfig
|
||||
|
||||
kubectl config set-context default \
|
||||
--cluster=kubernetes \
|
||||
--user=system:kube-controller-manager \
|
||||
--kubeconfig=kube-controller-manager.kubeconfig
|
||||
when: "'masters' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- controller
|
||||
- master
|
||||
|
||||
# Scheduler config
|
||||
- name: Create scheduler config
|
||||
shell: |
|
||||
kubectl config set-cluster kubernetes \
|
||||
--certificate-authority=ca.pem \
|
||||
--embed-certs=true \
|
||||
--server=https://127.0.0.1:6443 \
|
||||
--kubeconfig=kube-scheduler.kubeconfig
|
||||
|
||||
kubectl config set-credentials system:kube-scheduler \
|
||||
--client-certificate=kube-scheduler.pem \
|
||||
--client-key=kube-scheduler-key.pem \
|
||||
--embed-certs=true \
|
||||
--kubeconfig=kube-scheduler.kubeconfig
|
||||
|
||||
kubectl config set-context default \
|
||||
--cluster=kubernetes \
|
||||
--user=system:kube-scheduler \
|
||||
--kubeconfig=kube-scheduler.kubeconfig
|
||||
when: "'masters' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- scheduler
|
||||
- master
|
||||
|
||||
# admin config
|
||||
- name: Create sadmin config
|
||||
shell: |
|
||||
kubectl config set-cluster kubernetes\
|
||||
--certificate-authority=ca.pem \
|
||||
--embed-certs=true \
|
||||
--server=https://127.0.0.1:6443 \
|
||||
--kubeconfig=admin.kubeconfig
|
||||
|
||||
kubectl config set-credentials admin \
|
||||
--client-certificate=admin.pem \
|
||||
--client-key=admin-key.pem \
|
||||
--embed-certs=true \
|
||||
--kubeconfig=admin.kubeconfig
|
||||
|
||||
kubectl config set-context default \
|
||||
--cluster=kubernetes \
|
||||
--user=admin \
|
||||
--kubeconfig=admin.kubeconfig
|
||||
when: "'masters' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- admin
|
||||
- master
|
||||
|
||||
|
||||
- name: Ensure default context is set ( proxy )
|
||||
shell: kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
|
||||
when: "'workers' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- worker
|
||||
- proxy
|
||||
- setcontext
|
||||
|
||||
- name: Ensure default context is set ( worker )
|
||||
shell: kubectl config use-context default --kubeconfig={{ ansible_hostname }}.kubeconfig
|
||||
when: "'workers' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- worker
|
||||
- setcontext
|
||||
|
||||
- name: Ensure default context is set ( admin )
|
||||
shell: kubectl config use-context default --kubeconfig=admin.kubeconfig
|
||||
when: "'masters' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- master
|
||||
- admin
|
||||
- setcontext
|
||||
|
||||
- name: Ensure default context is set ( controller )
|
||||
shell: kubectl config use-context default --kubeconfig=kube-controller-manager.kubeconfig
|
||||
when: "'masters' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- master
|
||||
- controller
|
||||
- setcontext
|
||||
|
||||
- name: Ensure default context is set ( scheduler )
|
||||
shell: kubectl config use-context default --kubeconfig=kube-scheduler.kubeconfig
|
||||
when: "'masters' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
- master
|
||||
- scheduler
|
||||
- setcontext
|
||||
|
2
roles/kubeconfigs/handlers/main.yml
Normal file
2
roles/kubeconfigs/handlers/main.yml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
# handlers file for kubeconfigs
|
53
roles/kubeconfigs/meta/main.yml
Normal file
53
roles/kubeconfigs/meta/main.yml
Normal file
@ -0,0 +1,53 @@
|
||||
galaxy_info:
|
||||
author: your name
|
||||
description: your role description
|
||||
company: your company (optional)
|
||||
|
||||
# If the issue tracker for your role is not on github, uncomment the
|
||||
# next line and provide a value
|
||||
# issue_tracker_url: http://example.com/issue/tracker
|
||||
|
||||
# Choose a valid license ID from https://spdx.org - some suggested licenses:
|
||||
# - BSD-3-Clause (default)
|
||||
# - MIT
|
||||
# - GPL-2.0-or-later
|
||||
# - GPL-3.0-only
|
||||
# - Apache-2.0
|
||||
# - CC-BY-4.0
|
||||
license: license (GPL-2.0-or-later, MIT, etc)
|
||||
|
||||
min_ansible_version: 2.9
|
||||
|
||||
# If this a Container Enabled role, provide the minimum Ansible Container version.
|
||||
# min_ansible_container_version:
|
||||
|
||||
#
|
||||
# Provide a list of supported platforms, and for each platform a list of versions.
|
||||
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
||||
# To view available platforms and versions (or releases), visit:
|
||||
# https://galaxy.ansible.com/api/v1/platforms/
|
||||
#
|
||||
# platforms:
|
||||
# - name: Fedora
|
||||
# versions:
|
||||
# - all
|
||||
# - 25
|
||||
# - name: SomePlatform
|
||||
# versions:
|
||||
# - all
|
||||
# - 1.0
|
||||
# - 7
|
||||
# - 99.99
|
||||
|
||||
galaxy_tags: []
|
||||
# List tags for your role here, one per line. A tag is a keyword that describes
|
||||
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
||||
# remove the '[]' above, if you add tags to this list.
|
||||
#
|
||||
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
|
||||
# Maximum 20 tags per role.
|
||||
|
||||
dependencies: []
|
||||
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
|
||||
# if you add dependencies to this list.
|
||||
|
13
roles/kubeconfigs/tasks/main.yml
Normal file
13
roles/kubeconfigs/tasks/main.yml
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
# tasks file for kubeconfigs
|
||||
|
||||
- name: Distribute kubeadm config to be usedwith kubeadm init --config=
|
||||
template:
|
||||
src: cluster.kubeconfig.j2
|
||||
dest: /home/k8sadmin/cluster.kubeconfig
|
||||
owner: k8sadmin
|
||||
group: k8sadmin
|
||||
when: "'masters' in group_names"
|
||||
tags:
|
||||
- kubeconfig
|
||||
|
18
roles/kubeconfigs/templates/cluster.kubeconfig.j2
Normal file
18
roles/kubeconfigs/templates/cluster.kubeconfig.j2
Normal file
@ -0,0 +1,18 @@
|
||||
apiVersion: kubeadm.k8s.io/v1beta2
|
||||
cgroupDriver: systemd
|
||||
kubernetesVersion: 1.20.4
|
||||
kind: ClusterConfiguration
|
||||
controlPlaneEndpoint: "192.168.50.117:6443"
|
||||
apiServer:
|
||||
extraArgs:
|
||||
experimental-encryption-provider-config: /home/k8sadmin/encryption-config.yaml
|
||||
advertise-address: 0.0.0.0
|
||||
etcd:
|
||||
external:
|
||||
endpoints:
|
||||
- https://192.168.50.240:2379
|
||||
caFile: /etc/etcd/ca.pem
|
||||
certFile: /etc/etcd/k8s-master.pem
|
||||
keyFile: /etc/etcd/k8smasterkey.pem
|
||||
networking:
|
||||
podSubnet: 10.240.0.0/16
|
2
roles/kubeconfigs/tests/inventory
Normal file
2
roles/kubeconfigs/tests/inventory
Normal file
@ -0,0 +1,2 @@
|
||||
localhost
|
||||
|
5
roles/kubeconfigs/tests/test.yml
Normal file
5
roles/kubeconfigs/tests/test.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
remote_user: root
|
||||
roles:
|
||||
- kubeconfigs
|
149
roles/kubeconfigs/vars/main.yml
Normal file
149
roles/kubeconfigs/vars/main.yml
Normal file
@ -0,0 +1,149 @@
|
||||
---
|
||||
# vars file for kubeconfigs
|
||||
|
||||
# This should be the address of the load balancer that is reachable by clients
|
||||
load_balancer_address: https://192.168.50.117
|
||||
|
||||
# IP addresses of worker nodes
|
||||
worker01: 192.168.50.177
|
||||
worker02: 192.168.50.202
|
||||
worker03: 192.168.50.30
|
||||
|
||||
# Worker Hostnames for .kubeconfig templates
|
||||
worker01_hostname: k8sworker01
|
||||
worker02_hostname: k8sworker02
|
||||
worker03_hostname: k8sworker03
|
||||
|
||||
# If you decide to encrypt the certs inside your .kubeconfig, this is an example of what
|
||||
# each varaible would look like.
|
||||
ca_cert: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
61623136326563393735656439373863343334653030323064396564386532323438653936323231
|
||||
3936333063643832653534386636383239396630366139650a363230326562383835336233316337
|
||||
63326435633536336132626236366334326230303363666639623938346238633862643731326466
|
||||
3738306163343231630a383233653365653466643465666237356331643465343765363631636464
|
||||
62363135333630333166633536333565336464346261333934393432623963313938306232643566
|
||||
66386130316230383133303264633034313433333961666237333937666661623935643530353862
|
||||
35633664636261333635653834326562303938623533613932646233336230303731626362643830
|
||||
64363037373965396565636437363238366536383261363131336164303236373933343763356365
|
||||
39623634326536366531633563636234623565356134353763303236626432356366636263313236
|
||||
31383339393038333164346461396566613133376665326162386539343464636637363064656332
|
||||
30383461363364336330313936363865343863386631666137666438313666386139663434316139
|
||||
33393965353162336566373733323639646632316232323730363662616365623564653835663431
|
||||
66313031333730323764353466326361623034303731626130303136623162313338373463626530
|
||||
39333231656533303061383232313363646237336235666536356663373134373334363032343834
|
||||
61306164666338383235373635616565396533663439366539353631656137616631383038653830
|
||||
35663132383434666532376230353664376138373838323762633033383761333364393935393137
|
||||
35626431303634336264303936303262393539633963343434616666646638383662653530313531
|
||||
31396136393938373262383264373333363463376663383061356237323339383933306432383930
|
||||
61306665353939653463636435613466343932326333623062363839306434303638643930336536
|
||||
33336333656363363834343239663565356438363135636162656566393736386461356263333962
|
||||
35303165666432623238353264333830613864303962353538303862306538643333326439393564
|
||||
37333130643135633634633630633337646239303535643439636665383832303632333861386536
|
||||
32346532303933646531353133666161343363356433376666326533343335393636326263353265
|
||||
31303934363135373733343665663734313535366533373461636264666164373436303064393130
|
||||
37613733663165393032646561393738333430636165326436323632393830396163666465306564
|
||||
63303832383434613764343132346236333133343365656533363961613238366166383235623533
|
||||
31306461613732616134366234663364663765623638396131376462353537316461646534363034
|
||||
32656634353430666139386362633739383133613036616135636162303332656532623730373566
|
||||
30636639326132623761633064323566333263636264343931633463653732343263386164313562
|
||||
33623134363463353730643338376333303435346534386163646236323136376438376531346633
|
||||
34366165653138613565616365356164663861396339626130663835343136613465336262393738
|
||||
36636131616637613139653936343866623039313463383064343263396436613335323564393639
|
||||
39646235333433316539643263316263383235346666386266363131363138303334336462613237
|
||||
66316134633463636664376566633139356638346234386131613235346338353062313030623130
|
||||
36666635653233373036656137306433333832323739313830333534383132303130363033356661
|
||||
35373038333161393865656236663464626331643264633231663361636631626132356430656134
|
||||
31663638366536663233623636653536303762333832326462373836616564623364303034326234
|
||||
39333863336339376365663361386133393265636537383930343463663762383664366234303062
|
||||
64306635346161393063353465313634636561626163666464356537323638333061346339653366
|
||||
65633239623633366437633634383264656634353333383965303235363530363561336533353030
|
||||
66366463313731643836663862663065303161643338643433363164383632663930383763663363
|
||||
36613238323930393365366262333166363731623362383161373130303464663831363834616338
|
||||
35336164363035623137393466663838353463333062363932376337393363356630656363643364
|
||||
34386130336137326634333766626465393837396630613137356235623235396334653464383337
|
||||
31326336306434626334616234623166623933303162326537316230306362356231656165303561
|
||||
63346231323931383635353461316537633266373636316362666431336638353831356437323936
|
||||
62323539303531366434643531656331353838393334316263363562313062373830313762623831
|
||||
35643034353537663965316134393265656634613536313639633133623131313162326235303836
|
||||
31666235306130633830333462383866613939363135633037353034373135333664623739383366
|
||||
34343339373664316530393439386466653631353839343062643636643631373131323130666139
|
||||
64333238386335383236336265303433336138643366376538623763333963303864353038323230
|
||||
31656233373335333562636264306166363238613734393236623439633336336130623235373961
|
||||
31653336636565373833323466613733613735393463653362643035666166383236316130656435
|
||||
63363037326333313334613939343634373262353332616438336561653965623333313034386639
|
||||
34366564643566386462636431666166323138663866383965666334393238356661303339623635
|
||||
30653861666661343962623065346134336432343433656532646239663137353564653238386166
|
||||
39316462626538313762376566623663383364663338356331326232353834666362353232383965
|
||||
39363438313935373162373564303839643163386564396638303833333539656233653239366139
|
||||
35396366666339613565663633336138306639373336636663313734653832383662396164636230
|
||||
64653865623330313466393833373961306130396636343764663238323930666534393431333136
|
||||
34663265636163366266353536616230316431356339646563326133656338366433663535333838
|
||||
39666137323436313638646135653730663466383363303133663838616537366365366363666165
|
||||
31313538643932336662633139346561616637316166363064646661353038656236343231643435
|
||||
34323462373432373064613736653532363062613033373863303131316362393164633739613561
|
||||
38623830376236376235333932373536336233623030386261353566373533633638313463656437
|
||||
33616566336362346534366464396264323161333734313063643932363630343561373564383936
|
||||
61373530613061633838353436343538373966386261306566666236633534623362643935343131
|
||||
63313130663939666665323434333532653063353464353661386162646433336561636164353265
|
||||
33353130626431643639666466373437613636613235613764316633343835643533343231643636
|
||||
35383165313632656139633566336262626331633231633135366361653939333464613539346332
|
||||
34373330633030363836323937646138313230393233653732333765326534346661323462663034
|
||||
38336437373739313031666662383330366630666233343361613063656233643964336537393835
|
||||
32376265333264313362623335383839613134326437393365333864313833303932616561616530
|
||||
36333031386236356336633136633234616266366137653433383632383036323762326137303234
|
||||
30343837623863316135623136383662316563393332303166363135303265653561616637306335
|
||||
66306136636436343362363037336232343236353836366333656337663466613132633530643335
|
||||
31636132313637363064623833336466326363613238343132613862663836663162383963336664
|
||||
33313736393232376631336663376437613230346434353763653966353566613031303032663336
|
||||
32393866633530356461386235616663383238336665346137363630306263333631316237303437
|
||||
62626136666636353830663463636431613732383466323633396237343131333630393463316466
|
||||
32613236363633313830623366663161303135393034663264353836626637613061623635643837
|
||||
31366561643263343438303862346236306434306239623733393363643030623939343335333039
|
||||
62643737666364303734373238666434636339376263326539333266663332343938333134306261
|
||||
63353133303130663038363332343366303735666234646238303435326566616235663734333966
|
||||
36383635666135316137353437323135626131323362613833626634633331356239316635646634
|
||||
37323831663630373165323531646563613738653239363964613938633737316237643863663064
|
||||
34346265363533303032613262366132383166643135333564333765393635306265303330353531
|
||||
38643533373732386334616165643737313830383461353734356635366130376639613335646164
|
||||
39386161356338656535616239663664313334386166623666666538326232336637326231623931
|
||||
65623330626333343639633339656661653266633837393735376538623463653863383761373339
|
||||
65353064643739353565646335303039643562666138353136393634613832346265653935343939
|
||||
38646631316138373530346235303864653531616234616262303236663439333761386661373436
|
||||
32366232303963653339613162326637663662336563376362383132656133643764643665366433
|
||||
30646136373133623330353331383834356631626265333365613466623739613265646537316136
|
||||
30333662356135376237333166643633333163383536653763326163623965643666326439313832
|
||||
64626333396362646436363638663765643134363162626566646436633264383662303539393565
|
||||
61353438633164336364653064326536363464613437373233636531373535626137313831613838
|
||||
35353933343962373164386362663563313566356462623031623361616439663566626564643166
|
||||
35343231616161353765376335353736303162643333613765393362643561633064626338616265
|
||||
66663962363431303163336662343739626532313231656136666134336433373033303130643939
|
||||
31656437393531646665306263363639666636326330386336316433373566323439636666643139
|
||||
32333131653032653233326566393130323631363563623537666566626634653138646265316532
|
||||
39616563303238363762653832393063366435636161393132303731303565313233616165316361
|
||||
31363634303630363162373137383465333563303939373734663233666465356331623539653464
|
||||
38333236396164393731343438393563333430663764336665333264313635623030383662376536
|
||||
62303537343339623231616637363032323531663332646539343063363338663635666466646135
|
||||
35333137323234663039393732353662646639313932643435643262373732326162653533623434
|
||||
39663161356531366464396433613830386564663432346363633837313333643533653366353437
|
||||
61373538616132373266653665663162373664653663666661333063396166323566643264613637
|
||||
63373866623032623135653833323830323537383032326232653462373337653563336533373965
|
||||
33343961383439303835643166323936613039373637653837316636303531376633646265653161
|
||||
61356231663432346662323566356433633332393235656465363639313637353831303865343265
|
||||
32613636303230393162646134396534616435633739633863633663373563393434653535346338
|
||||
66653636623530653634326239613963396564346237343831306339623565313863643064383133
|
||||
31386635383636643833633632396265613630633637373339393531376135356265646537326163
|
||||
39656434613463376230626464313063393662313739356333326364613739646462646663613931
|
||||
37653538626636376638336439323562306161356531386537633063316632653164656336663535
|
||||
62373761623165613331643764326366623565366638306461616163333264303036636264616437
|
||||
32316132663632326266626436633539623663663338613034326636333936366664333037363935
|
||||
30663762643030396465626261343738633062316362396564663536623964663361666433393934
|
||||
35393733316462366265313633616463366237323739386239383838613631323835663666626637
|
||||
39373666313962376535613534313266366233393165366233613235393962383833633930623963
|
||||
63616261346534376661363564623365343737313066623230663438386237646232396663326138
|
||||
64313731313839666137326239313331336663353762376336653764343566323161356231666634
|
||||
39663832613237656435316530373863383564636162643534333334373539316331386563373132
|
||||
38333631333064326563613736363839303931626561363063393231343938653937333465653966
|
||||
36633063306131303463326438323138633163323363353834336136616134663933653033626233
|
||||
39363863656165313066343933353633623530366563336563303333643339336534353862633361
|
||||
31383936343264646336666234656239616261646230303061356235363462643761
|
Reference in New Issue
Block a user