Mai i te "whakaoho" ki nga mano o nga kaitoro i roto i nga pokapū raraunga tekau ma rua. Me pehea te whai i te tipu o te hanganga Linux

Mena ka tere te tipu o to hangahanga IT, ka whai waahi koe ki te kowhiringa: te whakanui i nga rauemi tangata hei tautoko, ka tiimata ranei te mahi aunoa. Tae noa ki tetahi wa, i noho matou i roto i te paradigm tuatahi, katahi ka timata te huarahi roa ki te Infrastructure-as-Code.

Mai i te "whakaoho" ki nga mano o nga kaitoro i roto i nga pokapū raraunga tekau ma rua. Me pehea te whai i te tipu o te hanganga Linux

Ko te tikanga, ko te NSPK ehara i te tiimata, engari ko te ahua o te ahua i kingi i roto i te kamupene i nga tau tuatahi o tona oranga, a he tau tino pai enei. Ko toku ingoa Kornyakov Dmitry, Kei te tautoko ahau i nga hanganga Linux me nga whakaritenga e waatea ana mo nga tau 10 neke atu. I uru atu ia ki te roopu NSPK i te marama o Hanuere 2016, a, kaore i kite i te timatanga o te noho o te kamupene, engari i tae mai ki te waahi o nga huringa nui.

I te nuinga o te waa, ka taea e taatau te kii ka tukuna e ta maatau roopu nga hua e 2 mo te kamupene. Ko te tuatahi ko te hanganga. Me mahi te mēra, me mahi a DNS, me tuku koe e nga kaiwhakahaere rohe ki roto i nga kaitoro e kore e pakaru. He nui te whenua IT o te kamupene! He pakihi me nga punaha whakahirahira enei, ko nga whakaritenga mo etahi he 99,999. Ko te hua tuarua ko nga kaitoro tonu, tinana me te mariko. Ko nga mea o mua me aro turukihia, me tuku nga mea hou ki nga kaihoko mai i nga tari maha. I roto i tenei tuhinga e hiahia ana ahau ki te aro ki te pehea i whakawhanakehia ai e matou nga hanganga e tika ana mo te huringa ora o te tūmau.

Tuhinga o mua

I te timatanga o ta matou haerenga, he penei te ahua o ta matou puranga hangarau:
OS CentOS 7
FreeIPA Domain Controllers
Aunoatanga - Ansible(+Tower), Cobbler

Ko enei mea katoa i roto i nga rohe e 3, ka horahia ki te maha o nga pokapū raraunga. I roto i tetahi pokapū raraunga kei reira nga punaha tari me nga waahi whakamatautau, kei te toenga he PROD.

Ko te hanga i nga tūmau i tetahi wa ka penei te ahua:

Mai i te "whakaoho" ki nga mano o nga kaitoro i roto i nga pokapū raraunga tekau ma rua. Me pehea te whai i te tipu o te hanganga Linux

I roto i te tauira VM, he iti noa te CentOS me te iti e hiahiatia ana he rite ki te tika /etc/resolv.conf, ko te toenga ka tae mai ma Ansible.

CMDB - Excel.

Mena he tinana te tūmau, engari kaua e kape i te miihini mariko, i whakauruhia te OS ki runga ma te whakamahi i te Cobbler - ka taapirihia nga wahitau MAC o te tūmau whaainga ki te whirihora Cobbler, ka whiwhi te tūmau i tetahi wahitau IP ma te DHCP, katahi ka te OS ka tapiritia.

I te tuatahi ka ngana matou ki te mahi i etahi momo whakahaere whirihoranga i Cobbler. Engari i te roanga o te wa, ka timata tenei ki te kawe mai i nga raru mo te kawe o nga whirihoranga ki etahi atu pokapū raraunga me te waehere Ansible mo te whakarite i nga VM.

I tera wa, he maha o tatou i kii ko Ansible he toronga watea mo Bash, a, karekau i takahi i nga hoahoa ma te whakamahi anga me te sed. Whakanuia Bashsible. I te mutunga, ki te kore te pukapuka takaro mo etahi take kaore i mahi ki runga i te tūmau, he maamaa ake te muku i te tūmau, te whakatika i te pukapuka takaro me te whakahaere ano. Karekau he whakaputanga o nga tuhinga, kaore he kawe o nga whirihoranga.

Hei tauira, i hiahia matou ki te huri i etahi whirihora i runga i nga tūmau katoa:

  1. Ka hurihia e matou te whirihoranga i runga i nga kaitoro o naianei i te waahanga arorau/pokapū raraunga. I etahi wa kaore i roto i te ra kotahi - ko nga whakaritenga whakaurunga me te ture o te hunga nui kaore e whakaae kia tukuna nga huringa katoa i te wa kotahi. A ko etahi o nga huringa ka kino pea me te whakaara ano i tetahi mea - mai i nga ratonga ki te OS ake.
  2. Te whakatika i roto i te Ansible
  3. Ka whakatikahia e matou i roto i te Cobbler
  4. Tukurua N wa mo ia wahanga arorau/pokapū raraunga

Kia pai ai te haere o nga huringa katoa, me whai whakaaro ki nga ahuatanga maha, ka puta nga huringa i nga wa katoa.

  • Refactoring waehere ansible, kōnae whirihoranga
  • Te huri i nga tikanga pai o roto
  • Nga huringa i runga i nga hua o te tātaritanga o nga maiki/ aitua
  • Te huri i nga paerewa haumarutanga, o roto me waho. Hei tauira, ka whakahouhia a PCI DSS me nga whakaritenga hou ia tau

Te tipu o nga hanganga me te timatanga o te haerenga

I piki ake te maha o nga kaitoro / rohe arorau / pokapu raraunga, me te maha o nga hapa i roto i nga whirihoranga. I etahi wa, ka tae matou ki nga huarahi e toru hei whakawhanake i te whakahaere whirihoranga:

  1. Aunoatanga. Ko nga hapa a te tangata i roto i nga mahi tukurua me karo i nga mea ka taea.
  2. Te tukurua. He maamaa ake te whakahaere i nga hanganga ina ka kitea. Ko te whirihoranga o nga kaitoro me nga taputapu mo a raatau whakaritenga kia rite ki nga waahi katoa. He mea nui ano tenei mo nga roopu hua - i muri i te whakamatautau, me whakamanahia te tono kia mutu i roto i te taiao whakaputa i whirihora rite ki te taiao whakamatautau.
  3. Te ngawari me te marama o te whakarereketanga ki te whakahaere whirihoranga.

Ka noho tonu ki te taapiri i etahi taputapu e rua.

I kowhiria e matou a GitLab CE hei putunga waehere, he iti rawa mo ona waahanga CI/CD kua hangaia.

Kohanga o nga mea ngaro - Hashicorp Vault, incl. mo te API nui.

Whakamātautau whirihoranga me ngā tūranga mahi – Molecule+Testinfra. Ka tere ake nga whakamatautau mena ka hono koe ki te mitogen ansible. I te wa ano, ka timata matou ki te tuhi i a matou ake CMDB me te kaitoi mo te tuku aunoa (kei te pikitia i runga ake o Cobbler), engari he korero tino rereke tenei, ka korerohia e taku hoa mahi me te kaiwhakawhanake matua o enei punaha a muri ake nei.

Ko ta maatau whiriwhiri:

Molecule + Testinfra
Ansible + Tower + AWX
Ao o nga Tūmau + DITNET (Whakawhanaketanga ake)
Kaiawhina
Kaiwhaiwhai Gitlab + GitLab
Hashicorp Vault

Mai i te "whakaoho" ki nga mano o nga kaitoro i roto i nga pokapū raraunga tekau ma rua. Me pehea te whai i te tipu o te hanganga Linux

Ma te ara, mo nga mahi ansible. I te tuatahi he kotahi anake, engari i muri i te maha o nga refactorings, he 17. Ka tino taunaki ahau kia pakaruhia te monolith ki nga mahi idempotent, katahi ka taea te whakarewa motuhake, hei taapiri, ka taea e koe te taapiri tohu. I wehea e matou nga mahi ma te mahi - te whatunga, te takiuru, te kete, te taputapu, te ngota ngota aha atu. I te nuinga, i whai matou i te rautaki i raro nei. Kaore ahau e tohe ko tenei anake te pono, engari i whai hua mo matou.

  • Ko te kape i nga kaitoro mai i te "whakaahua koura" he kino!Ko te tino kino ko te kore koe e tino mohio he aha te ahua o nga whakaahua inaianei, a ka puta nga huringa katoa ki nga whakaahua katoa i roto i nga paamu mariko katoa.
  • Whakamahia nga kōnae whirihoranga taunoa ki te iti rawa me te whakaae ki etahi atu tari kei a koe te kawenga mo nga konae punaha matua, hei tauira:
    1. Waiho /etc/sysctl.conf kau, me noho noa nga tautuhinga ki /etc/sysctl.d/. Ko to taunoa i roto i tetahi konae, ritenga mo te tono i tetahi atu.
    2. Whakamahia nga konae whakawhiti hei whakatika i nga waeine systemd.
  • Whakatauirahia nga whirihora katoa me te whakauru katoa; mena ka taea, kaua he sed me ona analogues i roto i nga pukapuka takaro
  • Te whakatikatika i te waehere punaha whakahaere whirihoranga:
    1. Wawhatia nga mahi ki roto i nga hinonga arorau ka tuhi ano i te monolith hei mahi
    2. Whakamahia nga raina! Ansible-lint, yaml-lint, etc
    3. Hurihia to huarahi! Karekau he kawa. He mea tika ki te whakaahua i te ahua o te punaha
  • Mo nga mahi Ansible katoa me tuhi koe i nga whakamatautau ki roto i te ngota me te whakaputa purongo kotahi ia ra.
  • I to maatau, i muri i te whakarite i nga whakamatautau (he nui ake i te 100), tata ki te 70000 nga hapa i kitea. He maha nga marama ki te whakatika.Mai i te "whakaoho" ki nga mano o nga kaitoro i roto i nga pokapū raraunga tekau ma rua. Me pehea te whai i te tipu o te hanganga Linux

To tatou whakatinanatanga

Na, kua reri, kua whakatauirahia, kua tirohia e nga rarangi. A ko nga gits ka whakaarahia ki nga waahi katoa. Engari ko te patai mo te tuku waehere pono ki nga waahanga rereke i noho tuwhera tonu. I whakatau matou ki te tukutahi me nga tuhinga. Ko te ahua penei:

Mai i te "whakaoho" ki nga mano o nga kaitoro i roto i nga pokapū raraunga tekau ma rua. Me pehea te whai i te tipu o te hanganga Linux

Ka tae mai te huringa, ka whakarewahia te CI, ka hangaia he tūmau whakamatautau, ka hurihia nga mahi, ka whakamatauhia e te ngota. Mena he pai nga mea katoa, ka haere te waehere ki te peka prod. Engari kaore matou e tono waehere hou ki nga kaitoro o te miihini. He momo aukati tenei e tika ana mo te waatea o a maatau punaha. A, ka nui haere nga hanganga, ka uru mai te ture o te tini - ahakoa kei te tino mohio koe kaore he kino o te huringa, ka puta he hua kino.

He maha ano nga whiringa mo te hanga i nga kaitoro. I mutu ta matou whiriwhiri i nga tuhinga Python ritenga. A mo CI ansible:

- name: create1.yml - Create a VM from a template
  vmware_guest:
    hostname: "{{datacenter}}".domain.ru
    username: "{{ username_vc }}"
    password: "{{ password_vc }}"
    validate_certs: no
    cluster: "{{cluster}}"
    datacenter: "{{datacenter}}"
    name: "{{ name }}"
    state: poweredon
    folder: "/{{folder}}"
    template: "{{template}}"
    customization:
      hostname: "{{ name }}"
      domain: domain.ru
      dns_servers:
        - "{{ ipa1_dns }}"
        - "{{ ipa2_dns }}"
    networks:
      - name: "{{ network }}"
        type: static
        ip: "{{ip}}"
        netmask: "{{netmask}}"
        gateway: "{{gateway}}"
        wake_on_lan: True
        start_connected: True
        allow_guest_control: True
    wait_for_ip_address: yes
    disk:
      - size_gb: 1
        type: thin
        datastore: "{{datastore}}"
      - size_gb: 20
        type: thin
        datastore: "{{datastore}}"

Koinei te mea kua tae mai tatou, kei te ora tonu te punaha, kei te whanake tonu.

  • 17 Nga mahi e tika ana mo te whakarite i te tūmau. Ko ia o nga mahi i hangaia hei whakaoti i tetahi mahi arorau motuhake (te takiuru, te arotake, te whakamana a te kaiwhakamahi, te aroturuki, me etahi atu).
  • Whakamātautau tūranga. Molecule + TestInfra.
  • Te whanaketanga ake: CMDB + Orchestrator.
  • Ko te wa hanga tūmau he ~30 meneti, he aunoa me te motuhake o te rarangi mahi.
  • He rite tonu te ahua/whakaingoatanga o nga hanganga i nga wahanga katoa - pukapuka takaro, putunga, huānga mariko.
  • Te tirotiro i ia ra mo te tuunga o te tūmau me te whakaputa purongo mo nga rereketanga me te paerewa.

Ko te tumanako ka whai hua taku korero ki te hunga kei te timatanga o to ratou haerenga. He aha te puranga aunoa e whakamahia ana e koe?

Source: will.com