Site na "mmalite" ruo puku kwuru puku sava na ebe data iri na abuo. Otu anyị si chụsoo uto nke akụrụngwa Linux

Ọ bụrụ na akụrụngwa IT gị tolitere ngwa ngwa, n'oge na-adịghị anya, ị ga-eche nhọrọ ihu: na-abawanye akụrụngwa mmadụ iji kwado ya ma ọ bụ bido akpaaka. Ruo oge ụfọdụ, anyị bi na paradaịs mbụ, wee malite ogologo ụzọ maka akụrụngwa-dị ka koodu.

Site na "mmalite" ruo puku kwuru puku sava na ebe data iri na abuo. Otu anyị si chụsoo uto nke akụrụngwa Linux

N'ezie, NSPK abụghị mmalite, ma ọnọdụ dị otú ahụ chịrị na ụlọ ọrụ ahụ n'ime afọ mbụ nke ịdị adị ya, na ndị ahụ bụ afọ na-adọrọ mmasị. Aha m bụ Kornyakov Dmitry, M na-akwado Linux akụrụngwa na elu nnweta chọrọ ihe karịrị 10 afọ. Ọ sonyeere ndị otu NSPK na Jenụwarị 2016 na, ọ dị mwute ikwu, ahụghị mmalite mmalite nke ịdị adị nke ụlọ ọrụ ahụ, mana ọ bịara n'oge mgbanwe dị ukwuu.

N'ozuzu, anyị nwere ike ịsị na otu anyị na-enye ngwaahịa 2 maka ụlọ ọrụ ahụ. Nke mbụ bụ akụrụngwa. Mail kwesịrị ịrụ ọrụ, DNS kwesịrị ịrụ ọrụ, na ndị na-ahụ maka ngalaba kwesịrị ikwe ka ị banye na sava na-ekwesịghị ịdaba. Odida obodo IT nke ụlọ ọrụ ahụ buru ibu! Ndị a bụ sistemụ azụmahịa & ozi dị oke mkpa, ihe achọrọ maka ụfọdụ bụ 99,999. Ngwaahịa nke abụọ bụ sava onwe ha, anụ ahụ na mebere. Ọ dị mkpa ka a nyochaa ndị dị ugbu a, a ga-ebunyekwa ndị ọhụrụ mgbe niile n'aka ndị ahịa si n'ọtụtụ ngalaba. N'isiokwu a, achọrọ m ilekwasị anya n'otú anyị si zụlite akụrụngwa nke na-ahụ maka usoro ndụ nke ihe nkesa.

Mmalite nke ụzọ

Ná mmalite nke njem anyị, nchịkọta teknụzụ anyị dị ka nke a:
OS CentOS 7
Ndị njikwa ngalaba FreeIPA
Akpaaka - Enwere ike (+Tower), Cobbler

Ihe a niile dị na ngalaba 3, gbasaa n'ọtụtụ ebe data. N'otu ebe data enwere sistemụ ụlọ ọrụ na saịtị nnwale, na ndị ọzọ enwere PROD.

Ịmepụta sava n'otu oge dị ka nke a:

Site na "mmalite" ruo puku kwuru puku sava na ebe data iri na abuo. Otu anyị si chụsoo uto nke akụrụngwa Linux

Na ndebiri VM, CentOS pere mpe na nke kacha nta achọrọ dị ka nke ziri ezi /etc/resolv.conf, ndị ọzọ na-abịa site na ike.

CMDB - Excel.

Ọ bụrụ na ihe nkesa ahụ bụ anụ ahụ, yabụ kama iṅomi igwe mebere, etinyere OS na ya site na iji Cobbler - a na-agbakwunye adreesị MAC nke ihe nkesa ebumnuche na nhazi Cobbler, ihe nkesa na-enweta adreesị IP site na DHCP, wee tinye OS. na-agbakwunyere.

Na mbụ anyị gbalịrị ime ụfọdụ ụdị nhazi nhazi na Cobbler. Ma ka oge na-aga, nke a malitere iweta nsogbu na ntinye nke nhazi ma na ebe data ndị ọzọ yana koodu nwere ike ịkwado VM.

N'oge ahụ, ọtụtụ n'ime anyị ghọtara na ọ ga-ekwe omume dị ka mgbatị Bash dị mma ma ghara iji shei na sed mee ihe n'ụdị. N'ozuzu Bashsible. Nke a mechara mee ka eziokwu ahụ bụrụ na ọ bụrụ na akwụkwọ egwuregwu ahụ n'ihi ihe ụfọdụ anaghị arụ ọrụ na ihe nkesa ahụ, ọ dị mfe ihichapụ ihe nkesa ahụ, dozie akwụkwọ egwu ma mee ya ọzọ. Enweghị nsụgharị nke scripts, enweghị nhazi nhazi.

Dịka ọmụmaatụ, anyị chọrọ ịgbanwe ụfọdụ nhazi na sava niile:

  1. Anyị na-agbanwe nhazi na sava ndị dị na mpaghara ezi uche / ebe data. Mgbe ụfọdụ ọ bụghị n'otu ụbọchị - nnweta chọrọ na iwu nke ọnụ ọgụgụ buru ibu anaghị ekwe ka mgbanwe niile tinye n'otu oge. Mgbanwe ụfọdụ nwere ike ibibi ma chọọ ịmalitegharị ihe - site na ọrụ gaa na OS n'onwe ya.
  2. Idozi ya na ike
  3. Anyị na-edozi ya na Cobbler
  4. Tinyegharịa ugboro N maka akụkụ ezi uche dị na ya / etiti data ọ bụla

Ka mgbanwe niile wee na-aga nke ọma, ọ dị mkpa iburu n'uche ọtụtụ ihe, na mgbanwe na-eme mgbe niile.

  • Na-emegharị koodu nwere ike ime, faịlụ nhazi
  • Ịgbanwe omume kacha mma n'ime
  • Mgbanwe dabere na nsonaazụ nyocha nke ihe omume/ihe mberede
  • Ịgbanwe ụkpụrụ nchekwa, ma n'ime ma n'èzí. Dịka ọmụmaatụ, a na-eji ihe ọhụrụ emelite PCI DSS kwa afọ

Uto akụrụngwa na mmalite nke njem

Ọnụ ọgụgụ nke sava / ngalaba ezi uche / ebe data na-eto eto, yana ọnụ ọgụgụ nke njehie na nhazi. N'oge ụfọdụ, anyị rutere n'akụkụ atọ nke nhazi nhazi kwesịrị ịmepụta:

  1. Akpaaka. Ekwesịrị izere njehie mmadụ na arụ ọrụ ugboro ugboro dịka o kwere mee.
  2. Nkwagharị ugboro ugboro. Ọ dị mfe ijikwa akụrụngwa mgbe enwere ike ịkọ ya. Nhazi nke sava na ngwaọrụ maka nkwadebe ha kwesịrị ịbụ otu ebe niile. Nke a dịkwa mkpa maka ndị otu ngwaahịa - mgbe ulechara, ngwa ahụ ga-ekwe nkwa na ọ ga-ejedebe na ebe mmepụta ahaziri n'otu aka ahụ na gburugburu ule.
  3. Mfe na nghọta nke ime mgbanwe na nhazi nhazi.

Ọ ka dị ka ịgbakwunye ngwaọrụ abụọ.

Anyị họọrọ GitLab CE dị ka ebe nchekwa koodu anyị, ọbụlagodi maka modul CI/CD arụnyere n'ime ya.

Vault of secret - Hashicorp Vault, incl. maka ezigbo API.

Nhazi ule na ọrụ enwere ike - Molecule+Testinfra. Nnwale na-aga ngwa ngwa ma ọ bụrụ na ị jikọọ na mitogen nwere ike ime. N'otu oge ahụ, anyị malitere ide CMDB nke onwe anyị na onye na-agụ egwú maka ntinye aka na-akpaghị aka (na foto dị n'elu Cobbler), ma nke a bụ akụkọ dị iche iche, nke onye ọrụ ibe m na onye isi mmepụta nke usoro ndị a ga-ekwu n'ọdịnihu.

Nhọrọ anyị:

Molecule + Testinfra
Enwere ike ime + Tower + AWX
Ụwa nke sava + DITNET (mmepe nke onwe)
Onye na -eme mkpọtụ
Gitlab + GitLab onye na-agba ọsọ
Ụlọ ọrụ Hashicorp Vault

Site na "mmalite" ruo puku kwuru puku sava na ebe data iri na abuo. Otu anyị si chụsoo uto nke akụrụngwa Linux

Site n'ụzọ, gbasara ọrụ ndị nwere ike ime. Na mbụ e nwere nanị otu, ma mgbe ọtụtụ refactoring, e nwere 17 n'ime ha. Ana m akwado ike imebi monolith n'ime idempotent ọrụ, nke nwere ike malite iche iche; Ọzọkwa, ị nwere ike tinye mkpado. Anyị kewara ọrụ ndị ahụ site na arụmọrụ - netwọkụ, osisi, ngwugwu, ngwaike, molecule wdg. N'ozuzu, anyị gbasoro atụmatụ dị n'okpuru. Anaghị m ekwusi ike na nke a bụ naanị eziokwu, mana ọ rụrụ ọrụ maka anyị.

  • Iṅomi ihe nkesa site na "onyinyo ọla edo" dị njọ!Ihe ọghọm dị na ya bụ na ị maghị kpọmkwem ọnọdụ onyonyo dị ugbu a, yana na mgbanwe niile ga-abịa na onyonyo niile n'ugbo niile nke ọma.
  • Jiri faịlụ nhazi nke ndabara na opekempe wee kwenye na ngalaba ndị ọzọ na ọ bụ gị na-ahụ maka faịlụ sistemụ bụ isi, dịka ọmụmaatụ:
    1. Hapụ /etc/sysctl.conf efu, ntọala kwesịrị ịdị na /etc/sysctl.d/. Ndabara gị n'otu faịlụ, omenala maka ngwa na nke ọzọ.
    2. Jiri wepu faịlụ iji dezie nkeji sistemu.
  • Depụta nhazi niile wee tinye ha kpamkpam; ọ bụrụ na ọ ga-ekwe omume, enweghị sed ma ọ bụ analogues ya na akwụkwọ egwuregwu
  • Na-emegharị koodu sistemụ njikwa nhazi nhazi:
    1. Kewaa ihe aga-eme n'ime ihe ezi uche dị na ya wee degharịa monolith ka ọ bụrụ ọrụ
    2. Jiri linters! Enwere ike - lint, yaml-lint, wdg
    3. Gbanwee ụzọ gị! Enweghị mkparị. Ọ dị mkpa ịkọwa ọnọdụ nke usoro ahụ
  • Maka ọrụ niile enwere ike ị ga-ede ule na molecule wee mepụta akụkọ otu ugboro n'ụbọchị.
  • N'ọnọdụ anyị, mgbe ị kwadebere ule (nke nwere ihe karịrị 100), ihe dị ka 70000 njehie hụrụ. O were ọtụtụ ọnwa iji dozie ya.Site na "mmalite" ruo puku kwuru puku sava na ebe data iri na abuo. Otu anyị si chụsoo uto nke akụrụngwa Linux

Anyị mmejuputa iwu

Yabụ, ọrụ ndị nwere ike dị njikere, depụta ya ma lelee ya site na linters. Na ọbụna gits na-ebuli ebe niile. Mana ajụjụ maka nnyefe koodu a pụrụ ịdabere na ya na ngalaba dị iche iche ka ghere oghe. Anyị kpebiri imekọrịta na scripts. Ọ dị ka nke a:

Site na "mmalite" ruo puku kwuru puku sava na ebe data iri na abuo. Otu anyị si chụsoo uto nke akụrụngwa Linux

Mgbe mgbanwe ahụ rutere, a na-ewepụta CI, a na-emepụta ihe nkesa ule, a na-atụgharị ọrụ, ma nwalee ya site na molecule. Ọ bụrụ na ihe niile dị mma, koodu na-aga na ngalaba prod. Mana anyị anaghị etinye koodu ọhụrụ na sava ndị dị na igwe. Nke a bụ ụdị nkwụsị nke dị mkpa maka ịdị elu nke sistemụ anyị. Na mgbe akụrụngwa na-aghọ nnukwu, iwu nke ọnụ ọgụgụ buru ibu na-abata - ọbụlagodi na ị ji n'aka na mgbanwe ahụ adịghị njọ, ọ nwere ike ibute nsonaazụ dị egwu.

Enwekwara ọtụtụ nhọrọ maka ịmepụta sava. Anyị mechara họrọ script Python omenala. Na maka CI nwere ike:

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

Nke a bụ ihe anyị bịara, usoro ahụ na-aga n'ihu na-adị ndụ ma na-etolite.

  • 17 Ọrụ enwere ike maka ịtọlite ​​​​sava. Emebere ọrụ nke ọ bụla iji dozie ọrụ ezi uche dị iche iche (ịgba osisi, nyocha, ikike onye ọrụ, nleba anya, wdg).
  • Nnwale ọrụ. Molecule + TestInfra.
  • Mmepe nke onwe: CMDB + Ọchịst.
  • Oge imepụta ihe nkesa bụ ~ nkeji iri atọ, akpaaka na enweghị onwe ya na kwụ n'ahịrị ọrụ.
  • Otu steeti/aha nke akụrụngwa dị na ngalaba niile - akwụkwọ egwuregwu, ebe nchekwa, ihe ndị na-eme nke ọma.
  • Nyochaa ọkwa kwa ụbọchị nke ihe nkesa yana ọgbọ nke akụkọ gbasara enweghị nkwekọrịta na ọkọlọtọ.

Enwere m olileanya na akụkọ m ga-aba uru nye ndị nọ na mmalite nke njem ha. Kedu ngwugwu akpaaka ị na-eji?

isi: www.habr.com