Börja använda Ansible på Ubuntu för effektivare resursförvaltning och konfigurationskontroll.
Konfigurationshantering är en vital komponent i DevOps-processen. Den underlättar automatiseringen och styrningen av IT-infrastrukturen.
Det finns flera verktyg för konfigurationshantering, bland annat Puppet, Ansible, Chef och SaltStack. Ansible är ett av de mest omtyckta verktygen inom DevOps. Det hanterar enkelt tusentals servrar och hela IT-infrastrukturen.
I den här artikeln går vi igenom följande:
- Installation av Ansible
- Utbyte av SSH-nycklar
- Konfiguration av Ansible-klient
- Testning av Ansible
Installation av Ansible
För enkelhetens skull använder vi Ansible på två servrar. En fungerar som Ansible-server och den andra som Ansible-klient, med följande IP-adresser:
- Ansible-server – 10.0.0.1
- Ansible-klient – 10.0.0.25
Installationen är enkel. Följande steg utförs på alla servrar där Ansible ska användas. I det här fallet, på båda servrarna ovan.
- Kör kommandot nedan för att installera nödvändig programvara för Ansible.
[email protected]:~# apt install software-properties-common
- Installera arkivet med Ansible-paket.
[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
- Uppdatera pakethanteraren APT.
[email protected]:~# apt update
- Slutligen, kör kommandot nedan för att installera Ansible.
[email protected]:~# apt install ansible
Installationen av paketen tar bara några sekunder.
Hur verifierar man att installationen är klar och vilken version som används?
Det är enkelt. Använd kommandot ’–version’ med Ansible för att kontrollera detta:
[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 ser är Ansible version 2.8.1 installerat. Utdata visar också viktig information som sökvägen till konfigurationsfilen och Python-modulen.
Nästa steg är att utbyta SSH-nycklar så att servern och klienten kan kommunicera.
Utbyte av SSH-nycklar
Ansible ansluter till klienten via SSH (Secure Shell).
Vi genererar först en publik nyckel på Ansible-servern, som sedan kopieras till Ansible-klienten.
Se till att du är inloggad som root-användare.
- Generera nyckeln med kommandot ’ssh-keygen’ enligt 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]:~#
En publik nyckel har skapats i mappen ’.ssh’. Den fullständiga sökvägen är ’/root/.ssh/id_rsa.pub’.
Obs: Kontrollera att filerna med privata och publika nycklar inte är läsbara för andra användare. Du kan verifiera detta genom att lista filerna.
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 behörigheten är felaktig kan du ändra den med kommandot ’chmod’.
Exempel:
chmod 400 id_rsa
chmod 400 id_rsa.pub
Kopiera den publika nyckeln till Ansible-värden med IP-adressen 10.0.0.25:
[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#
Som utdatan ovan visar har 1 nyckel lagts till. Det betyder att utbytet av SSH-nycklar är klart.
Nu ska vi konfigurera en Ansible-klient.
Konfiguration av Ansible-klient
Förutsättningsvis har du redan utfört stegen för Ansible-installation på klientservern, enligt instruktionerna ovan.
Konfiguration av klienten, eller värden, innebär att Ansible-servern görs medveten om klienterna. För att göra detta:
- Logga in på Ansible-servern.
- Gå till ’/etc/ansible’.
- Lägg till följande i filen ’hosts’ med din favoritredigerare.
[Client]
node1 ansible_ssh_host=10.0.0.25
Test av Ansible
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#
Kommandot ovan pingar klienten för att testa anslutningen och bekräfta att den fungerar som den ska.
Slutsats
Förhoppningsvis ger detta en bra introduktion till hur du installerar och börjar använda Ansible. Håll utkik efter fler Ansible-guider eller utforska denna Udemy Mastering Ansible-kurs.