Ansible Galaxy er vert for Ansible roller og samlinger opprettet av samfunnet. I stedet for å omskrive dem fra bunnen av, kan du installere den på datamaskinen din ved hjelp av Ansible Galaxy kommandolinjeverktøy og bruke dem på spillbøkene dine.
Du kan også skrive roller og samlinger og laste dem opp til Ansible Galaxy. Dette er utenfor omfanget av denne artikkelen.
I denne artikkelen skal jeg vise deg hvordan du bruker Ansible Galaxy kommandolinjeverktøy for å installere Ansible Galaxy-roller og samlinger og bruke dem på spillboken. Så la oss komme i gang.
Forutsetninger:
Hvis du vil prøve eksemplene på denne artikkelen,
1) Du må ha Ansible installert på datamaskinen din.
2) Du må ha minst 2 Linux-verter (en Debian 10 og en CentOS 7) konfigurert for Ansible-automatisering.
Det er mange artikler om LinuxHint dedikert til å installere Ansible og konfigurere verter for Ansible automatisering. Du kan sjekke dem ut om nødvendig.
Sette opp en prosjektkatalog:
Før vi begynner, la oss lage en prosjektkatalog slik at vi kan organisere prosjektfilene våre.
Å lage en prosjektkatalog galakse-demo / i din HJEM katalog, kjør følgende kommando:
$ mkdir -pv galaxy-demo / playbooks, vars
Nå, naviger til galakse-demo / katalog som følger:
$ cd galaxy-demo /
Opprett en Ansible-konfigurasjonsfil ansible.cfg i prosjektkatalogen din som følger:
$ nano ansible.cfg
Skriv inn følgende linjer din ansible.cfg fil.
[standard]inventar = verter
host_key_checking = Usann
Når du er ferdig, trykk
Opprett en Ansible beholdningsfil verter i prosjektkatalogen din som følger:
$ nano verter
Skriv inn følgende linjer i vertens inventarfil.
[database]vm1.nodekite.com
[web]
vm9.nodekite.com
Her, vm1.nodekite.com er en Debian 10-vert, og vm9.nodekite.com er en CentOS 7-vert.
Når du er ferdig, trykk
For å sjekke om du kan pinge de eksterne Ansible-vertene fra datamaskinen din, kjør følgende kommando:
$ ansible all -u ansible -m ping
Som du kan se, kan jeg pinge mine eksterne Ansible-verter vm1.nodekite.com og vm9.nodekite.com.
Søker etter Ansible Galaxy-roller og samlinger:
Du kan søke etter Ansible Galaxy-roller og samlinger på den offisielle nettsiden til Ansible Galaxy.
Når nettsiden er lastet inn, klikker du på søkeikonet for å søke etter Ansible Galaxy-roller og samlinger.
Nå skriver du inn det du leter etter og klikker på søkeikonet.
I dette eksemplet har jeg søkt etter mysql server. Som du kan se, vises søkeresultatet.
Søkeordet mysql server returnerte 2 samlinger og mange roller.
En rolle er en Ansible-modul som gjør spesifikke ting. En samling har mange roller. Det er hovedforskjellen mellom en rolle og en samling.
For å se mer informasjon om en rolle, klikk på rollen.
De Detaljer fanen i en rollepakke vil vise teknisk informasjon om rollen.
De Les meg kategorien viser informasjonen om installasjon og bruk av rollen.
På samme måte vil en samlepakke ha installasjonsinformasjon på Detaljer fanen.
På Innhold på fanen, vises rollene samlingene vil installere.
De Les meg fanen vil vise nyttig informasjon om samlingen.
Installere og bruke Ansible Galaxy-roller:
I denne delen skal jeg vise deg hvordan du installerer og bruker en Ansible Galaxy-rolle. Så la oss komme i gang.
La oss si; du vil installere Ansible Galaxy-rollen geerlingguy.mysql.
For å gjøre det, kjør følgende kommando:
$ ansible-galaxy installere geerlingguy.mysql
Ansible Galaxy-rolle geerlingguy.mysql skal installeres.
Lag en lekebok install_database.yaml i lekebøker / katalog for testing av geerlingguy.mysql rolle som følger:
$ nano playbooks / install_database.yaml
Skriv deretter inn følgende linjer i install_database.yaml fil.
- verter: databasebruker: ansible
bli: ja
vars_files:
-... / vars / database.yaml
roller:
- rolle: geerlingguy.mysql
Når du er ferdig, trykk
Her, rollen til geerlingguy.mysql brukes i roller seksjon.
De vars_files seksjonen brukes til å legge til de nødvendige rolle- / lekebokvariablene i lekeboken. Her vil variablene plasseres i vars / database.yaml fil.
Lag nå en database.yaml filen i vars / katalog som følger:
$ nano vars / database.yaml
Legg nå til dine ønskede variabler i database.yaml fil. Jeg har lagt til følgende variabler i database.yaml fil.
mysql_databases:- navn: db01
koding: utf8mb4
sortering: utf8mb4_unicode_ci
mysql_users:
- navn: linuxhint
vert: "%"
passord: hemmelig
priv: "db01.*:ALLE"
Disse variablene konfigureres geeringguy.mysql rolle slik at den skaper en ny bruker linuxhint, angir passordet hemmelig for linuxhint bruker, oppretter en ny database db01 og tilskudd linuxhint brukeren full tilgang til db01 database.
Når du er ferdig, trykk
Nå kan du kjøre install_database.yaml spillbok som følger:
$ ansible-playbook playbooks / install_database.yaml
Som du kan se, kjører spillboken geerlingguy.mysql rolle. Det kan ta litt tid å fullføre.
På dette punktet, install_mysql.yaml spillboken skal være ferdig.
På min VM1.nodekite.com Debian 10 vert, the mysql tjenesten kjører som du kan se på skjermbildet nedenfor,
Jeg kan også logge på MySQL-databaseserveren som linuxhint bruker.
Som du kan se, er databasen db01 er også opprettet.
Så dette er hvordan du installerer og bruker Ansible Galaxy-roller.
Installere og bruke Ansible Collections:
I denne delen skal jeg vise deg hvordan du installerer og bruker en Ansible Galaxy-samling. Så la oss komme i gang.
La oss si; du vil installere Ansible Galaxy-samlingen geerlingguy.php_roles.
For å gjøre det, kjør følgende kommando:
$ ansible-galaxy collection installer geerlingguy.php_roles
Samlingen geerlingguy.php_roles skal installeres.
For å bruke samlingen, opprett en ny playbook install_php.yaml i lekebøker / katalog som følger:
$ nano playbooks / install_php.yaml
Skriv inn følgende linjer i install_php.yaml fil.
- verter: webbruker: ansible
bli: ja
samlinger:
- geerlingguy.php_roles
roller:
- rolle: php
- rolle: php_versions
vars:
php_version: '7.3 '
Når du er ferdig, trykk
Disse linjene importerer geerlingguy.php_roles samling på spillboken.
I roller delen, kan du bruke rollene du trenger fra samlingen din. Her har jeg lagt til to roller (php og php_versions) fra geerlingguy.php_roles samling.
De php rolle har ingen rollespesifikke variabler.
Hvis du vil konfigurere en rolle ved hjelp av variabler, kan du legge dem til under vars delen av rolle som følger.
Du kan finne hvilke roller som er tilgjengelige for bruk på den offisielle Ansible Galaxy-siden i samlingen
Den offisielle Ansible Galaxy-siden til rollen vil ha informasjon om hvilke variabler du kan bruke til å konfigurere rollen.
Nå kan du kjøre install_php.yaml spillbok som følger:
$ ansible-playbook playbooks / install_php.yaml
Som du kan se, kjører spillboken. Det kan ta litt tid å fullføre.
På dette tidspunktet skal lekeboken være ferdig.
Som du kan se, har jeg tilgang til Apache 2-webserveren som kjører på min CentOS 7-vert vm9.nodekite.com.
Jeg har også opprettet en indeks.php filen i / var / www / html / katalog av min CentOS 7-vert vm9.nodekite.com.
Som du kan se, kan webserveren tjene indeks.php siden riktig.
Så det er slik du installerer og bruker Ansible Galaxy-samlinger.
Konklusjon:
I denne artikkelen har jeg forklart hva Ansible Galaxy er. Jeg har også demonstrert hvordan jeg installerer og bruker roller / samlinger fra Ansible Galaxy. Ansible Galaxy hjelper deg med å unngå å finne opp hjulet på nytt, også kjent som kode repetisjon. Du burde kunne få Ansible-prosjektene dine gjort raskere ved hjelp av Ansible Galaxy.