Anonim

Kredit: Shutterstock

Jeden z nejpopulárnějších produktů pro správu konfigurace a automatizaci infrastruktury na trhu je Ansible. Možné - spolu s Chef, Puppet, CFEngine - je součástí třídy softwaru pro DevOps. Tyto nástroje pomáhají automatizovat poskytování infrastruktury, nasazení softwaru a správu obecných konfigurací.

Možné je zaměřeno na Linux. S novým postojem Microsoftu k otevřeným zdrojům, jejich příspěvky v komunitě a přijetím agilnějšího přístupu k vývoji softwaru zaměřeného na DevOps však podpora Windows pomalu dohání. Pokud jste slyšeli o Ansible, ale ve skutečnosti jste ho nepoužívali, je poměrně snadné se připravit. Ačkoli podpora Windows vyžaduje trochu více konfigurace, není to tak špatné, jakmile bude provedeno počáteční nastavení.

Pojďme se ponořit do Ansible a nechat si to nasazením jednoduchých změn do uzlu Windows.

Nastavení Linux VM s Vagrantem

Možné spuštění na řídicím serveru. Na rozdíl od jiných produktů pro správu konfigurace nemá agenta a odesílá příkazy uzlům, které jsou pod jeho kontrolou. Bohužel pro nás Windows lidi, to musí být spuštěn na Linuxu. Pokud nemáte kolem sebe náhradní linuxovou krabici, pojďme si ji vytáhnout. Vagrant používám pro všechny své počáteční zkoušky. Je to nejjednodušší způsob, jak jsem našel, jak rychle dostat VM s téměř jakoukoli chutí a rychlostí. Toto nebude článek o tom, jak nastavit krabici Vagrant, ale dám vám soubor Vagrant, který používám k vyvolání mé testovací krabičky.

# - * - režim: rubín - * -

# vi: set ft = ruby:

Vagrant.configure (2) do | config |

config.vm.define "ansible" do | ctl |

ctl.vm.box = "boxcutter / ubuntu1604"

ctl.vm.hostname = "ansible"

ctl.vm.network "private_network", ip: "192.168.2.5"

ctl.vm.provider "virtualbox" do | vb |

vb.memory = 2048

konec

endend

Tento VagrantFile stáhne Ubuntu krabici na VirtualBox, nazývá ji „ansible“, přiřadí soukromou IP a dá jí 2 GB RAM.

Instalace je možná

Za předpokladu, že máte nastavení testovacího pole, nyní nainstalováme Ansible. Abychom to mohli udělat, budu muset zasáhnout do krabičky pro Linux. Pokud používáte Vagrant, můžete se k VM připojit pomocí 'vagrant ssh'. Jinak budete pravděpodobně muset stáhnout Puttyho nebo jiného klienta Windows SSH. Jakmile jste na konzole serveru Linux, je čas si zvyknout na příkazový řádek. Pravděpodobně poskytuje několik pokynů k nastavení, ale z mé zkušenosti byly některé věci vynechány. Pokryjme příkazy, které jsem použil k tomu, abych mohl spustit Ansible.

Poznámka: Všechny spuštěné příkazy budou na Ubuntu 16.04. Pokud používáte jakoukoli jinou verzi Ubuntu nebo distribuci, vaše příkazy se mohou mírně lišit.

Především je bezpečnější zajistit, aby všechny balíčky byly aktuální před spuštěním. K tomu použijte apt-get.

aktualizace sudo apt-get

Nainstalujte si Git a získejte vývojovou větev Ansible, protože obsahuje užitečné Ansible moduly pro nás Windows lidi jako win_command a win_shell.

Abychom předešli upozornění na důvěryhodnost certifikátu SSL, doporučujeme nastavit proměnnou prostředí GIT_SSL_NO_VERIFY.

export GIT_SSL_NO_VERIFY = 1

Dále klonujte úložiště Ansible Git a všechna podřízená úložiště.

git clone git: //github.com/ansible/ansible.git –recursive

Přejděte do vytvořeného adresáře.

cd ./ansible

Pravděpodobně používá Python, takže nyní nastavíme prostředí Python pomocí příkazu source.

source ./hacking/env-setup

Nainstalujte Pip. Pip je aplikace pro správu balíků Python, pomocí které stáhnu a nainstaluji několik dalších požadovaných balíčků.

sudo easy_install pip

Stáhněte si několik dalších požadovaných balíčků. Zde je důležitá objednávka.

sudo pip install PyYAML Jinja2 httplib2 six

sudo apt-get install libssl-dev

sudo pip install paramiko

Nastavení je možné pro Windows

Měl by být nainstalován a připraven k provozu. Nyní se zaměřte na úkoly specifické pro Windows, které umožňují Annotovi spravovat uzly Windows. Vzhledem k tomu, že Ansible nativně pracuje přes SSH, Windows zatím nemá takový luxus, takže budeme muset dát Ansible možnost komunikovat s Windows uzly přes WinRM. Abychom to mohli udělat, musíme nainstalovat Python pywinrm knihovnu.

instalace sudo pip "pywinrm> = 0.1.1"

To je pro instalaci softwaru. Budeme muset říct Ansible, aby nepoužíval SSH a místo toho používal WinRM pro veškerou komunikaci. Vzhledem k rozšiřitelné povaze Ansible existuje mnoho způsobů, jak toho dosáhnout, ale rozhodl jsem se pro to vytvořením skupiny inventáře systému Windows uvnitř souboru s názvem „hosts“v adresářích ./hosts.

Poznámka: Zajistěte, aby Ansible věděl, kde najít váš inventární soubor. Rozhodl jsem se nastavit toto v souboru ansible.cfg umístěném ve složce ansible, ve které pracuji.

[výchozí]

soupis = / home / vagrant / ansibletesting / hosts

Jakmile se ujistím, že Ansible dokáže najít svůj inventární soubor, přidám tam naši skupinu oken.

[Okna]

windowsserver.domain.local

V tuto chvíli musím říct, že je možné použít WinRM spíše než SSH. Mohu nastavit možné proměnné pro skupiny zásob vytvořením souboru s názvem windows.yml uvnitř adresáře group_vars.

dotkněte se ./group_vars/windows.yml

Nyní vyplním soubor YAML požadovanými proměnnými. Všimněte si, že používám WinRM pouze přes HTTP a ne HTTPS. Ačkoli je to proveditelné, vyžaduje trochu další konfiguraci. Chcete-li nastavit HTTPS, podívejte se na tento odkaz.

ansible_user: administrator

ansible_password:

ansible_port: 5985

ansible_connection: winrm

ansible_winrm_scheme:

ansible_winrm_server_cert_validation: ignore

K připojení k uzlům systému Windows používám účet místního správce. Podpora služby Active Directory je k dispozici, ale je mimo rozsah tohoto článku.

V tuto chvíli mohu spustit vestavěný modul Ansible win_ping. Tento modul vyjde a vytvoří relaci WinRM, aby zajistil úspěšné vytvoření. Níže vidíte, že říkám, že je možné spustit modul win_ping pro všechny uzly uvnitř skupiny zásob systému Windows.

ansible windows -m win_ping

Je možné spustit modul win_ping