ααααα·αααΎα αααααΆαα ααΆαααααααα IT ααααα’αααααΈαα ααααΎαααΏαααα α’αααααΉαααααΌαααααααα»αααΉααααααΎααα½αα αααααΎαααααΆαααα»αααααΆαα½αααΎααααΈααΆααααααΆ α¬α αΆααααααΎαααααααααααααα·ααααα αα αΌααααααα ααα»α αααα ααΎαααΆαααααα αααα»αααααΌααΈαα½α α αΎααααααΆααααααααΌααααααααααΆααα ααΆαα Infrastructure-as-Code ααΆαα αΆααααααΎαα
ααΆααΆααα·αααΆαα NSPK αα·ααααααΆααΆαα
αΆααααααΎααα ααα»ααααααα·ααΆααΆαααααααααΆαααααααααααααα»αα αα»ααα
αααα»αααααΆαααααΌαααα’αααα·ααΆαααααααΆ α αΎαααΆαααααααΊααΆααααΆαααααα½αα±ααα
αΆααα’αΆααααααααααΆααααΆααα αααααβαααααααα»αβααΊ
ααΆααΌαα ααΎαα’αΆα αα·ααΆαααΆαααΆαααα»αααααααΎαααααααααααααα·αααα ααα½α 2 αααααΆαααααα»αα αα»αα ααΈαα½αααΊα αααααΆαα ααΆααααααααα αααα»ααααα½αααααααΎαααΆα DNS αα½αααααααΎαααΆα α αΎαα§ααααααααααΆααααα½αααα’αα»ααααΆαα±ααα’αααα αΌααα αααα»ααααΆαααΈαααααααα·ααα½αααΆααα αα·αααααΆα IT αααααααα»αα αα»αααΊαααααααΆαα! ααΆαααααααΊααΆααααααααααααΆααααα’αΆααΈααααα αα·ααααααααα αααααΌαααΆααααααΆααααΆαα’αΆα ααααΆααααααΆαααα½αα ααα½αααΊ 99,999 α ααα·αααααΈααΈαααΊαααΆαααΈαααααααααα½αα―α ααΌααααα αα·ααα·αααα·αα ααααα»αααααΆαααααΆααααααΌαααααααΌαααΆααααα½ααα·αα·ααα α αΎαααααΈααααΌαααααααΌαααΆαα ααα αΆαααΆαααααΆαααα ααΆααα’αα·αα·ααααΈααΆααααααΆαααΆα αααΎαα αα αααα»αα’αααααααααααα»αα αααααααααΎαααααααααΎααααααΎαα αααααΆαα ααΆαααααααααααααα½ααα»αααααΌαα ααααααααααΈαα·ααααααααΆαααΈαααα
ααΆαα αΆααααααΎαααααααΌα
αα
ααΎαααααΌαααααΆαααααΎααααΎαααααααΎα ααααα
αα
αααα·ααααΆααααααΎαααΎααα
ααΌα
αααα
ααααααααααααα·ααααα·ααΆα CentOS 7
FreeIPA Domain Controllers
ααααααααααααα·αααα - Ansible(+Tower), Cobbler
ααΆααα’αααααααΆαααΈααΆαααα 3 domains αααααΈαααΆαααΆααα ααΌααΆααααααααααααα·ααααααααΆα αααΎαα αα αααα»αααααααααααα·αααααααα½αααΆαααααααααααΆαα·ααΆααα αα·αααααααααΆααααα α αΎααα αααααΆα PROD α
ααΆααααααΎααααΆαααΈααααα α ααα»α αα½αααΎααα ααΌα αααα
αα αααα»αααααΌ VM CentOS ααΊαα·α αα½α αααα»α α αΎαα’αααααααΆαααααααΌαααΆαααΊααΌα ααΆ /etc/resolv.conf ααααΉαααααΌα α αΎααα αααααααΆαααα Ansible α
CMDB - Excel α
ααααα·αααΎαααΆαααΈαααααΆαααααααααΌααααα ααααααα½αα±ααααΆαα αααααααΆαααΈααα·αααα·α ααααααααααααα·ααααα·ααΆαααααΌαααΆαααα‘αΎααα ααΎααΆαααααααΎ Cobbler - α’αΆααααααΆα MAC αααααααΆαααΈαααααααα ααααΌαααΆααααααααα ααΆαααααααα ααΆαααααααα Cobbler αααΆαααΈαααααα½αααΆαα’αΆααααααΆα IP ααΆαααα DHCP α αΎααααααΆααααααααααααααααα·ααααα·ααΆα ααααΌαααΆαααααααα
ααααΌαα‘αΎα ααΎααααααΆααααααΆααΆαααααΎααΆααααααααααααΆαααααααα ααΆαααααααααα½αα ααα½ααα αααα»α Cobbler α ααα»ααααααΌα α αα αααααΆαα αΆααααααΎαααΆαααααΌααααα αΆααΆαα½αααΉαααΆαα αααααααΆαααααααα ααΆααααααααααΆαααα ααααααααααα·αααααααααααααααα·ααααααΌα Ansible αααααΆααααΆααααα α VMs α
αα αααααα αα½αααΎαααΆα αααΎαααΆααααααΆ Ansible ααΆαααααααααααααααΆααααα½ααα Bash α αΎααα·αααΆαααααααΆααα ααΆαααααααΎααα αα·α sed ααα Bashsible ααα»αα ααααα ααΈαααα»αααΆαα±ααααΆααα·ααααααΆααααα·αααΎααααα ααααααααΆααα ααα»αααα½αα ααα½ααα·αααααΎαααΆαααΎαααΆαααΈααα ααΆααΆααααααΆααααα½ααααα»αααΆααα»ααααΆαααΈααα αα½ααα»αααααα ααα α αΎαααααΎαααΆαααΆαααααααα ααααΆαααα·αααΆαααααααααααΈα ααααΆαααΆαααααααα ααΆααααααααα αααααα
α§ααΆα ααα ααΎαα ααααααΆααααααΌαααΆαααααααα½αα ααα½ααα ααΎαααΆαααΈαααααΆααα’ααα
- ααΎαααααΆααααααΌαααΆαααααααα ααΆαααααααααα ααΎαααΆαααΈααααααααΆαααααΆαααα αααα»ααααααα‘αΌααΈαα/ααααααααααα·ααααααα ααααααααα·αααααααα»ααα½ααααααα - αααααΌαααΆαααΆαααΆααααα½α αα·αα αααΆααααα ααα½αα αααΎααα·αα’αα»ααααΆαα±ααααΆαααααΆααααααΌαααΆααα’ααααααΌαααΆαα’αα»αααααααα»αααααααα½ααααααα α αΎαααΆαααααΆααααααΌααα½αα ααα½αααΆααααααΆαα»αααααααα·α ααααααΆα α αΎαααΆαααΆαα±ααα αΆααααααΎαα’αααΈαα½αα‘αΎααα·α - ααΈααααΆαααααα OS αααα½αααΆααααΆααα
- αα½ααα»αααΆαα αααα»α Ansible
- ααΎααα½ααα»αααΆαα αααα»α Cobbler
- ααααΎααααααα N αααααααΆαααααααα‘αΌααΈαα / ααααααααααα·ααααααααΈαα½αα
ααΎααααΈα±ααααΆαααααΆααααααΌαααΆααα’ααααααΎαααΆααα ααααααΌα α αΆαααΆα αααααΌααα·αααΌαααΈαααααΆααΆα αααΎα α αΎαααΆαααααΆααααααΌαααΎαα‘αΎαα₯ααααααα
- ααΆαβααβααααα½αβααΌαβαααβα’αΆα βααααΎβααΆα α―αααΆαβαααααβαα ααΆαααααααα
- ααΆαααααΆααααααΌαααΆαα’αα»ααααααα’αααα»ααααααααα»α
- ααΆαααααΆααααααΌααααααα’ααααΎααααααααααΆααα·ααΆαα§ααααααα·α ααα» / αααααααααΆαα
- ααΆαααααΆααααααΌααααααααΆααα»ααααα·ααΆαααΆααααΆααααα»α αα·αααΆααααα α α§ααΆα ααα PCI DSS ααααΌαααΆαααααΎαα αα α»ααααααααΆαααΆαα½αααΉααααααΌαααΆαααααΈααΆαααααΆααααααΆα
ααααΎαα αααααΆαα ααΆαααααααα αα·αααΆαα αΆααααααΎαααααΆαααααΎααααΎα
α ααα½ααααΆαααΈααα/αααα‘αΌααΈαα/ααααααααααα·ααααααααΆαααΎαα‘αΎα α αΎαααΆαα½αααΉααα½αααα ααα½αααααα α»ααααα»αααΆαααααααα ααΆααααααααα αα α ααα»α αααα ααΎαααΆαααααααα·ααα ααΈ αααααΆααααααααααααΆαααααααα ααΆααααααααα αΆαααΆα αααααΌααααααΎαα
- ααααααααααααα·ααααα ααα α»αααααααα»ααααααα»αααααα·ααααα·ααΆαααααααα½αααααααΌαααΆααααααΆαααΆααααα’αΆα ααααΎαα ααΆαα
- ααΆαα’αΆα ααααΎαααααααα ααΆααΆααααααΆααααα½ααααα»αααΆααααααααααα αααααΆαα ααΆαααααααα αα ααααααααΆα’αΆα ααααΆααααααΆαα ααΆαααααααα ααΆαααααααααααΆαααΈααα αα·αα§ααααααααααΆααααΆααααα ααααααα½ααααα½αααααΌα ααααΆαα αααααααΈααααααα αααααααααΆααααααααααααΆαααααα»αααα·ααα - αααααΆααααΈααΆαααααΎααααα αααααα·ααΈααααΌαααααααΌαααΆαααΆααΆααΆααΉααααα αααα αααα»αααα·ααΆααΆαααα·ααααααααααΆαααααααα ααΆααααααααααααααααααΆαα ααΉαααα·ααΆααΆαααΆαααααα
- ααΆαααΆαααα αα·ααααααΆααΆαααααΆαααααΆααααααΌαααΆααααααααααααΆαααααααα ααΆααααααααα
ααΆαα αααααΎααααΈααααααα§αααααααΈαααΈα
ααΎαααΆαααααΎαααΎα GitLab CE ααΆααααΆααααΌαααααααΎα αααΆαα αα ααΆαααααααΆαααααΌαα»α CI/CD αααααααΆααααααΆαα½αααααααΆα
αα»αααααα’αΆααααααΆαα - Hashicorp Vault, αα½αααΆααα αααααΆαα API ααα’ααα αΆαααα
ααΆαααααΎαααααααΆαααααααα ααΆαααααααα αα·ααα½ααΆααΈαααα’αΆα ααΆαααΆα - αααΌαααα»α + αααααα·αα αααααΆα ααΆαααααΎαααααααααΎαααΆαααΏαααΆαααααα·αααΎα’αααααααΆαααα ansible mitogen α αααα»ααααααΆαα½αααααΆααα ααΎαααΆαα αΆααααααΎαααααα CMDB αα·αα’ααααααα ααααααα·ααΈααααΆαααααα½αααααααΎααααααΆααααΆαααΆαααααααΆααααααααααααααααα· (αααα»αααΌαααΆαααΆαααΎ Cobbler) ααα»αααααααααΊααΆααΏααα»αααααΆααΆαααααα»α ααααα αααα·ααααααααα»ααα·αα’αααα’αα·ααααααααααΆααααααααααααααΆαααααααΉαααααΆαααα αααα’ααΆααα
αααααΎαααααααΎαα
αααΌαααα»α + αααααα·αα αααααΆ
Ansible + Tower + AWX
αα·αααααααΆαααΈααα + DITNET (ααΆαα’αα·ααααααααααΆαααααα½α)
αααα»α Northampton
α’αααααα Gitlab + GitLab
αα»ααα Hashicorp
ααααα·ααΈαααα’αααΈαα½ααΆααΈ ansible α ααααΌαααΆααααα½αααα»ααααα ααα»αααααααααΆααααΈααΆααααααα’ααΆα αααΎααα ααΆα 17 αααα»αα αααααα½αααΆα αααα»αααΌααααααα’αα»ααΆααααααΆαααααΆααα±ααααααα monolith αα ααΆαα½ααΆααΈ idempotent ααααααααΆααααα’αΆα ααααΌαααΆαα αΆααααααΎααααα‘ααααΈααααΆ ααΎαααΈααααααα’αααα’αΆα ααααααααααΆαα ααΎαααΆααααα αααα½ααΆααΈααααα»αααΆα - αααααΆα, αααααα ααα», αααα αα, αααααααΉα, αααΌαααα»αααΆααΎαα ααΆααΌαα ααΎαααααΎααΆααα»αααααΆαααααααΆααααααα αααα»αβαα·αβαααΌα βααΆβαααβααΊβααΆβααΆαβαα·αβααβαα½αβαααβ, ααα»ααααβααΆβααΆαβααααΎβααΆαβαααααΆααβααΎαβα
- ααΆαα αααααααΆαααΈαααααΈ "ααΌαααΆαααΆα" ααΊα’αΆααααα!αα»ααα·ααααα·α αααααααααΊααΆα’ααααα·αααΉαα αααΆααααΆααΌαααΆααααα·ααα αααα»αααααΆαααΆααααααΆαα α αΎαααΆαααααΆααααααΌαααΆααα’ααααΉαααΎαααΆαα ααααααΌαααΆαααΆααα’αααα αααα»αααα·ααααΆααα·αααα·αααΆααα’ααα
- ααααΎα―αααΆαααααααα
ααΆααααααααααααΆαααΎαα±αααα·α
αααα»α α αΎααααααααααΆαα½αααΆααααααΆααααααααααααα’αααααα½ααα»αααααΌαα
ααααα―αααΆαααααααααααααΆαααα§ααΆα ααα:
- αα»αα±αα /etc/sysctl.conf ααα ααΆαααααααα½ααααα αααα»α /etc/sysctl.d/ ααα»αααααα ααααΆαααΎαααααα’ααααα αααα»αα―αααΆααα½α ααααΆαααααα½ααααααΆαααααααα·ααΈαα αααα»ααα½αααααααααα
- ααααΎα―αααΆαααα·αααααΎααααΈααααααα½αα―αααΆααααααααα
- ααααΌααΆαααααααα ααΆααααααααααΆααα’αα αα·ααα½ααααα αΌααα½αααΆααΆαααααα»α ααααα·αααΎα’αΆα ααααΎααΆα ααααΆα sed α¬ analogues ααααααΆαα αααα»αααααα ααααα
- ααΆαααααααααΌααααααααααααααααααααΆαααααααα
ααΆααααααααα‘αΎααα·αα
- αααααααΆααα·α αα αα ααΆα’αααααΆαα‘αΌααΈαα α αΎααααααα‘αΎααα·αααΌα monolith αα ααΆαα½ααΆααΈ
- ααααΎα‘α! Ansible-lint, yaml-lint, αα
- ααααΆααααααΌααα·ααΈααΆαααααααααα’ααα! ααααΆαααΆααααααΆαα ααΆα αΆαααΆα ααααα»αααΆααα·αααααΆα’αααΈααααΆαααΆααααααααααα
- αααααΆαααα½ααΆααΈ Ansible ααΆααα’αα α’αααααααΌααααααααΆαααααΎααααααα αααα»ααααΌαααα»α αα·ααααααΎααααΆαααΆααααααααααα»ααα½αααααα
- αααα»αααααΈααααααΎααααααΆααααΈαααα αααΆαααααΎααααα (αααααΆαα αααΎαααΆα 100) αααα αα 70000 ααα α»αααααΌαααΆαααααΎαα ααΆααααΌαα αααΆααααααΆα αααΎαααααΎααααΈαα½ααα»αααΆα
ααΆαα’αα»ααααααααααΎαα
ααΌα αααα αα½ααΆααΈ ANSI ααΆαααααααα½α ααΆαα ααααΌ αα·ααα·αα·αααααα linters α α αΎαααΌααααΈαα gits ααααΌαααΆαααΎαα‘αΎααα αααααααΈααααααα ααα»αααααααα½αααααΆαααααααααααΌααααα’αΆα αα»αα α·αααααΆααα ααΆααααααααααααααα ααααΎαα αα α ααΎαααΆααααααα α α·αααααααΎααααΆαααααααΆαα½αααααααΈαα ααΎααα ααΌα αααα
αααααΆααααΈααΆαααααΆααααααΌαααααα CI ααααΌαααΆαααΎαααααΎαααΆα αααΆαααΈαααααΆαααααααααΌαααΆααααααΎα αα½ααΆααΈααααΌαααΆαααΆααα αα αα·αααΆαααααααααααΌαααα»αα ααααα·αααΎα’αααΈαααΆααα’αααα·αα’αΈαα αααααΌααα ααΆααΆααα·αααα ααα»ααααααΎααα·αα’αα»ααααααΌαααααΈαα αααΆαααΈααααααααΆαααααΆαααα αααα»ααααΆαααΈαααα αααααΊααΆαααααααα stopper αααα αΆαααΆα ααααααΆααααΆαα’αΆα ααααΆααααααααααααααααααααααΎαα α αΎααα ααααααα αααααΆαα ααΆααααααααααααΆαααΆαα α αααΆααααα ααα½αααα αααΎαααΆαα αΌαααΆααααΆα - αααααΈααΆα’αααααααΆααααΆααΆαααααΆααααααΌααααααααΆαααΆααααααααααααααΆααααααα ααΆα’αΆα ααΆαα±ααααΆααααα·ααΆααααααααααα
ααΆααααΆααααααΎαααΆα αααΎααααααΆαααααααΎααααΆαααΈααααααααα ααΎαααΆααααα ααααΆαααααΎαααΎαααααααΈα Python ααααΆαααααα½αα α αΎααααααΆαα CI ANSIα
- 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}}"
αααααΊααΆα’αααΈαααααΎαααΆαααααα ααααααααααααααααα αα·αα’αα·ααααα
- 17 αα½ααΆααΈ Ansible αααααΆααααΆαααα‘αΎααααΆαααΈαααα αα½ααΆααΈααΈαα½ααααααΌαααΆααα ααΆα‘αΎαααΎααααΈαααααααΆααα·α αα ααΆαα‘αΌααΈααααΆα ααααα‘αααα½α (ααΆαααΆααααΎ ααααααα ααΆαα’αα»ααααΆαα’αααααααΎααααΆαα ααΆααααα½ααα·αα·αααααα)α
- ααΆαααααΎααααααα½ααΆααΈα αααΌαααα»α + TestInfra α
- ααΆαα’αα·ααααααααααΆαααααα½αα CMDB + Orchestrator α
- αααααααΆαααααΎααααΆαααΈαααααΊ ~ 30 ααΆααΈ ααααααααααααα· αα·αα’αα»αααααααα―αααΆααααααα½ααα·α αα ααΆαα
- ααααΆαααΆαααΌα ααααΆ/ααΆαααΆαααααααααα αααααΆαα ααΆαααααααααα αααα»ααααααααΆααα’αα - ααααα ααα ααααΆαα ααΆαα»αα·αααα·αα
- ααΆααααα½ααα·αα·αααααααΆαααΆααααΆαααΈααααααα αΆααααα ααΆαα½αααΉαααΆααααααΎααααΆαααΆαααααααΈααΈααΆααα·αααααααααΆααΆαα½αααΉααααααααΆαα
αααα»ααααααΉαααΆααΏααααααααα»αααΉαααΆααααααααααααααΆααα’ααααααα αΆααααααΎαααααΎααααααα½αααα ααΎαααααααααααααααα·ααααα’αααΈαααα’αααααααΎ?
ααααα: www.habr.com