Ho tloha ho "qalo" ho isa ho li-server tse likete litsing tsa data tse leshome le metso e 'meli. Re lelekisa kholo ea lisebelisoa tsa Linux joang

Haeba lisebelisoa tsa hau tsa IT li hola ka potlako haholo, haufinyane u tla tobana le khetho: ka mokhoa o hlakileng eketsa lisebelisoa tsa batho ho e tšehetsa kapa ho qala boiketsetso. Ho fihlela ka nako e itseng, re ne re phela ka paradigm ea pele, 'me joale tsela e telele ea Infrastructure-as-Code e ile ea qala.

Ho tloha ho "qalo" ho isa ho li-server tse likete litsing tsa data tse leshome le metso e 'meli. Re lelekisa kholo ea lisebelisoa tsa Linux joang

Ha e le hantle, NSPK ha se qalo, empa boemo bo joalo bo ile ba busa k'hamphaning lilemong tsa pele tsa ho ba teng ha eona, 'me tseo e ne e le lilemo tse thahasellisang haholo. Lebitso la ka ke Kornyakov Dmitry, esale ke tšehetsa lisebelisoa tsa Linux ka litlhoko tse phahameng tsa ho fumaneha ka lilemo tse fetang 10. O ile a ikopanya le sehlopha sa NSPK ka January 2016 'me, ka bomalimabe, ha aa ka a bona tšimoloho ea ho ba teng ha k'hamphani, empa o ile a tla sethaleng sa liphetoho tse kholo.

Ka kakaretso, re ka re sehlopha sa rona se fana ka lihlahisoa tse 2 bakeng sa k'hamphani. Ea pele ke meaho. Lengolo le lokela ho sebetsa, DNS e lokela ho sebetsa, 'me balaoli ba domain name ba lokela ho u lumella ho kena ho li-server tse sa lokelang ho senyeha. Boemo ba IT ba k'hamphani bo boholo! Tsena ke litsamaiso tsa bohlokoa tsa khoebo le tsa thomo, litlhoko tsa ho fumaneha ho ba bang ke 99,999. Sehlahisoa sa bobeli ke li-server ka botsona, tsa 'mele le tsa nnete. Tse seng li ntse li le teng li hloka ho behoa leihlo, ’me tse ncha li lokela ho isoa kamehla ho bareki ba tsoang mafapheng a mangata. Sehloohong sena ke batla ho tsepamisa maikutlo ho kamoo re ntlafalitseng lisebelisoa tsa motheo tse ikarabellang bakeng sa potoloho ea bophelo ba seva.

Qaleho ya tsela

Qalong ea leeto la rona, pokello ea rona ea theknoloji e ne e shebahala tjena:
OS CentOS 7
FreeIPA Domain Controllers
Automation - Ansible(+Tower), Cobbler

Sena sohle se ne se le libakeng tsa 3, se hasane ho litsi tse 'maloa tsa data. Setsing se seng sa data ho na le litsamaiso tsa liofisi le libaka tsa liteko, ho tse ling ho na le PROD.

Ho theha li-server ka nako e 'ngoe ho ne ho shebahala tjena:

Ho tloha ho "qalo" ho isa ho li-server tse likete litsing tsa data tse leshome le metso e 'meli. Re lelekisa kholo ea lisebelisoa tsa Linux joang

Ka template ea VM, CentOS e nyenyane 'me bonyane bo hlokahalang bo tšoana le bo nepahetseng /etc/resolv.conf, tse ling kaofela li tla ka Ansible.

CMDB - Excel.

Haeba seva e le ea 'mele, joale ho e-na le ho kopitsa mochine oa sebele, OS e ile ea kenngoa ho eona e sebelisa Cobbler - liaterese tsa MAC tsa seva se lebisitsoeng li kenngoa ho Cobbler config, seva se fumana aterese ea IP ka DHCP, ebe OS. ea eketsoa.

Qalong re bile ra leka ho etsa mofuta o mong oa taolo ea tlhophiso ho Cobbler. Empa ha nako e ntse e ea, sena se ile sa qala ho tlisa mathata ka ho khoneha ha litlhophiso ho litsi tse ling tsa data le ho khoutu e sa lokelang ea ho lokisetsa li-VM.

Ka nako eo, ba bangata ba rona re ne re bona Ansible e le katoloso e bonolo ea Bash mme ha ea ka ea qhekella meralo e sebelisa khetla le sed. Ka kakaretso Bashsible. Qetellong sena se ile sa lebisa tabeng ea hore haeba buka ea ho bapala ka mabaka a itseng e sa sebetse ho seva, ho ne ho le bonolo ho hlakola seva, ho lokisa buka ea ho bapala le ho e tsamaisa hape. Ha e le hantle ho ne ho se na liphetolelo tsa mangolo, ho se na litlhophiso tse nkehang habonolo.

Mohlala, re ne re batla ho fetola litlhophiso tse ling ho li-server tsohle:

  1. Re fetola tlhophiso ho li-server tse teng karolong e utloahalang / setsing sa data. Ka linako tse ling eseng ka letsatsi le le leng - litlhoko tsa ho fihlella le molao oa lipalo tse kholo ha li lumelle liphetoho tsohle hore li sebelisoe hang-hang. 'Me liphetoho tse ling li ka senya' me li hloka ho qala ho hong hape - ho tloha lits'ebeletso ho ea ho OS ka boeona.
  2. Ho e lokisa ka Ansible
  3. Re e lokisa ka Cobbler
  4. Pheta makhetlo a N bakeng sa karolo ka 'ngoe e utloahalang/setsi sa boitsebiso

E le hore liphetoho tsohle li tsamaee hantle, ho ne ho hlokahala ho ela hloko lintlha tse ngata, 'me liphetoho li etsahala kamehla.

  • Refactoring code ansible, configuration files
  • Ho fetola mekhoa e metle ea ka hare
  • Liphetoho tse ipapisitseng le liphetho tsa tlhahlobo ea liketsahalo/likotsi
  • Ho fetola litekanyetso tsa tšireletso, ka hare le ka ntle. Mohlala, PCI DSS e nchafatsoa ka litlhoko tse ncha selemo se seng le se seng

Kholiso ea meaho le qalo ea leeto

Palo ea li-server / libaka tse utloahalang / litsi tsa data li ile tsa eketseha, 'me ka tsona palo ea liphoso tsa tlhophiso. Ka nako e 'ngoe, re ile ra fihla likarolong tse tharo tseo ho tsona tsamaiso ea tlhophiso e lokelang ho ntlafatsoa:

  1. Boiketsetso. Phoso ea batho ts'ebetsong ea ho pheta-pheta e lokela ho qojoa ka hohle kamoo ho ka khonehang.
  2. Pheta-pheta. Ho bonolo haholo ho laola meralo ea motheo ha ho lebelloa. Tlhophiso ea li-server le lisebelisoa tsa ho itokisa li lokela ho tšoana hohle. Sena se bohlokoa hape bakeng sa lihlopha tsa lihlahisoa - ka mor'a tlhahlobo, kopo e tlameha ho tiisetsoa hore e tla qetella e le sebakeng sa tlhahiso e hlophisitsoeng ka mokhoa o ts'oanang le tikoloho ea teko.
  3. Bonolo le ponaletso ea ho etsa liphetoho tsamaisong ea tlhophiso.

E sala ho eketsa lisebelisoa tse 'maloa.

Re khethile GitLab CE joalo ka polokelo ea khoutu ea rona, eseng bakeng sa li-module tsa eona tse hahelletsoeng ka har'a CI/CD.

Vault ea liphiri - Hashicorp Vault, ho kenyeletsoa. bakeng sa API e kholo.

Litlhophiso tsa liteko le likarolo tse amehang - Molecule+Testinfra. Liteko li ea kapele haholo ha o hokela ho mitogen e sebetsang. Ka nako e ts'oanang, re ile ra qala ho ngola CMDB ea rona le 'mino oa liletsa bakeng sa ho romelloa ka mokhoa o itekanetseng (setšoantšong se ka holimo ho Cobbler), empa ena ke pale e fapaneng ka ho feletseng, eo mosebetsi-'moho le' na le moqapi ea ka sehloohong oa mekhoa ena ba tla e bua nakong e tlang.

Khetho ea rona:

Molek'hule + Testinfra
Ansible + Tower + AWX
Lefatše la Li-server + DITNET (Ntšetso-pele ea hau)
Sebapali
Semathi sa Gitlab + GitLab
Hashicorp Vault

Ho tloha ho "qalo" ho isa ho li-server tse likete litsing tsa data tse leshome le metso e 'meli. Re lelekisa kholo ea lisebelisoa tsa Linux joang

Ka tsela, ka likarolo tse utloahalang. Qalong ho ne ho e-na le e le 'ngoe feela, empa ka mor'a liphetoho tse' maloa ho ne ho e-na le tse 17. Ke khothaletsa ka matla ho senya monolith ka likarolo tse se nang thuso, tse ka hlahisoang ka thoko; ho feta moo, o ka eketsa li-tag. Re arola likarolo ka ts'ebetso - marang-rang, ho rema lifate, liphutheloana, hardware, molek'hule joalo-joalo. Ka kakaretso, re ile ra latela leano le ka tlase. Ha ke tsitlallele hore ena ke ’nete feela, empa e ile ea re sebeletsa.

  • Ho kopitsa li-server ho "setšoantšo sa khauta" ho fosahetse!Bothata bo boholo ke hore ha u tsebe hantle hore na litšoantšo li boemong bofe hona joale, le hore liphetoho tsohle li tla tla litšoantšong tsohle mapolasing ohle a virtualization.
  • Sebelisa lifaele tsa tlhophiso ea kamehla ho fihlela bonyane 'me u lumellane le mafapha a mang hore u ikarabella bakeng sa lifaele tse kholo tsa sistimimohlala:
    1. Tloha /etc/sysctl.conf e se na letho, litlhophiso li lokela ho ba feela ho /etc/sysctl.d/. Tlhophiso ea hau faeleng e le 'ngoe, tloaelo bakeng sa ts'ebeliso ho e' ngoe.
    2. Sebelisa lifaele tse tlositsoeng ho hlophisa li-unit tsa systemd.
  • Etsa litlhophiso tsohle 'me u li kenye ka botlalo; haeba ho khonahala, ha ho sed kapa li-analogues tsa eona libukeng tsa ho bapala.
  • Ho fetola khoutu ea tsamaiso ea tlhophiso:
    1. Arola mesebetsi ka likarolo tse utloahalang 'me u ngole monolith hape ka likarolo
    2. Sebelisa li-linters! Ansible-lint, yaml-lint, joalo-joalo
    3. Fetola mokhoa oa hau! Ha ho bashsible. Hoa hlokahala ho hlalosa boemo ba tsamaiso
  • Bakeng sa likarolo tsohle tse Ansible o hloka ho ngola liteko ka molek'hule mme o hlahise litlaleho hang ka letsatsi.
  • Tabeng ea rona, ka mor'a ho lokisetsa liteko (tseo ho nang le tse fetang 100), liphoso tse ka bang 70000 XNUMX li ile tsa fumanoa. Ho ile ha nka likhoeli tse 'maloa ho e lokisa.Ho tloha ho "qalo" ho isa ho li-server tse likete litsing tsa data tse leshome le metso e 'meli. Re lelekisa kholo ea lisebelisoa tsa Linux joang

Ts'ebetsong ea rona

Ka hona, likarolo tse loketseng li ne li lokile, li entsoe ka setšoantšo le ho hlahlojoa ke li-linters. 'Me esita le li-gits li phahamisoa hohle. Empa potso ea ho fana ka khoutu e tšepahalang likarolong tse fapaneng e ile ea lula e bulehile. Re nkile qeto ea ho amahanya le mengolo. E shebahala joalo:

Ho tloha ho "qalo" ho isa ho li-server tse likete litsing tsa data tse leshome le metso e 'meli. Re lelekisa kholo ea lisebelisoa tsa Linux joang

Ka mor'a hore phetoho e fihle, CI e qalisoa, ho thehoa seva sa teko, mesebetsi e hlahisoa, 'me e lekoa ke molek'hule. Haeba tsohle li lokile, khoutu e ea lekaleng la prod. Empa ha re sebelise khoutu e ncha ho li-server tse teng mochining. Ena ke mofuta oa sethibelo se hlokahalang bakeng sa ho fumaneha ho holimo ha litsamaiso tsa rona. 'Me ha mekhoa ea motheo e e-ba khōlō, molao oa palo e kholo oa sebetsa - le haeba u na le bonnete ba hore phetoho ha e na kotsi, e ka lebisa liphellong tse bohloko.

Hape ho na le likhetho tse ngata tsa ho theha li-server. Re qeteletse re khetha mangolo a tloaelo a Python. Mme bakeng sa CI e loketseng:

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

Sena ke seo re tlileng ho sona, tsamaiso e ntse e tsoela pele ho phela le ho ntlafatsa.

  • 17 Mesebetsi e amehang ea ho seta seva. Karolo e 'ngoe le e' ngoe e etselitsoe ho rarolla mosebetsi o ikhethileng (ho rema lifate, ho hlahloba, tumello ea basebelisi, ho beha leihlo, joalo-joalo).
  • Teko ea karolo. Molek'hule + TestInfra.
  • Nts'etsopele ea hau: CMDB + Orchestrator.
  • Nako ea ho theha seva ke ~ metsotso e 30, e iketselitse 'me e batla e ikemetse lethathamong la mesebetsi.
  • Boemo bo tšoanang / ho reha mabitso a lisebelisoa likarolong tsohle - libuka tsa ho bapala, li-repositories, likarolo tsa virtualization.
  • Tlhahlobo ea letsatsi le letsatsi ea boemo ba seva ka tlhahiso ea litlaleho mabapi le ho se lumellane le maemo.

Ke tšepa hore pale ea ka e tla ba molemo ho ba leng qalong ea leeto la bona. U sebelisa stack ea automation efe?

Source: www.habr.com