Kom Godt I Gang Med Ansible På Windows

Indholdsfortegnelse:

Kom Godt I Gang Med Ansible På Windows
Kom Godt I Gang Med Ansible På Windows

Video: Kom Godt I Gang Med Ansible På Windows

Video: Kom Godt I Gang Med Ansible På Windows
Video: 5-Ansible - Подключение к серверам WINDOWS 2023, September
Anonim

Et af de mest populære konfigurationsstyrings- og infrastrukturautomatiseringsprodukter på markedet er Ansible. Ansible - sammen med Chef, Puppet, CFEngine - er en del af en klasse software til DevOps. Disse værktøjer hjælper med at automatisere levering af infrastruktur, softwaredistribution og generel konfigurationsstyring.

Ansible er fokuseret på Linux. Med Microsofts nye holdning til open source, deres samfundsbidrag og deres vedtagelse af en mere smidig, DevOps-minded softwareudviklingsmetode, er Windows-support langsomt ved at indhente. Hvis du har hørt om Ansible, men ikke rigtig har brugt det, er det relativt ligetil at blive konfigureret. Selvom Windows-understøttelse kræver en smule mere konfiguration, er det ikke så dårligt, når den første opsætning er udført.

Lad os dykke ned i Ansible og få det til at implementere enkle ændringer i en Windows-knude.

Opsætning af Linux VM med Vagrant

Ansible kører på en kontrolserver. I modsætning til andre konfigurationsstyringsprodukter har det ingen agent og sender kommandoer til de noder, der er under dens kontrol. Desværre for os Windows-fyre, skal det køres på Linux. Hvis du ikke har en ekstra Linux-boks der ligger rundt, lad os bringe en op. Jeg bruger Vagrant til alle mine indledende test. Det er den nemmeste måde, jeg har fundet på, at jeg hurtigt får en VM med næsten enhver smag, der kører hurtigt. Dette bliver ikke en artikel om, hvordan man opretter en Vagrant-boks, men jeg giver dig Vagrant-filen, jeg bruger til at få vist min testboks.

# - * - tilstand: rubin - * -

# vi: sæt ft = rubin:

Vagrant.configure (2) do | config |

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

ctl.vm.box = "boxcutter / ubuntu1604"

ctl.vm.hostname = "ansvarlig"

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

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

vb.memory = 2048

ende

endend

Denne VagrantFile vil downloade en Ubuntu-boks på VirtualBox, kalde den 'ansvarsfuld', tildele en privat IP og give den 2 GB RAM.

Installation af Ansible

Hvis vi antager, at du har konfigureret denne testboks, installerer vi nu Ansible. For at gøre dette skal jeg ssh ind i Linux-boksen. Hvis du bruger Vagrant, kan VM forbindes til ved at skrive 'vagrant ssh'. Ellers skal du sandsynligvis downloade Putty eller en anden Windows SSH-klient. Når du først er på Linux-serverens konsol, er det tid til at vænne sig til kommandolinjen. Ansible indeholder nogle installationsinstruktioner, men fra min erfaring blev nogle ting gået glip af. Lad os dække de kommandoer, som jeg brugte for at få Ansible i gang.

Bemærk: Alle kommandoer, jeg kører, vil være på Ubuntu 16.04. Hvis du kører nogen anden version af Ubuntu eller distribution, kan dine kommandoer være lidt forskellige.

Først og fremmest er det sikrere at sikre, at alle pakker er opdaterede, inden de starter. For at gøre dette skal du bruge apt-get.

sudo apt-get-opdatering

Installer Git for at få udviklingsgrenen af Ansible, fordi den indeholder nyttige Ansible-moduler til os Windows-fyre som win_command og win_shell.

For at forhindre en tillidsadvarsel om et SSL-certifikat anbefaler jeg at indstille miljøvariablen GIT_SSL_NO_VERIFY.

eksport GIT_SSL_NO_VERIFY = 1

Derefter klones Ansible Git-arkivet og alle børneoplagringssteder.

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

Naviger til det katalog Ansible, der blev oprettet.

cd. / tilgængelig

Ansible bruger Python, så vi vil nu oprette et Python-miljø ved hjælp af kildekommandoen.

kilde./hacking/env-setup

Installer Pip. Pip er Python-pakkehåndteringsprogrammet, som jeg vil bruge til at downloade og installere et par andre påkrævede pakker med.

sudo easy_install pip

Download et par flere påkrævede pakker. Ordren er vigtig her.

sudo pip installere PyYAML Jinja2 httplib2 seks

sudo apt-get install libssl-dev

sudo pip installer paramiko

Opsætning af Ansible til Windows

Svaret skal være installeret og klar til at gå. Fokuser nu på de Windows-specifikke opgaver, der giver Ansible mulighed for at administrere Windows-noder. Da Ansible indbygget fungerer over SSH, har Windows ikke den luksus endnu, så vi bliver nødt til at give Ansible muligheden for at kommunikere med Windows-noder via WinRM. For at gøre det skal vi installere Python pywinrm-biblioteket.

sudo pip installere "pywinrm> = 0.1.1"

Dette er det til softwareinstallationer. Vi bliver nødt til at bede Ansible om ikke at bruge SSH og i stedet bruge WinRM til al kommunikation. På grund af Ansibles udvidelige karakter er der mange måder at få dette til at ske, men jeg har valgt at gøre dette ved at oprette en Windows-lagergruppe inde i en fil kaldet 'hosts' i./hosts.

Bemærk: Sørg for, at Ansible ved, hvor du kan finde din lagerfil. Jeg har valgt at indstille dette i ansible.cfg-filen i den ansible mappe, jeg arbejder i.

[defaults]

inventar = / home / vagrant / ansibletesting / hosts

Når jeg har sikret, at Ansible kan finde min lagerfil, tilføjer jeg vores windows-gruppe derinde.

[Windows]

windowsserver.domain.local

På dette tidspunkt er jeg nødt til at bede Ansible om at bruge WinRM snarere end SSH. Jeg kan indstille Svarbare variabler for lagergrupper ved at oprette en fil kaldet windows.yml inde i gruppen_vars bibliotek.

tryk på./group_vars/windows.yml

Jeg udfylder nu YAML-filen med de krævede variabler. Bemærk nedenfor, at jeg bare bruger WinRM over HTTP og ikke HTTPS. Selvom dette er muligt, kræver det en smule yderligere konfiguration. Se dette link, hvis du vil konfigurere

ansible_user: administrator

ansible_password:

ansible_port: 5985

ansible_connection: winrm

ansible_winrm_scheme:

ansible_winrm_server_cert_validation: ignorere

Jeg bruger den lokale administrator-konto til at oprette forbindelse til Windows-noder. Active Directory-support er tilgængelig, men er uden for denne artikels rækkevidde.

På dette tidspunkt kan jeg køre det indbyggede Ansible-modul win_ping. Dette modul vil gå ud og oprette en WinRM-session for at sikre, at det er etableret med succes. Du kan se nedenfor, at jeg fortæller Ansible om at køre win_ping-modulet for alle noder inde i windows-beholdningsgruppen.

ansvarsfulde windows -m win_ping

Svarende til at køre win_ping-modulet

Anbefalet: