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.
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
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:
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:
- 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.
- Te whakatika i roto i te Ansible
- Ka whakatikahia e matou i roto i te Cobbler
- 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:
- Aunoatanga. Ko nga hapa a te tangata i roto i nga mahi tukurua me karo i nga mea ka taea.
- 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.
- 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
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:
- 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.
- 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:
- Wawhatia nga mahi ki roto i nga hinonga arorau ka tuhi ano i te monolith hei mahi
- Whakamahia nga raina! Ansible-lint, yaml-lint, etc
- 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.
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:
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