Ansibleใฎๅค‰ๆ•ฐใธใฎไฝ“็ณป็š„ใชใ‚ขใƒ—ใƒญใƒผใƒ

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




: . , . , , , .



, , . .



. , .












All Articles