ansible devops codestyle
α α! αααααβαααααααα»αβααΊ
ααααα»αααααααααααααααααΌααα·ααΈαα½αααΎααααΈαααα
αα’ααααααα»αααΆαααΆαααααααΆαα ααααα»ααααααααααααααΌαααΆαααααα»ααα»ααααααΆααα’ααααααααααΎαα½ααΆααΈαα
αααα»αααααα
ααααααααα½ααααα½α
α αΎα α αΎαααΆαα’αΆα
- αααααΆαααααΎαα’ααααα αααα»αααΌα ααΆαα·αα’αΆα αα αα½α αααααα»αααΆααααααααΆααααΌαα’αααΈαααααΆααα½ααα»αααααΌαα
- ααΆααα½ααΆααΈααΆα αααΎα α αΎαα’αααααααΌαααααΆααααΆαα½αααααααα½α ααα»ααααααΆαα·αααααΎαααΆαααα
- ααΆαααΆααα·ααΆααααα»αααΆααααααααααα’ααααααααΈααααααααααααα·ααααΆααα’ααααα αααα»αααααα αααααααα’αααααααΎαααΆα
ααΎαααΆααα½αααααααααα αΆααΆαααααααΎαααααααα αααα»ααααα»αα αα»αααααααΎα αααααΆαααααααααααΎαααΆααααααΎαα αααΆαααααααΆααααΆααα ααΆα’ααααα αααα»αααααα αααααααααΎα ααααααα»αααααα·αααααααΆααααααααΆααααα αΆααΆαααααα
α’ααααααα»ααα½ααΆααΈ
αα½ααΆααΈααΊααΆααααα»ααΆα ααααα‘ααααααααααααααΆαααααααΆαα ααΌα ααααα»ααααααααααΆαα½αααα ααΆααααΌαααααΆαα ααα»α αααααΆαααααααΆααα’ααααααααααΆαα½αααααααααααααα αααα α ααα»α αααααΆααααααααααΊααΆα’ααααα½ααΆααΈα
α
αΌαααΎαααα§ααΆα ααααα½ααΆααΈ api
αααααα‘αΎααααααα·ααΈ Java αα
ααΎαααΆαααΈαααα ααΎααΆα’αΆα
ααΆαα’αααα’αααΈαααα?
αα½ααΆααΈα’αααα’αΆα α ααα ααααΆ α’ αααααα αα ααΆαααααααα
1. Π‘Π²ΠΎΠΉΡΡΠ²Π°
a) Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΡ ΡΡΠ΅Π΄Ρ
Π±) Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΡ ΡΡΠ΅Π΄Ρ
2. Π‘Π²ΡΠ·ΠΈ
a) ΡΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ
Π±) Π·Π°ΠΏΡΠΎΡΡ Π²Π½ΡΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ
Π²) Π·Π°ΠΏΡΠΎΡΡ Π² ΡΡΠ΅Π΄Ρ
αααααααααααααα·α’ααα ααΊααΆα’αααααααααααα₯αα·ααΆαααααα½ααΆααΈαα½αα
α’ααααααα½α - ααΆαααααααΊααΆα’αααααααααααααααΌαααΆαααααΎααΎααααΈαααααααααΆαααΆααααα αα ααΉααα½ααΆααΈα
α’αααααααΆααα’ααα - ααΆαααααααΊααΆα’αααααααααααααααΌαααΆαααααΎααΎααααΈαααααΎαα’αααααααΎαα»αα
αααααΆααα·αααα 1a, 2a, 2b ααΊααΆα’αααααααα·αα’αΆαααααααΎααα·ααααΆα (αααααααΉα ααααΆαααΆααααα ααα) α αΎαα’αΆα ααααΌαααΆααααααααααααααααααΆαααΎααα αααα»ααα½ααΆααΈααααΆαααΎαα ααααααΆαααΆααααα ααΆαα·αα’αΆα αα αα½α αααααα»αααΆααααααα’ααααααααααα 1.b αα·α 2.c ααΆαα½αααΉαααααααααα ααΈ 'α§ααΆα ααα' αααααααΆααΉαααααΆααααααΌαααΈαααα½ααα ααα’αΆαααααααΎααα·ααααΆαα
αα ααΆαααααααΌα
- αααααα’αααααααΌαααα αΆααααααΎααααααααααα½ααΆααΈα ααΆααΉαααααΎα±ααααΆααΆααααα½ααααα»αααΆαααααααααααΆαααα’ααΆααααΆααΎαα½ααΆααΈα’αααααααΈα’αααΈ αα·αα’αααΈαααααΆααα½ααα»αααααΌαα
- αα αααααααΎα’ααααααα»ααα½ααΆααΈ α’αααααααΌαααααααΆααααΆααααΎααΆααααααΆαααααααΆααα»αααααα α αΎαααααΎα’ααααααααΆααααααααΆαααα αααα»ααα½ααΆααΈαααα½αααΆ α¬αααα»ααα½ααΆααΈααααα αα α»ααααααα’αΆαααααα
-
αααααΆαααΆαααααΎαα ααΆαα»αααααααααΆααα’αααα Ansible αα·αα’αα»ααααΆαα±ααα’αααααΆααααα½αααα·αααααααααα»αααααα αααα»ααα ααΆαα»ααααααα
α§ααΆα αααααα’αααα’αΆαααααα
myrole_user: login: admin password: admin
αα ααΈαααααΆαα αΌαααΊααΆα’αααα―αααΆααα α αΎαααΆααααααααΆααααΊααΆα’αααα’αΆαααααα ααα»αααα
αααααΆααα½αααΆααααΌαααΆααααα αΌαααααΆαα αααα»ααα ααΆαα»αααα α’αααααΉαααααΌααααααΆααααΆααΆαααααα»α
ααΆαα·α αα α αααααΆααΆααα’αΆαααα’α½αααααΆααααΆααα αα·ααΈαααααΆαααααααααΎααmyrole_user_login: admin myrole_user_password: admin
α’αααβαααα»αβααααα βαααβαααβααΆααβα±ααβααααΎ
αα αααα αααααααααα ααααααααΆααααΆαααααααΆα (ααα αααα α ααΆααααα ααα) ααΎααααααΆααααααΆααααΌαα αααΆαααααααΆαα½αααααααΌαααΆαααΆαααα αααα»αααααΆααααΆα ααααα‘αααα½αα ααΌα ααααΆααΉααα½ααΆααΈα ααΈαα½αααα αααα»αααααΆαα git αααααααα½αα αααα’αα»ααααΆαα±ααα’ααααααααΆαα½ααΆααΈ αα·αααααα αααααΊααΆααααα»α―αααΆααααααααααααΆααααααααααααΆαααααααΆα α αΎαααΆαααααΆααααααΌααα αααα»αααααα»αα½ααα·ααα½ααααααΆαααααααααα·ααααα·ααΆααααααα½ααααααααααααααα αααααααΌαααΆααααααα αααααΆαααααΆααααααΌααααααααααΆαααΎαααα’αααα
αα αααα αααααααααα ααα ααΎααααΈαααααα ααΆααΊα’αΆα ααααΎαα ααΆαααΎααααΈααα·ααααααααααααΆαααΎαααα’ααααα½ααΆααΈαα αααα»αααΈαααααααα αα αααα»αα’ααα playbook αα·ααα αααα»αα’αααααΆαααΎαααααα
mydeploy # ΠΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π΅ΠΏΠ»ΠΎΡ
βββ deploy.yml # ΠΠ»Π΅ΠΉΠ±ΡΠΊ Π΄Π΅ΠΏΠ»ΠΎΡ
βββ group_vars # ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠ°
β βββ all.yml # Π€Π°ΠΉΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ²ΡΠ·ΠΈ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
β βββ myapi.yml # Π€Π°ΠΉΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² Π³ΡΡΠΏΠΏΡ myapi
βββ inventories #
βββ prod # ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ prod
βββ prod.ini # ΠΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΡΠ°ΠΉΠ»
βββ group_vars # ΠΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ
βββ myapi #
βββ vars.yml # Π‘ΡΠ΅Π΄ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π³ΡΡΠΏΠΏΡ myapi
βββ vault.yml # Π‘Π΅ΠΊΡΠ΅ΡΡ (Π²ΡΠ΅Π³Π΄Π° ΡΡΠ΅Π΄ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ) *
* -
ααΆααα»αααααΆαααααΊααΆα’ααα playbook αααααααααΌαααΆαααααΎααααΆαααα αααα α playbooks αααααΆαααΈααΆαααα ααααα·αααΌα ααααΆααΆαα½αααΆα αααααΆααααααΆα’αααααΆαααααααΊα’ααα αΆααααααααΆααααΆαααααΆααααααΌααααααααααΆαααΎαααα’αααα―αααΆαααααΈααα·ααααΆαα αααα»ααα αα·α α’αααααΆαααΎαααααααΉαααααΌαααΆαααααΎαααααΆααααααα·ααΆααΆαααΆααααΆαααα½αααα»ααααα αααααα’αααααΆααα’αααααΆααααΆααααααα·ααααΆαα
ααΆααΆααΆαααααΆαααααα»αααΆαααααααααΆααααΆα’αΆαα·ααΆαα’αααααΉααα·αα’αα»ααααΆαα±ααα’αααααα·αααα’αααααααΌααα αααα»αα’ααα playbook α αΎααααααΆααααααΆα ααααα‘ααααΈααααΆαα αααα»αααΆαααΎααααααα½αα
αααααΆααααααΆαα½α α αΎααα ααααΆααααΆαααα ααΆα αΆαααΆα ααααα»αααΆααααααα α α·αααααΆααΎα’αααα’αΆαααααααΎααα·ααααΆαα¬α’αα α αΎαααΆααααΆαα ααααααααααααα
α§ααΆα ααα αα αααα»ααααααααα½α α’ααααααααα½ααα»αααααΌαα ααααααΆαααΎα SSL ααΊα’αΆαααααααΎααα·ααααΆαα’ααααααααααΆααΌα αααααΆαααΎααα·αα’αΆα ααΎα SSL αααααΆααα ααα»αααααααΎαααΈααΆααααααααααααααααΎααα ααΈααΆαααα½αα αααααΆααβααΈβααΎαβααΆαβαααααααΆαβαααα αΆβααα ααΆβααΆαβααααΆαβαα βααΆβααα·ααααΆαβα―αααΆααα α αΎαβααΆαβααααΆααβαα βα’ααα playbook α
α’αααα’α αααααααααααααΆαααααα»α
α αΌααααααΈαααααΌααααααΎααα αααα»αααΌαααΆαααΈ 1 ααααααααααααα»α 2 αααααΆαααΈαααααΆαα½αααΉααααααα·ααΈ Java αααααααααΆ ααα»ααααααΆαα½αααΉαααΆαααααααααααααααΆα
αααβαααααβααΎαβααΆβααααα βαααβααΉαβααΆαβααΌαααΆαβαααΆαβααΆβαααα»αβααααΈβαααα
- hosts: myapi
roles:
- api
- hosts: bbauth
roles:
- auth
- hosts: ghauth
roles:
- auth
ααΎαααΆααααα»αααΈαα αααα»αααααα ααα ααΌα ααααααΆααααΌαααΆαααααΆαααααΆααα±αααααααΎαα ααα½αα―αααΆααααα»αααΌα ααααΆαα αααα»αα’αααααΆαααΎααααα group_vars αα·αα’ααα playbook α α―αααΆααααα»ααα½ααα αααα»αααααΈαααααΊααΆααΆααα·αααααΆαααααΆαααΆααα½ααααααααα·ααΈααΆαααΎαα αααα»αααααα αααα αα αααα’αααααΎαα―αααΆααααα»ααα αααα»αα’ααα playbook α’αααααΎαααΆααα»αααααΆααΆααα’ααααΈα₯αα·ααΆααααααΆαααΎααααα½ααΆααΈαααααΆαααα‘αΎααα ααΎαααα»αα αα αααα»αα’αααααΆαααΎαααααα ααΆααα»αααααΆαα αααα»αα₯αα·ααΆαααααα»αααΈαααα½ααα ααααααααα
αα ααΆαααααααΌα
- ααααΆααΆααα·αααααΎα’ααα host_vars ααΆααααααα ααααααα½ααααα·ααααααΆα’αααΈαααααααα ααα»ααααααΆαααααααΈαα·ααααα½αααα»ααααα ααααα αααα’ααΆααααΉαααΆαα±ααααΆααααα½αα "α ααα»α’αααΈααΆαααΆαααΆαααΈαααααα»αααΈα’αααααααα?" α ααααΎαααααα·αααα αααααααΆααααα½αααα
α’αααααααΆαααααα
ααααααΆαααΆααααα αααααΊααΆα’αααΈαααα’αααα’α
ααααααααααΆαααΆααα’αα ααα»ααααα
α»αα’αααααααΆαααααααα·α?
ααΆααα»αααααΆαααααα½αααααΊααΆαα½ααααα½αααααΆαα’ααααααααΌα
ααααΆαα
αααα»ααααα»αααααααααααΆα
ααααΌαααΆααΊααΆ
hostvars[groups['bbauth'][0]]['auth_bind_port']
ααα»ααααβαα½αααβααΆαβααα·αααβααααΆαα
αααααΆαααααΆααΆααα»ααα·ααααα·α ααΈαα½αααΆαα
ααααΌαα
αααααα ααΈααΈα ααΆαααΉαααα’ααααΎαααΆαααΈαααΆααααΆαααα½ααα
αααα»ααααα»αα ααΈααΈ αα»αααΉαα
αΆααααααΎαααΆααα±ααααααΎααααΆαα α
αΆαααΆα
αααααΌααααααΌαααΆααα·αααΈαααΆαααΈαααΆααα’αα ααααα·αααΎααΎααα·αα
ααααα½αααΆαααα α»αααα’αααααααα·αααΆααααααα
ααΆαααααα ααΆααααΌαααΆααααααα α α·αααααααΎα’αααααααΆααααααα
α’αααααααΆαααααα - ααΆαααααααΊααΆα’ααααααααΆαααααα·αααα·αααα playbook α αΎαααααΌαααΆαααΎααααΈααααΆααααααα»ααααααααα
α’αααααααΆααααααααααΌαααΆααααα
αΌααααα»αα’αααααααααααααΌαα
group_vars/all/vars
α αΎαααααΌαααΆααααααΎαα‘αΎααααααΆαααα’αααα’αααααααΆααααΆααα’ααα
ααααΈαααα»αααΈαα½αα α αΎαααααααααααααααα»ααααα’αααααααΆααααααΌαααΆαααα
αααα
ααΎαα’αααα
αααααΆααΆα±ααααΆαα―ααααααΆααα·ααα·ααααα½ααααΈααααΆαααααααα
αααααααΆααΆαα αα’αααααΈα§ααΆα αααααΆαααΎα
α αΌααααααααΆααΎαααΆαα’ααααααα’αΆαααααααΎααααΆαα αα·ααα ααα
# roles/api/defaults:
# ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π°ΠΏΡΠΎΡΠ°
api_auth1_address: "http://example.com:80"
api_auth2_address: "http://example2.com:80"
# roles/auth/defaults:
# ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ
auth_bind_port: "20000"
α
αΌαααΎαααΆααααΆα
αΌααα
αααα»αα’αααααΌαα
group_vars/all/vars
α’αααααααΆααααΆααα’αα α αΎαααααααααααααααα»ααα
α
αααααΎαα
# group_vars/all/vars
bbauth_auth_bind_port: "20000"
ghauth_auth_bind_port: "30000"
# group_vars/bbauth/vars
auth_bind_port: "{{ bbauth_auth_bind_port }}"
# group_vars/ghauth/vars
auth_bind_port: "{{ ghauth_auth_bind_port }}"
# group_vars/myapi/vars
api_auth1_address: "http://{{ bbauth_auth_service_name }}:{{ bbauth_auth_bind_port }}"
api_auth2_address: "http://{{ ghauth_auth_service_name }}:{{ ghauth_auth_bind_port }}"
α₯α‘αΌαααααααααΆαααααΆααααααΌααααααααα§αααααααααΆααααΎαααΉαααααΆααααΆααααΎααΉααα αααααααααααααα ααααααα·ααα α
αα ααΆαααααααΌα
- αααααΆααα½ααΆααΈ αα·ααααα»αααΊααΆααααα»ααααααααααααααααααΆ αα½αααααααΌαααΆαααααααααααααααΆ αααααΆααααα’ααααααααΉααααα αΆααααΆαααααΉαααααΌαααΆαα½αααααΆαααααα·αααα·αααααααα»αααΆααααΆαααααααΆαααΈααα αα·αααααααααΆαααα½ααΆααΈαα αααα»ααααααααααααααα
α―αααΆααααααΉαααα’ααααΎααα·ααααΆα
αα½ααΆααΈα’αΆα ααααΎα―αααΆαααααα»αααΈααα·ααααΆααα ααα·ααααΆαα
α§ααΆα αααααα―αααΆαααααααααΊαα·ααααΆαααααα SSL α αααααΆαα»ααα½αααΆααΆααααααα’ααααα
αα
αααα»αα’αααααΊαα·αααΆααααα½αααα ααα»ααααααΆααΆααααα½ααααα»αααΆααααααΆαα»αααααΌααα
ααΆαααα½αααΆαα
ααΆααααα»αα’ααααα½αα
α§ααΆα αααααΎαααααΎα’ααα api_ssl_key_file: "/path/to/file"
.
αααααΆαααΆα
αααΆααααΆααααΆαα·ααααΆααααααααααΉαααααΆααααααΌαααΈααα·ααααΆααα½ααα
ααα·ααααΆα αααααΊααΆα’αααα’αΆαααααααΎααα·ααααΆα αααααΆααααααΆααΆαα½αααααΆαααΈααΆαααα
αααα»αα―αααΆαα
group_vars/myapi/vars
ααΆαααΎαααααααα’ααα αα·αααΆαααααα 'α§ααΆα ααα' α
αααααααΆαααΆααααα½ααααα»ααααα»αααααΈαααααΊααααΌαααΆααα―αααΆααααααΉααα
αααα»αααααΆαα playbook ααΆαααααααααααΌα
files/prod/certs/myapi.key
αααααΆαααααααααααα’αααααΉαααΆαα
api_ssl_key_file: "prod/certs/myapi.key"
. ααΆαααΆααααα½αααΊαααα·ααα
αααα»αααΆααα·ααααααΆααα»ααααααααα½ααα»αααααΌααααα»αααΆαααΆαααααααΆααααααααααα
ααααααααΆααααΆαααα½αααααΆαααααααααααΆαααααα½ααααααα½ααααα
αααα»αααααΆααααΎααααΈαααααΆαα»αα―αααΆααααααα½αααα αααα»ααααααΆαα½αααααΆααα ααΆαα
ααα’αΆα
αααααΆααααααΌαααΆα
αααΆααα
ααΆαααα·ααααΆαααααααα
ααΎαααΆαααΈααα αααα»αααααΈααααα·ααααΆααααααααααΌαααΆαααααααααααααααααααααααα½αααααααααα
ααααααααααΆα αααΎααα αααα»αααα·ααΆααΆααα½αα
ααΆααΉααα α αΆαααΆα αααααΌαααΆαααααααΆαααα αααααΎαααααΌα ααααΆααΆα αααΎααα αααα»αααα·ααΆααΆαααΌα ααααΆ ααΆαα½αααΉαααΆααα»αααααΆαα·α αα½α αααα»αα αααα»αααααΈααα ααΎααααα ααα’ααααααααΉαααα’ααααΎααα·ααααΆααα ααΆα’αααααααα·αααααΆααααααΌααα αααα»αααα·ααΆααΆαααα αα·αα’ααααααααααΆααααααΌαα α αΎαααΎααααααα―αααΆαα α»αααααααααααααΆαααα α―αααΆαααΆαααΎαααααααααααα½αα―αα αααααΆααααΈα§ααΆαααααα ααΆα’αΆα αααααΎαααΆαααΎααααααα½ααααααααααααααααΆαααα αααα»ααααααΈααα·ααααΆαα
ααΆααΉαααααΎααΆαααΎααααα group_vars α‘αΎααα·α α αΎαααΉαα’αΆα αααααα’ααααα½αα ααα½αα‘αΎααα·ααααααααΆαααααααΆαααααα½αααΆαααααα
αα ααΆααααααααααα α»αααααααααααΆααααααααααΆαααααααΆαα
mydeploy # ΠΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π΅ΠΏΠ»ΠΎΡ
βββ deploy.yml # ΠΠ»Π΅ΠΉΠ±ΡΠΊ Π΄Π΅ΠΏΠ»ΠΎΡ
βββ files # ΠΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π΅ΠΏΠ»ΠΎΡ
β βββ prod # ΠΠ°ΡΠΎΠ»ΠΎΠ³ Π΄Π»Ρ ΡΡΠ΅Π΄ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠ΅Π½Π΄Π° prod
β β βββ certs #
β β βββ myapi.key #
β βββ test1 # ΠΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΡΡΠ΅Π΄ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠ΅Π½Π΄Π° test1
βββ group_vars # ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠ°
β βββ all.yml # Π€Π°ΠΉΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ²ΡΠ·ΠΈ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
β βββ myapi.yml # Π€Π°ΠΉΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² Π³ΡΡΠΏΠΏΡ myapi
β βββ bbauth.yml #
β βββ ghauth.yml #
βββ inventories #
βββ prod # ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ prod
β βββ group_vars # ΠΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ
β β βββ myapi #
β β β βββ vars.yml # Π‘ΡΠ΅Π΄ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π³ΡΡΠΏΠΏΡ myapi
β β β βββ vault.yml # Π‘Π΅ΠΊΡΠ΅ΡΡ (Π²ΡΠ΅Π³Π΄Π° ΡΡΠ΅Π΄ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ)
β β βββ bbauth #
β β β βββ vars.yml #
β β β βββ vault.yml #
β β βββ ghauth #
β β βββ vars.yml #
β β βββ vault.yml #
β βββ prod.ini # ΠΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΡΡΠ΅Π½Π΄Π° prod
βββ test # ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ test
βββ group_vars #
β βββ myapi #
β β βββ vars.yml #
β β βββ vault.yml #
β βββ bbauth #
β β βββ vars.yml #
β β βββ vault.yml #
β βββ ghauth #
β βββ vars.yml #
β βββ vault.yml #
βββ test1.ini # ΠΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΡΡΠ΅Π½Π΄Π° test1 Π² ΡΡΠ΅Π΄Π΅ test
βββ test2.ini # ΠΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΡΡΠ΅Π½Π΄Π° test2 Π² ΡΡΠ΅Π΄Π΅ test
αααααα
αααααΆααααΈαααα αα’αααααααααΆαα’αααααα α―αααΆαα’αααααΈαα½ααααα½ααα»αααααΌαα αααααα·α αα ααΆαααΆααααΆαααα½αα α αΎαβαααααΆαβα―αααΆαβααΆαβαα·α αα ααΆαβααΆααααΆαα ααΆβα’αΆα βα αΆααααΆααβα’αααβααα½ααα»αααααΌαβα ααααβααΆαααααΉαααααΌαβααβα―αααΆαβααΈαα½ααα α§ααΆα ααα α’αααα’αα·ααααααααααΆαααΆαααααααΆαααααααααααααΆαααΆα’αααααα½ααα»αααααΌαα ααααααΆααααααα’ααα playbook α±ααααΆαααααΉαααααΌα αααααααααα’αααααααααααααααααΆαααα αααααΌαααΆααα·αααααΆαα αααα»αααΆαααΎαααααααΊααα½ααα»αααααΌααααααααΆαααααααΆααααΆααααααααΆαααΎαααααααα’αααα
αα½ααΆααΈααΆαααααΆαααΆα’αααααΆαα’αα·ααααααααααΆαααααααα½αααααΆαα½αααΉαα ααα»α αααααΆααααααΆαααααααα½ααα αααα’αα»ααααΆαα±ααα’αααα’αα·αααααααα½ααΆααΈα’αα·αααααααααααΆαααΆααΆαααΆαααααααα½ααα½ααΆααΈαα ααααααααα αααα αΆαααααΆαα·αααααΆααααααΉααα½ααΆααΈαα½ααααααΆααααααααααααΆααα’αααα αααα»ααα»αααααΆααΆαα
α’αααβαααααααααβααααααααβαααβααααΌαβαααβα’αααΈβααΌαβααΆααβαααααΆαβαααβα αΎαα α’αααΈααΆααα’αααααααααΌαααΆαααΆαααΆααααααΆαααα½ααααααααΆααααΆαααΆαααααααΆααααααααααααΊααααΌααααααα―αααΆαααα’ααααααααΉαααα’ααααΎααα·ααααΆαα
α’ααααααΆααααα
α’ααααα·αααα
Kalyuzhny Denis Alexandrovich
ααααα: www.habr.com