Avy amin'ny "fanombohana" mankany amin'ny mpizara an'arivony ao amin'ny foibe data am-polony. Ahoana no nanenjika ny fitomboan'ny fotodrafitrasa Linux

Raha mitombo haingana loatra ny fotodrafitrasa IT-nao, dia hiatrika safidy ianao na ho ela na ho haingana: hampitombo tsikelikely ny loharanon'olombelona hanohanana azy na hanomboka automatique. Mandra-pahatongan'ny fotoana iray dia niaina tamin'ny paradigma voalohany izahay, ary avy eo dia nanomboka ny lalana lava mankany amin'ny Infrastructure-as-Code.

Avy amin'ny "fanombohana" mankany amin'ny mpizara an'arivony ao amin'ny foibe data am-polony. Ahoana no nanenjika ny fitomboan'ny fotodrafitrasa Linux

Mazava ho azy, ny NSPK dia tsy fanombohana, fa ny rivo-piainana toy izany dia nanjaka tao amin'ny orinasa tamin'ny taona voalohany nisian'ny fisiany, ary ireo dia taona tena mahaliana. Ny anarako dia Kornyakov Dmitry, nanohana fotodrafitrasa Linux manana fepetra takiana avo lenta aho nandritra ny 10 taona mahery. Niditra tao amin'ny ekipan'ny NSPK izy tamin'ny Janoary 2016 ary, indrisy, tsy nahita ny fiandohan'ny fisian'ny orinasa, fa tonga tamin'ny dingana fiovana lehibe.

Amin'ny ankapobeny, afaka milaza isika fa ny ekipanay dia manome vokatra 2 ho an'ny orinasa. Ny voalohany dia ny fotodrafitrasa. Ny mailaka dia tokony hiasa, ny DNS dia tokony hiasa, ary ny mpitantana ny sehatra dia tokony hamela anao hiditra amin'ny lohamilina tsy tokony hianjera. Lehibe ny tontolon'ny IT an'ny orinasa! Ireo dia rafitra fanakianana ara-barotra sy iraka, ny fepetra takiana amin'ny sasany dia 99,999. Ny vokatra faharoa dia ny mpizara mihitsy, ara-batana sy virtoaly. Mila araha-maso ny efa misy, ary tsy maintsy aterina tsy tapaka amin’ny mpanjifa avy amin’ny sampana maro ny vaovao. Amin'ity lahatsoratra ity dia te hifantoka amin'ny fomba namolavolantsika ny fotodrafitrasa izay tompon'andraikitra amin'ny tsingerin'ny fiainan'ny mpizara aho.

Ny fiandohan'ny lalana

Tany am-piandohan'ny dianay dia toy izao ny stack teknolojia:
OS CentOS 7
FreeIPA Domain Controllers
Automation - Ansible(+Tilikambo), Cobbler

Izany rehetra izany dia hita ao amin'ny sehatra 3, miparitaka amin'ny foibe data maromaro. Ao amin'ny foibe angona iray dia misy rafitra birao sy tranokala fitsapana, ao amin'ny ambiny misy PROD.

Ny famoronana mpizara amin'ny fotoana iray dia toa izao:

Avy amin'ny "fanombohana" mankany amin'ny mpizara an'arivony ao amin'ny foibe data am-polony. Ahoana no nanenjika ny fitomboan'ny fotodrafitrasa Linux

Ao amin'ny môdely VM, CentOS dia kely indrindra ary ny kely indrindra takiana dia toy ny marina /etc/resolv.conf, ny ambiny dia avy amin'ny Ansible.

CMDB - Excel.

Raha ara-batana ny mpizara, fa tsy kopia ny milina virtoaly, dia napetraka teo aminy ny OS tamin'ny fampiasana Cobbler - ny adiresy MAC an'ny mpizara kendrena dia ampidirina amin'ny config Cobbler, ny mpizara dia mahazo adiresy IP amin'ny DHCP, ary avy eo ny OS dia ampiana.

Tamin'ny voalohany dia nanandrana nanao karazana fitantanana teo amin'ny Cobbler mihitsy aza izahay. Saingy rehefa nandeha ny fotoana dia nanomboka nitondra olana amin'ny fampitaovana ny fampitaovana ho an'ny foibe data hafa sy ny code Ansible amin'ny fanomanana VM.

Tamin'izany fotoana izany, maro amintsika no nahita an'i Ansible ho fanitarana mety amin'ny Bash ary tsy mitsitsy amin'ny famolavolana mampiasa akorandriaka sy sed. Bashsible amin'ny ankapobeny. Izany dia nitarika tamin'ny farany fa raha tsy mandeha amin'ny mpizara ny playbook noho ny antony iray, dia mora kokoa ny mamafa ny mpizara, manamboatra ny playbook ary mamerina azy indray. Amin'ny ankapobeny dia tsy nisy ny famoahana ny script, tsy nisy ny fampifanarahana.

Ohatra, te hanova ny config sasany amin'ny mpizara rehetra izahay:

  1. Ovainay ny fanamafisam-peo amin'ireo mpizara efa misy ao amin'ny fizarana lojika/ivon'ny data. Indraindray tsy ao anatin'ny iray andro - ny fepetra takiana amin'ny fidirana sy ny lalàn'ny isa betsaka dia tsy mamela ny fanovana rehetra hampiharina indray mandeha. Ary mety hanimba ny fanovana sasany ary mitaky famerenana zavatra - avy amin'ny serivisy mankany amin'ny OS mihitsy.
  2. Fanamboarana azy amin'ny Ansible
  3. Manamboatra azy ao amin'ny Cobbler izahay
  4. Avereno imbetsaka N isaky ny fizarana lojika/ivon'ny angona

Mba hahatonga ny fiovana rehetra handeha tsara, dia ilaina ny mandinika lafin-javatra maro, ary ny fiovana mitranga tsy tapaka.

  • Refactoring ansible code, configuration files
  • Manova ny fanao tsara indrindra anatiny
  • Fiovana mifototra amin'ny valin'ny famakafakana ny tranga/loza
  • Fanovana ny fenitry ny fiarovana, na anatiny na ivelany. Ohatra, ny PCI DSS dia havaozina miaraka amin'ny fepetra vaovao isan-taona

Ny fitomboan'ny fotodrafitrasa sy ny fiandohan'ny dia

Nitombo ny isan'ny mpizara/sehatra lojika/ivon'ny angona, ary miaraka amin'izy ireo ny isan'ny lesoka amin'ny fandrindrana. Amin'ny fotoana iray dia tonga amin'ny lalana telo izay tokony hamolavolana ny fitantanana ny fanamafisana:

  1. Automation. Ny fahadisoan'ny olombelona amin'ny asa miverimberina dia tokony hohalavirina araka izay azo atao.
  2. Famerenana. Mora kokoa ny mitantana fotodrafitrasa rehefa azo vinaniana. Ny fandrindrana ny lohamilina sy ny fitaovana ho an'ny fanomanana azy ireo dia tokony hitovy na aiza na aiza. Zava-dehibe ihany koa izany ho an'ny ekipan'ny vokatra - aorian'ny fitsapana, ny fampiharana dia tsy maintsy azo antoka fa hiafara amin'ny tontolo famokarana namboarina mitovy amin'ny tontolo fitsapana.
  3. Fahatsorana sy mangarahara amin'ny fanovana ny fitantanana ny fandrindrana.

Mijanona ny manampy fitaovana roa.

Nisafidy ny GitLab CE izahay ho fitahirizana kaody, indrindra ho an'ny maody CI/CD naorina.

Vault of secret - Hashicorp Vault, incl. ho an'ny API lehibe.

Fanamafisana fitsapana sy andraikitra azo atao - Molecule+Testinfra. Mandeha haingana kokoa ny fitsapana raha mifandray amin'ny mitogen azo antoka ianao. Tamin'izany fotoana izany, nanomboka nanoratra ny CMDB sy ny orkestra ho an'ny fametrahana mandeha ho azy izahay (eo amin'ny sary etsy ambony Cobbler), saingy tantara hafa tanteraka ity, izay holazain'ny mpiara-miasa amiko sy ny mpamorona lehibe amin'ireo rafitra ireo amin'ny ho avy.

Ny safidintsika:

Molecule + Testinfra
Ansible + Tower + AWX
World of Servers + DITNET (Fampandrosoana manokana)
Mpanao kiraro
Gitlab + GitLab mpihazakazaka
Hashicorp Vault

Avy amin'ny "fanombohana" mankany amin'ny mpizara an'arivony ao amin'ny foibe data am-polony. Ahoana no nanenjika ny fitomboan'ny fotodrafitrasa Linux

Teny an-dalana, momba ny anjara asa. Tamin'ny voalohany dia tsy nisy afa-tsy iray, fa taorian'ny refactoring maromaro dia nisy 17. Manoro hevitra mafy aho ny hanapaka ny monolith ho andraikitry ny idempotent, izay azo atomboka misaraka, ankoatra izany, azonao atao ny manampy marika. Nozarainay tamin'ny alàlan'ny fampiasa ireo andraikitra ireo - tambajotra, logging, fonosana, fitaovana, molekiola sns. Amin'ny ankapobeny, nanaraka ny paikady etsy ambany izahay. Tsy manizingizina aho fa io ihany no fahamarinana, fa nandaitra taminay.

  • Ratsy ny mandika lohamilina avy amin'ny “sary volamena”!Ny fatiantoka lehibe dia ny tsy fahafantaranao tsara hoe inona ny toeran'ny sary amin'izao fotoana izao, ary ny fiovana rehetra dia ho tonga amin'ny sary rehetra amin'ny toeram-pambolena virtoaly rehetra.
  • Ampiasao faran'izay kely ny fisie fanamafisam-peo default ary miombon-kevitra amin'ny departemanta hafa fa ianao no tompon'andraikitra amin'ny fisie rafitra lehibe, ohatra:
    1. Avelao ho foana ny /etc/sysctl.conf, tokony ho ao amin'ny /etc/sysctl.d/ ny fikandrana. Ny default anao amin'ny rakitra iray, mahazatra ho an'ny fampiharana amin'ny hafa.
    2. Mampiasà rakitra override hanitsiana ireo singa systemd.
  • Ataovy ny configs rehetra ary ampidiro tanteraka; raha azo atao, tsy misy sed na ny analogues ao amin'ny playbook
  • Famerenana ny kaody rafitra fitantanana fanamafisana:
    1. Zarao ho singa lojika ny asa ary soraty indray ny monolith ho anjara
    2. Mampiasà linter! Ansible-lint, yaml-lint, sns
    3. Ovao ny fomba fanao! Tsisy bashsible. Ilaina ny mamaritra ny toetry ny rafitra
  • Ho an'ny anjara asan'ny Ansible rehetra dia mila manoratra fitsapana amin'ny molekiola ianao ary mamorona tatitra indray mandeha isan'andro.
  • Amin'ny tranga misy antsika, rehefa avy nanomana ny fitsapana (izay misy mihoatra ny 100) dia hita ny fahadisoana 70000. Naharitra volana maromaro ny fanamboarana azy.Avy amin'ny "fanombohana" mankany amin'ny mpizara an'arivony ao amin'ny foibe data am-polony. Ahoana no nanenjika ny fitomboan'ny fotodrafitrasa Linux

Ny fampiharanay

Noho izany, ny anjara asa azo atao dia efa vonona, novolavolaina ary nohamarinin'ny linter. Ary na ny gits aza dia atsangana eny rehetra eny. Saingy mbola nisokatra ny fanontaniana momba ny fandefasana kaody azo antoka amin'ny fizarana samihafa. Nanapa-kevitra ny hampifanaraka amin'ny script izahay. Toa izany:

Avy amin'ny "fanombohana" mankany amin'ny mpizara an'arivony ao amin'ny foibe data am-polony. Ahoana no nanenjika ny fitomboan'ny fotodrafitrasa Linux

Rehefa tonga ny fanovana, dia atomboka ny CI, misy mpizara fitsapana iray noforonina, avoaka ny andraikitra ary andrana amin'ny molekiola. Raha tsara ny zava-drehetra, dia mankany amin'ny sampana prod ny kaody. Saingy tsy mampihatra kaody vaovao amin'ireo mpizara efa misy ao anaty milina izahay. Ity dia karazana fanakanana ilaina amin'ny fisian'ny rafitra misy antsika. Ary rehefa mihalehibe ny fotodrafitrasa dia miditra ny lalànan'ny isa marobe - na dia azonao antoka aza fa tsy mampidi-doza ny fanovana, dia mety hiteraka voka-dratsy izany.

Misy safidy maro ihany koa amin'ny famoronana server. Nisafidy script Python mahazatra izahay. Ary ho an'ny 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}}"

Izany no nahatongavantsika, mitohy miaina sy mivoatra ny rafitra.

  • 17 Ansible andraikitra amin'ny fametrahana ny mpizara. Ny andraikitra tsirairay dia natao hamahana asa lojika misaraka (fandrafetana, fanaraha-maso, fanomezan-dàlana ho an'ny mpampiasa, fanaraha-maso, sns.).
  • Fitsapana anjara. Molecule + TestInfra.
  • Fampandrosoana manokana: CMDB + Orchestrator.
  • Ny fotoana famoronana server dia ~ 30 minitra, mandeha ho azy ary tsy miankina amin'ny filaharana asa.
  • Ny fanjakana / anarana mitovy amin'ny fotodrafitrasa amin'ny sehatra rehetra - playbooks, repository, singa virtoaly.
  • Fanamarinana isan'andro ny satan'ny mpizara miaraka amin'ny famokarana tatitra momba ny tsy fitoviana amin'ny fenitra.

Manantena aho fa mahasoa ho an'ireo izay eo am-piandohan'ny diany ny tantarako. Inona no automatique stack ampiasainao?

Source: www.habr.com