Te huarahi punaha ki nga taurangi i Ansible

ansible devops codestyle

Hei! Ko toku ingoa Denis Kalyuzhny Kei te mahi ahau hei miihini i roto i te tari whakaauautanga tukanga whanaketanga. Ia ra, ka tukuna nga hanga tono hou ki runga i nga rau o nga kaitoro whakahau. A i roto i tenei tuhinga ka tohatoha ahau i taku wheako ki te whakamahi i te Ansible mo enei kaupapa.

Ko tenei aratohu he huarahi ki te whakarite i nga taurangi i roto i te whakatakotoranga. Ko te tikanga tenei aratohu mo te hunga kua whai waahi ki o raatau pukapuka takaro me te hunga kua panui Nga Mahi Pai, engari he rite nga raru e pa ana:

  • Ka kitea he taurangi i roto i te waehere, kaore e taea te mohio tonu he aha te kawenga;
  • He maha nga mahi, me hono nga taurangi ki te uara kotahi, engari karekau e mahi;
  • He uaua ki te whakamaarama ki etahi atu ka pehea te mahi a te arorau o nga taurangi kei roto i o pukapuka takaro

I pa ki a matou enei raruraru i runga i nga kaupapa i roto i to matou kamupene, na reira ka tae matou ki nga ture mo te hoahoa taurangi i roto i a matou pukapuka takaro, i etahi waahanga i whakatauhia enei raruraru.

Te huarahi punaha ki nga taurangi i Ansible

Taurangi i roto i nga mahi

Ko te mahi he ahanoa motuhake o te punaha tuku. Pērā i tētahi ahanoa pūnaha, me whai atanga mo te taunekeneke me te toenga o te punaha. Ko taua atanga he taurangi mahi.

Me tango, hei tauira, te mahi api, e whakauru ana i te tono Java ki runga i te tūmau. He aha nga taurangi kei a ia?

Te huarahi punaha ki nga taurangi i Ansible

Ka taea te wehewehe i nga mahi rereke kia 2 nga momo i runga i te momo:

1. Свойства
    a) независимые от среды
    б) зависимые от среды
2. Связи
    a) слушатели 
    б) запросы внутри системы
    в) запросы в среду

āhuatanga taurangi he taurangi ka whakatau i te whanonga o tetahi mahi.

Taurangi Uiui - he taurangi enei e whakamahia ana te uara ki te tohu rauemi kei waho o te mahi.

Kai whakarongo taurangi - he taurangi enei e whakamahia ana te uara hei hanga taurangi tono.

I tetahi atu taha, ko te 1a, 2a, 2b he taurangi kaore i te whakawhirinaki ki te taiao (puoro, rauemi o waho, me etahi atu) ka taea te whakakii i nga uara taunoa i roto i nga mahi taunoa. Heoi, e kore e taea te whakaki i nga taurangi o te momo 1.b me te 2.c ki nga uara ke atu i te 'tauira', na te mea ka huri mai i te tuunga ki te tuunga i runga i te taiao.

kāhua waehere

  • Me timata te ingoa taurangi ki te ingoa tūranga. Ma tenei ka ngawari ki te mohio a muri ake nei he aha te waahi o te taurangi me te aha te kawenga.
  • I te wa e whakamahi ana i nga taurangi i roto i nga mahi, me tino whai koe i te maapono o te whakamaarama me te whakamahi i nga taurangi kua tautuhia i roto i te mahi ake, i roto ranei i nga mahi e whakawhirinaki ana te o naianei.
  • A ape i te whakamahi papakupu mo nga taurangi. Kaore e taea e Ansible te whakakore i nga uara takitahi i roto i te papakupu.

    Tauira o te taurangi kino:

    myrole_user:
        login: admin
        password: admin

    I konei ko te takiuru te taurangi motuhake, ko te kupuhipa te taurangi whakawhirinaki. Engari
    i te mea kua honoa ki roto i te papakupu, me tino tohu koe
    I nga wa katoa. Ko te tino raruraru. He pai ake i tenei huarahi:

    myrole_user_login: admin
    myrole_user_password: admin

Nga taurangi kei roto i nga pukapuka whakaari

I te wa e whakahiato ana i te pukapuka takaro tuku (ka kiia i muri nei ko te pukapuka takaro), ka u matou ki te ture me tuu ki roto i tetahi putunga motuhake. He rite ano ki nga mahi: ia tangata kei roto i tana ake putunga git. Ma tenei ka mohio koe ko nga mahi me te pukapuka takaro he mea motuhake motuhake o te punaha tuku, a, ko nga huringa o tetahi mea kaore e pa ki te mahi o tetahi. Ka tutuki tenei ma te huri i nga uara taunoa o nga taurangi.

I te wa e whakahiato ana i te pukapuka takaro, hei whakarāpopoto, ka taea te whakakore i nga uara taunoa o nga taurangi mahi i nga waahi e rua: i nga taurangi pukapuka takaro me nga taurangi rarangi.

mydeploy                        # Каталог деплоя
├── deploy.yml                  # Плейбук деплоя
├── group_vars                  # Каталог переменных плейбука
│   ├── all.yml                 # Файл для переменных связи всей системы
│   └── myapi.yml               # Файл переменных свойств группы myapi
└── inventories                 #
    └── prod                    # Каталог окружения prod
        ├── prod.ini            # Инвентори файл
        └── group_vars          # Каталог для переменных инвентори
            └── myapi           #
                ├── vars.yml    # Средозависимые переменные группы myapi
                └── vault.yml   # Секреты (всегда средозависимы) *

* - Taurangi me nga Vaults

Ko te rereketanga ko nga taurangi pukapuka takaro ka whakamahia i nga wa katoa ka karangahia nga pukapuka takaro kei te taumata kotahi ki tera. Ko te tikanga he pai enei taurangi mo te whakarereke i nga uara taunoa o nga taurangi motuhake-taiao. Engari, ka whakamahia noa nga taurangi rarangi mo tetahi taiao motuhake, he pai mo nga taurangi taiao-motuhake.

He mea nui kia mahara ko te kaupapa matua rereke e kore e taea e koe te takahi i nga taurangi i te tuatahi i roto i nga taurangi pukapuka purei katahi ka wehe ke i roto i te raarangi kotahi.

Ko te tikanga, i tenei wa, me whakatau mena ka whakawhirinaki te taurangi ki te taiao, kaore ranei ka tuu ki te waahi e tika ana.

Hei tauira, i roto i tetahi kaupapa, ko te taurangi te kawenga mo te whakaahei i te SSL he roa te whakawhirinaki ki te taiao, na te mea kaore e taea e matou te SSL mo nga take i tua atu i to maatau mana i tetahi o nga turanga. Whai muri i ta maatau whakatika tenei raru, ka noho motuhake te taiao, ka neke ki nga taurangi pukapuka takaro.

Taurangi Taonga mo nga Roopu

Kia whakawhänuihia ta tatou tauira i te Whakaahua 1 ma te taapiri i nga roopu 2 ​​o nga kaitoro me tetahi tono Java rereke, engari he rereke nga tautuhinga.

Te huarahi punaha ki nga taurangi i Ansible

Whakaarohia te ahua o te pukapuka takaro i tenei keehi:

- hosts: myapi
  roles:
    - api

- hosts: bbauth
  roles:
    - auth

- hosts: ghauth
  roles:
    - auth

E toru nga roopu kei roto i te pukapuka takaro, no reira ka tūtohu kia rite tonu te maha o nga konae roopu ki roto i nga taurangi rarangi ingoa group_vars me nga taurangi pukapuka takaro. Ko tetahi konae roopu i tenei keehi he whakaahuatanga mo tetahi waahanga o te tono i runga ake nei i roto i te pukapuka takaro. Ina whakatuwhera koe i tetahi konae roopu i roto i nga taurangi pukapuka purei, ka kite tonu koe i nga rereketanga katoa mai i te whanonga taunoa o nga mahi kua whakauruhia ki te roopu. I roto i nga taurangi rarangi ingoa: he rerekee te whanonga roopu mai i te turanga ki te tuunga.

Kāhua Waehere

  • Ngana kia kaua e whakamahi i nga taurangi host_vars, na te mea kaore i te whakaahua i te punaha, engari he keehi motuhake anake, ka puta nga patai a muri ake nei: "He aha tenei kaihautu rereke i era atu?", Ko te whakautu kaore i te ngawari tonu te kimi.

Taurangi Whakawhitiwhiti

Heoi, koira te tikanga o nga taurangi rawa, engari me pehea nga taurangi korero?
Ko to raatau rereke ko te mea kia rite te tikanga i roto i nga roopu rereke.

I te tuatahi ko whakaaro whakamahi i te hanga taikaha penei:
hostvars[groups['bbauth'][0]]['auth_bind_port'], otira whakakahore tonu ratou
na te mea he ngoikoretanga. Tuatahi, bulkiness. Tuarua, te ti'aturi i runga i te kaihautu motuhake o te roopu. Tuatoru, i mua i te tiimata o te tuku, he mea tika ki te kohi korero mai i nga kaihautu katoa mena kaore matou e hiahia kia puta he hapa o te taurangi kaore i tautuhia.

Ko te mutunga, i whakatauhia kia whakamahia nga taurangi whakawhitiwhiti.

Taurangi Whakawhitiwhiti - he taurangi enei no te pukapuka purei me te hiahia ki te hono i nga taonga punaha.

Ka nohoia nga taurangi whakawhitiwhiti ki nga taurangi punaha whanui group_vars/all/vars ka hangaia ma te tango i nga taurangi whakarongo katoa mai i ia roopu, me te taapiri i te ingoa o te roopu i tangohia ai te kaiwhakarongo ki te timatanga o te taurangi.

Ma tenei ka whakarite kia taurite me te kore inaki o nga ingoa.

Me ngana ki te here i nga taurangi mai i te tauira i runga ake nei:

Te huarahi punaha ki nga taurangi i Ansible

Me whakaaro tatou he taurangi kei te whakawhirinaki tetahi ki tetahi:

# roles/api/defaults:
# Переменная запроса
api_auth1_address: "http://example.com:80"
api_auth2_address: "http://example2.com:80"

# roles/auth/defaults:
# Переменная слушатель
auth_bind_port: "20000"

Me whakauru ki nga taurangi noa group_vars/all/vars te hunga whakarongo katoa, me te taapiri i te ingoa o te roopu ki te taitara:

# 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 }}"

Na, ma te whakarereke i te uara o te hono, ka tino mohio ka haere te tono ki te waahi ano kei reira te tauranga.

Kāhua Waehere

  • I te mea he rereke nga mahi a nga roopu me nga roopu, me whai ingoa rereke, katahi ka tohu tika nga taurangi hono kei roto ratou i tetahi roopu o nga kaitoro, kaore he mahi i roto i te punaha.

Ko nga konae e whakawhirinaki ana ki te taiao

Ka whakamahi pea nga mahi i nga konae rereke mai i te taiao ki tera taiao.

Ko tetahi tauira o aua konae ko nga tiwhikete SSL. Whakaorangia ki te ahua kuputuhi
i roto i te taurangi kaore i te tino watea. Engari he watea ki te penapena i te ara ki roto i tetahi taurangi.

Hei tauira, ka whakamahia e matou te taurangi api_ssl_key_file: "/path/to/file".

I te mea ka kitea ka huri te tiwhikete matua mai i te taiao ki te taiao, he taurangi-a-taiao tenei, ko te tikanga me noho ki roto i te konae
group_vars/myapi/vars rārangi o ngā taurangi, me te uara 'hei tauira'.

Ko te huarahi tino watea i tenei keehi ko te whakatakoto i te konae matua ki roto i te putunga pukapuka purei i te taha o te huarahi
files/prod/certs/myapi.key, ko te uara o te taurangi ko:
api_ssl_key_file: "prod/certs/myapi.key". Ko te waatea kei roto i te meka ko nga tangata e haangai ana ki te tuku i te punaha ki tetahi tuunga motuhake kei a raatau ake waahi kua whakatapua ki te putunga hei penapena i a raatau konae. I te wa ano, ka taea tonu te tautuhi i te huarahi tino ki te tiwhikete i runga i te tūmau, mena ka tukuna nga tiwhikete e tetahi atu punaha.

He maha nga turanga i roto i te taiao kotahi

I te nuinga o nga wa ka hiahia ki te whakatakoto i etahi tuunga tata rite tonu ki te taiao kotahi me nga rereketanga iti. I roto i tenei take, ka wehewehea e matou nga taurangi-a-taiao ki era karekau e huri i roto i tenei taiao me era ka huri. Na ka whakawhiti tika matou i enei mea ki roto i nga konae raarangi. Whai muri i tenei whawhe, ka taea te hanga i tetahi atu rarangi ingoa ki te raarangi taiao.

Ka whakamahia ano e ia te rarangi roopu_vars, ka taea hoki te tautuhi ano i etahi taurangi mo ia ake.

Ko te hanganga whaiaronga whakamutunga mo te kaupapa horahanga:

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

Te whakarapopototanga

Whai muri i te whakariterite i nga taurangi kia rite ki te tuhinga: kei ia kōnae taurangi te kawenga mo tetahi mahi motuhake. A, i te mea he mahi etahi o te konae, ka taea te tautapa ki tetahi tangata e tika ana mo ia konae. Hei tauira, ko te kaiwhakawhanake o te tukunga punaha te kawenga mo te whakaki tika i nga taurangi pukapuka takaro, ko te kaiwhakahaere kei te whakaahuahia tona turanga i roto i te raarangi te kawenga tika mo te whakakii i te raarangi o nga taurangi.

Ka noho nga turanga ki a raatau ake waahanga whanaketanga me o raatau ake atanga, ka taea e te kaiwhakawhanake mahi te whakawhanake i nga kaha, kaua ki te whakarite i te mahi ki te punaha. Ko tenei raru e pa ana ki nga mahi noa mo nga punaha katoa i roto i te kaupapa whakatairanga.

Ko nga kaiwhakahaere o te punaha kaore e hiahia ki te mohio ki te waehere whakaurunga. Ko nga mea katoa e hiahiatia ana mo te tuku angitu ko te whakakii i nga konae o nga taurangi e whakawhirinaki ana ki te taiao.

Tuhinga

  1. Tuhinga

kaituhi

Kalyuzhny Denis Alexandrovich

Source: will.com

Tāpiri i te kōrero