ansibledevopsใณใผใในใฟใคใซ
ใญใ๏ผ็งใฎๅๅใฏDenisKalyuzhnyใงใ้็บใใญใปใน่ชๅๅ้จ้ใฎใจใณใธใใขใจใใฆๅใใฆใใพใใๆฏๆฅใๆฐใใใใซใใฎใขใใชใไฝ็พใใฎใญใฃใณใใผใณใตใผใใผใซๅฑ้ใใใฆใใพใใใใใฆใใฎ่จไบใงใฏใใใใใฎ็ฎ็ใงAnsibleใไฝฟ็จใใ็งใฎ็ต้จใๅ ฑๆใใพใใ
ใใฎใฌใคใใฏใใใใญใคใกใณใๅ ใฎๅคๆฐใๆด็ใใๆนๆณใๆไพใใพใใใใฎใฌใคใใฏใใใงใซใใฌใคใใใฏใงๅฝนๅฒใไฝฟ็จใใBestPracticesใ่ชญใใงใใใใๅๆงใฎๅ้กใซ็ด้ขใใฆใใไบบใๅฏพ่ฑกใจใใฆใใพใใ
- ใณใผใๅ ใงๅคๆฐใ่ฆใคใใใใใใใฎๅๅ ใใใใซ็่งฃใใใใจใฏไธๅฏ่ฝใงใใ
- ใใใคใใฎๅฝนๅฒใใใใๅคๆฐใฏๅใๅคใงใใคใณใใใๅฟ ่ฆใใใใพใใใไฝใๆฉ่ฝใใพใใใ
- ใใฌใคใใใฏใฎๅคๆฐใฎใญใธใใฏใใฉใฎใใใซๆฉ่ฝใใใใไปใฎไบบใซ่ชฌๆใใใฎใฏๅฐ้ฃใงใใ
ๅฝ็คพใฎใใญใธใงใฏใใงใใใใฎๅ้กใซ็ด้ขใใใใฎ็ตๆใใใฌใคใใใฏใฎๅคๆฐใฎ่จญ่จใซ้ขใใ่ฆๅใซๅฐ้ใใใใใใฎๅ้กใใใ็จๅบฆ่งฃๆฑบใใพใใใ
ใญใผใซใฎๅคๆฐ
ใญใผใซใฏใใใใญใคใกใณใใทในใใ ใฎ็ฌ็ซใใใชใใธใงใฏใใงใใไปใฎใทในใใ ใชใใธใงใฏใใจๅๆงใซใใทในใใ ใฎไปใฎ้จๅใจๅฏพ่ฉฑใใใใใฎใคใณใฟใผใใงใคในใๅฟ ่ฆใงใใใใฎใคใณใฟใผใใงใผในใฏๅฝนๅฒๅคๆฐใงใใ
, , api
, Java . ?
2 :
1.
a)
)
2.
a)
)
)
โ , .
โ , , , .
โ , , .
, 1, 2, 2 โ , (, ..) defaults . 1. 2. 'example' , .
Code style
- . , .
- , , .
. Ansible .
:
myrole_user: login: admin password: admin
login โ , password โ .
,
. . :
myrole_user_login: admin myrole_user_password: admin
( ), , . , : git . , โ , . .
, , : .
mydeploy #
โโโ deploy.yml #
โโโ group_vars #
โ โโโ all.yml #
โ โโโ myapi.yml # myapi
โโโ inventories #
โโโ prod # prod
โโโ prod.ini #
โโโ group_vars #
โโโ myapi #
โโโ vars.yml # myapi
โโโ vault.yml # ( ) *
* โ Variables and Vaults
, , . , , . , , , .
, , .
, .
, , SSL , SSL . , , .
1, 2 Java , .
, :
- hosts: myapi
roles:
- api
- hosts: bbauth
roles:
- auth
- hosts: ghauth
roles:
- auth
, group_vars , . , . . : .
Code Style
- host_vars , , , : " ?", .
, , ?
, .
:
hostvars[groups['bbauth'][0]]['auth_bind_port']
,
. -, . -, . -, , .
.
โ , , .
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 }}"
, , , , .
Code Style
- , , , , .
, .
SSL-.
. .
, api_ssl_key_file: "/path/to/file"
.
, , ,
group_vars/myapi/vars
, ' '.
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
: . , . , , , .
, , . .
. , .