Bho “tòiseachaidh” gu mìltean de luchd-frithealaidh ann an dusan ionad dàta. Mar a rinn sinn ruaig air fàs bun-structair Linux

Ma dh’ fhàsas am bun-structar IT agad ro luath, bidh roghainn agad nas luaithe no nas fhaide air adhart: àrdaich goireasan daonna gu sreathach gus taic a thoirt dha no tòiseachadh air fèin-ghluasad. Gu ruige seo, bha sinn a 'fuireach anns a' chiad paradigm, agus an uairsin thòisich an t-slighe fhada gu Bun-structar-as-Code.

Bho “tòiseachaidh” gu mìltean de luchd-frithealaidh ann an dusan ionad dàta. Mar a rinn sinn ruaig air fàs bun-structair Linux

Gu dearbh, chan e toiseach tòiseachaidh a th 'ann an NSPK, ach bha an leithid de àile a' riaghladh anns a 'chompanaidh anns a' chiad bhliadhna de a bhith ann, agus bha iad sin nam bliadhnaichean glè inntinneach. Is e m’ ainm Kornyakov Dmitry, Tha mi air a bhith a’ toirt taic do bhun-structar Linux le riatanasan ruigsinneachd àrd airson còrr air 10 bliadhna. Chaidh e a-steach do sgioba NSPK san Fhaoilleach 2016 agus, gu mì-fhortanach, chan fhaca e fìor thoiseach beatha a ’chompanaidh, ach thàinig e aig ìre de dh’ atharrachaidhean mòra.

San fharsaingeachd, faodaidh sinn a ràdh gu bheil an sgioba againn a 'solarachadh 2 bathar airson a' chompanaidh. Tha a 'chiad fhear - bun-structair. Bu chòir don phost obrachadh, bu chòir dha DNS obrachadh, agus bu chòir do luchd-riaghlaidh fearainn do leigeil a-steach do luchd-frithealaidh nach bu chòir tuiteam. Tha cruth-tìre IT na companaidh fìor mhòr! Is iad sin siostaman gnìomhachais & misean riatanach, is e na riatanasan ruigsinneachd airson cuid 99,999. Is e an dàrna toradh na frithealaichean fhèin, corporra agus brìgheil. Feumar sùil a chumail air an fheadhainn a th’ ann mar-thà, agus feumar feadhainn ùra a lìbhrigeadh gu cunbhalach do luchd-ceannach bho iomadh roinn. San artaigil seo tha mi airson fòcas a chuir air mar a leasaich sinn am bun-structar a tha an urra ri cearcall beatha an fhrithealaiche.

Tòiseachadh an turais

Aig toiseach ar turais, bha an stac teicneòlais againn a’ coimhead mar seo:
OS CentOS 7
Luchd-riaghlaidh fearainn FreeIPA
Automation - An urra (+ Tùr), Greusaiche

Bha seo uile suidhichte ann an 3 raointean, air a sgaoileadh thairis air grunn ionadan dàta. Ann an aon ionad dàta tha siostaman oifis agus làraichean deuchainn, anns a 'chòrr tha PROD.

Bha cruthachadh frithealaichean aig aon àm a’ coimhead mar seo:

Bho “tòiseachaidh” gu mìltean de luchd-frithealaidh ann an dusan ionad dàta. Mar a rinn sinn ruaig air fàs bun-structair Linux

Anns an teamplaid VM, tha CentOS glè bheag agus tha an ìre as ìsle a tha a dhìth mar an ceart /etc/resolv.conf, thig an còrr tro Ansible.

CMDB - Excel.

Ma tha an frithealaiche corporra, an uairsin an àite a bhith a’ dèanamh leth-bhreac den inneal brìgheil, chaidh an OS a chuir a-steach air a’ cleachdadh Cobbler - tha seòlaidhean MAC an fhrithealaiche targaid air an cur ri config Cobbler, gheibh am frithealaiche seòladh IP tro DHCP, agus an uairsin an OS air a chur ris.

An toiseach dh’ fheuch sinn eadhon ri seòrsa de riaghladh rèiteachaidh a dhèanamh ann an Cobbler. Ach thar ùine, thòisich seo air duilgheadasan a thoirt le so-ghiùlain rèiteachaidhean an dà chuid gu ionadan dàta eile agus chun chòd Ansible airson VMan ullachadh.

Aig an àm sin, bha mòran againn a 'faicinn Ansible mar leudachadh freagarrach air Bash agus cha do chuir sinn bacadh air dealbhadh a' cleachdadh sligean agus sed. Uile gu lèir Bashsible. Dh'adhbhraich seo aig a’ cheann thall mura biodh an leabhar-cluiche airson adhbhar air choireigin ag obair air an fhrithealaiche, bha e na b’ fhasa an frithealaiche a dhubhadh às, an leabhar-cluiche a chàradh agus a ruith a-rithist. Gu ìre mhòr cha robh dreach sam bith de sgriobtaichean ann, cha robh comas giùlain ann.

Mar eisimpleir, bha sinn airson beagan config atharrachadh air a h-uile frithealaiche:

  1. Bidh sinn ag atharrachadh an rèiteachadh air na frithealaichean a th’ ann mar-thà anns an roinn loidsigeach / ionad dàta. Uaireannan chan ann ann an aon latha - chan eil riatanasan ruigsinneachd agus lagh àireamhan mòra a 'leigeil le gach atharrachadh a bhith air a chur an sàs aig an aon àm. Agus dh’ fhaodadh cuid de dh’ atharrachaidhean a bhith millteach agus feumar rudeigin ath-thòiseachadh - bho sheirbheisean chun OS fhèin.
  2. A chur ceart ann an Ansible
  3. Bidh sinn ga chàradh ann an Cobbler
  4. Dèan ath-aithris N amannan airson gach earrann loidsigeach / ionad dàta

Gus am bi na h-atharrachaidhean gu lèir a 'dol gu rèidh, bha e riatanach mòran fhactaran a ghabhail a-steach, agus bidh atharrachaidhean a' tachairt daonnan.

  • Refactoring ansible code, faidhlichean rèiteachaidh
  • Ag atharrachadh cleachdaidhean as fheàrr a-staigh
  • Atharraichean stèidhichte air toraidhean mion-sgrùdadh air tachartasan / tubaistean
  • Ag atharrachadh inbhean tèarainteachd, an dà chuid a-staigh agus a-muigh. Mar eisimpleir, tha PCI DSS air ùrachadh le riatanasan ùra gach bliadhna

Fàs bun-structair agus toiseach an turais

Dh'fhàs an àireamh de luchd-frithealaidh / raointean loidsigeach / ionadan dàta, agus còmhla riutha an àireamh de mhearachdan ann an rèiteachaidhean. Aig àm air choreigin, thàinig sinn gu trì stiùiridhean anns am feumar riaghladh rèiteachaidh a leasachadh:

  1. fèin-ghluasad. Bu chòir mearachd daonna ann an gnìomhachd ath-aithris a sheachnadh cho mòr 'sa ghabhas.
  2. Ath-aithris. Tha e mòran nas fhasa bun-structar a riaghladh nuair a tha e ro-innseach. Bu chòir rèiteachadh luchd-frithealaidh agus innealan airson an ullachadh a bhith mar an ceudna anns gach àite. Tha seo cuideachd cudromach airson sgiobaidhean toraidh - às deidh deuchainn, feumaidh an tagradh a bhith cinnteach gum bi e ann an àrainneachd cinneasachaidh a tha air a dhealbhadh san aon dòigh ris an àrainneachd deuchainn.
  3. Simplidheachd agus follaiseachd ann a bhith a’ dèanamh atharrachaidhean air riaghladh rèiteachaidh.

Tha e fhathast ri inneal no dhà a chur ris.

Thagh sinn GitLab CE mar an stòr còd againn, gu h-àraidh airson na modalan CI / CD a chaidh a thogail a-steach.

Cruth dìomhaireachd - Hashicorp Vault, a’ gabhail a-steach. airson an API mòr.

A’ dèanamh deuchainn air rèiteachaidhean agus dreuchdan iomchaidh - Molecule + Testinfra. Bidh deuchainnean a’ dol fada nas luaithe ma cheanglas tu ri mitogen ansible. Aig an aon àm, thòisich sinn a 'sgrìobhadh an CMDB agus an orchestrator againn fhèin airson cleachdadh fèin-ghluasadach (san dealbh gu h-àrd Cobbler), ach is e sgeulachd gu tur eadar-dhealaichte a tha seo, a dh' innseas mo cho-obraiche agus prìomh leasaiche nan siostaman sin san àm ri teachd.

Ar roghainn:

Moileciuil + Testinfra
Ansible + Tùr + AWX
World of Servers + DITNET (Leasachadh fhèin)
Greusaiche
Gitlab + ruitheadair GitLab
Cruth-clò Hashicorp

Bho “tòiseachaidh” gu mìltean de luchd-frithealaidh ann an dusan ionad dàta. Mar a rinn sinn ruaig air fàs bun-structair Linux

Co-dhiù, mu dheidhinn dreuchdan ciallach. An toiseach cha robh ann ach aon, ach an dèidh grunn ath-sgrùdaidhean bha 17 dhiubh ann. Tha mi a 'moladh gu làidir am monolith a bhriseadh gu dreuchdan neo-chomasach, a dh' fhaodar a chuir air bhog air leth; a bharrachd air an sin, faodaidh tu tagaichean a chur ris. Roinn sinn na dreuchdan a rèir comas-gnìomh - lìonra, logadh, pasganan, bathar-cruaidh, moileciuil msaa. San fharsaingeachd, lean sinn an ro-innleachd gu h-ìosal. Chan eil mi a’ cumail a-mach gur e seo an aon fhìrinn, ach dh’ obraich e dhuinne.

  • Tha e olc a bhith a’ dèanamh lethbhreac de na frithealaichean bhon “ìomhaigh òir”!Is e am prìomh ana-cothrom nach eil fios agad dè dìreach an suidheachadh anns a bheil na h-ìomhaighean an-dràsta, agus gun tig a h-uile atharrachadh air a h-uile ìomhaigh anns a h-uile tuathanas virtualization.
  • Cleachd na faidhlichean rèiteachaidh bunaiteach aig a’ char as lugha agus aontaich le roinnean eile gu bheil thu cunntachail airson prìomh fhaidhlichean an t-siostaimmar eisimpleir:
    1. Fàg /etc/sysctl.conf falamh, cha bu chòir na roghainnean a bhith ach ann an /etc/sysctl.d/. Do bhunait ann an aon fhaidhle, gnàthaichte airson an aplacaid ann am fear eile.
    2. Cleachd cus fhaidhlichean gus aonadan siostam a dheasachadh.
  • Teamplaid a h-uile rèiteachadh agus cuir a-steach iad gu tur; ma ghabhas e dèanamh, chan eil sed no na analogues ann an leabhraichean cluiche
  • Ag ath-nuadhachadh còd an t-siostam riaghlaidh rèiteachaidh:
    1. Dèan briseadh sìos air gnìomhan gu aonadan loidsigeach agus ath-sgrìobh am monolith gu dreuchdan
    2. Cleachd lòchrain! Ansible-lint, yaml-lint, etc
    3. Atharraich do dhòigh-obrach! Gun teagamh. Tha e riatanach cunntas a thoirt air staid an t-siostaim
  • Airson a h-uile dreuchd Ansible feumaidh tu deuchainnean a sgrìobhadh ann am moileciuil agus aithisgean a ghineadh uair san latha.
  • Anns a 'chùis againn, an dèidh ullachadh nan deuchainnean (a tha còrr is 100 dhiubh), chaidh mu 70000 mearachd a lorg. Thug e grunn mhìosan airson a chàradh.Bho “tòiseachaidh” gu mìltean de luchd-frithealaidh ann an dusan ionad dàta. Mar a rinn sinn ruaig air fàs bun-structair Linux

Ar buileachadh

Mar sin, bha na dreuchdan iomchaidh deiseil, air an dealbhadh agus air an sgrùdadh le loidhnichean-lìn. Agus tha eadhon gits air an togail anns a h-uile àite. Ach bha a’ cheist mu lìbhrigeadh còd earbsach gu diofar roinnean fhathast fosgailte. Cho-dhùin sinn sioncronachadh le sgriobtaichean. Tha e coltach mar sin:

Bho “tòiseachaidh” gu mìltean de luchd-frithealaidh ann an dusan ionad dàta. Mar a rinn sinn ruaig air fàs bun-structair Linux

Às deidh an atharrachadh a thighinn, thèid CI a chuir air bhog, thèid frithealaiche deuchainn a chruthachadh, thèid dreuchdan a sgaoileadh a-mach, agus deuchainn leis a’ mholacile. Ma tha a h-uile càil ceart gu leòr, thèid an còd chun mheur prod. Ach cha bhith sinn a’ cur còd ùr an sàs anns na frithealaichean a th’ ann mar-thà san inneal. Is e seo seòrsa de stad-stad a tha riatanach airson ruigsinneachd àrd de na siostaman againn. Agus nuair a dh’ fhàsas am bun-structar mòr, thig lagh àireamhan mòra a-steach - eadhon ged a tha thu cinnteach gu bheil an t-atharrachadh gun chron, faodaidh e droch bhuaidh a thoirt air.

Tha mòran roghainnean ann cuideachd airson frithealaichean a chruthachadh. Chrìochnaich sinn a’ taghadh sgriobtaichean Python àbhaisteach. Agus airson 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}}"

Is e seo a tha sinn air tighinn gu, tha an siostam a 'leantainn air adhart a' fuireach agus a 'leasachadh.

  • 17 Dreuchdan iomchaidh airson stèidheachadh an fhrithealaiche. Tha gach aon de na dreuchdan air a dhealbhadh gus fuasgladh fhaighinn air gnìomh loidsigeach air leth (logadh, sgrùdadh, cead neach-cleachdaidh, sgrùdadh, msaa).
  • Deuchainn dreuchd. Moileciuil + TestInfra.
  • Leasachadh fhèin: CMDB + Orcastra.
  • Is e an ùine cruthachaidh frithealaiche ~ 30 mionaid, fèin-ghluasadach agus cha mhòr neo-eisimeileach bhon ciudha gnìomh.
  • An aon staid / ainmeachadh den bhun-structair anns a h-uile roinn - leabhraichean-cluiche, stòran, eileamaidean virtualization.
  • Sgrùdadh làitheil air inbhe an fhrithealaiche le gineadh aithisgean air neo-chunbhalachd leis an inbhe.

Tha mi an dòchas gum bi mo sgeul feumail dhaibhsan a tha aig toiseach an turais. Dè an stac fèin-ghluasaid a bhios tu a’ cleachdadh?

Source: www.habr.com