Hur man installerar och konfigurerar Ansible på Ubuntu?

Komma igång med Ansible på Ubuntu för bättre miljöförsörjning och konfigurationshantering.

Configuration Management är ett avgörande steg i DevOps livscykel. Det hjälper till med automatisering och orkestrering av IT-infrastrukturen.

Det finns flera verktyg för konfigurationshantering, till exempel Puppet, Ansible, Chef och SaltStack. Och naturligtvis är Ansible ett av de mest populära verktygen i DevOps. Den kan hantera tusentals servrar och din kompletta IT-infrastruktur med lätthet.

Vi kommer att täcka följande i den här artikeln.

  • Ansible installation
  • SSH-nyckelutbyte
  • Ansible klientinställning
  • Ansible testning

Ansible installation

För att göra det enkelt, låt oss försöka använda Ansible på två servrar. En kommer att vara ansible-server och en annan en ansible-klient med följande IP.

  • ansible-server – 10.0.0.1
  • ansible-klient – ​​10.0.0.25

Installationen är enkel … följande måste göras på alla servrar där du vill använda Ansible. I det här fallet på båda servrarna ovan.

  • Kör kommandot nedan för att installera den nödvändiga programvaran som krävs för att installera ansible.
[email protected]:~# apt install software-properties-common
  • Installera förvaret med ansible paket.
[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Uppdatera det avancerade förpackningsverktyget (apt)
[email protected]:~# apt update
  • Och slutligen – kör kommandot nedan för att installera
[email protected]:~# apt install ansible

Det tar några sekunder att installera det nödvändiga paketet.

Hur säkerställer du att den är installerad och dess version?

Tja, det är lätt. Du kan använda –version-syntax med ansible för att ta reda på det som nedan.

[email protected]:~# ansible --version
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
[email protected]:~#

Som du kan se är Ansible 2.8.1 installerat och det ger den nödvändiga informationen som konfigurationsfilens plats, pythonmodulen.

Därefter måste vi göra SSH-nyckelutbyte så serva och en klient kan prata med varandra.

SSH Key Exchange

Ansible ansluter till sin klient via SSH (Secure shell).

Vi kommer först att generera en publik nyckel på ansible-servern, som måste kopieras till ansible-klienten.

Se till att du är inloggad som root-användare.

  • Generera nyckeln med kommandot ssh-keygen som visas nedan
[email protected]:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|    =.+oo .      |
|   . B.B.= .     |
|  . o @oE +      |
|   . *oO * .     |
|    o++.S + .    |
|   .o +o . +     |
|    .o..o +      |
|     ..o o .     |
|       .o o.     |
+----[SHA256]-----+
[email protected]:~#

Som du skulle ha märkt har den genererat en publik nyckel i .ssh-mappen. Den fullständiga sökvägen är /root/.ssh/id_rsa.pub

Obs: se till att de privata och offentliga nyckelfilerna inte är världsläsbara. Du kan lista filerna för att verifiera dem.

cd /root/.ssh
[email protected]:~# ls -l 
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa 
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub

Om du märker att behörigheten är felaktig kan du ändra den genom att använda kommandot chmod

Ex:

chmod 400 id_rsa
chmod 400 id_rsa.pub

Låt oss kopiera den publika nyckeln till Ansible-värden vars IP-adress är 192.168.56.101

[email protected]:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

[email protected]:~/.ssh#

Du kan se i utgången ovan att 1 nyckel har lagts till. Detta indikerar att SSH-nyckeln är utbytt.

Därefter kommer vi att konfigurera en Ansible-klient.

Ansible Client Setup

Jag antar att du redan har följt Ansible installationsstegen på klientservern som förklarats i tidigare steg.

Klient- eller värdinställning är inget annat än att göra Ansible-servern medveten om klienterna. Och för att göra det:

  • Logga in på Ansible server
  • Gå till /etc/ansible
  • Lägg till följande i hosts-filen genom att använda din favoritredigerare
[Client] 
node1 ansible_ssh_host=10.0.0.25

Ansible test

Om du har följt alla steg korrekt får du ett SUCCESS-meddelande när du kör kommandot nedan på ansible-servern.

[email protected]:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}
[email protected]:~/.ssh#

Thea ovan pingar till klienten för att testa anslutningen och bekräfta om den är bra eller inte.

Slutsats

Jag hoppas att detta ger dig en idé om hur du kan komma igång med installation och lek. Håll utkik efter fler Ansible-tutorials eller kolla in den här Udemy Mastering Ansible-kursen.