Automatyzacja zadań z Ansible

Automatyzacja zadań w obszarze IT jest niezwykle istotna, gdy skala środowiska rośnie i często ulega zmianom. Do tych zadań można wykorzystać wiele dostępnych rozwiązań takich jak Puppet, Chef czy Ansible. Poniżej w kilku krokach przedstawię jak zainstalować Ansible oraz w jaki sposób rozpocząć z nim pracę. 

Instalacja Ansible

Pracę z Ansible można rozpocząć instalując go za pomocą narzędzia pip dostępnego w Python’ie. W poniższym przykładzie wykorzystano również środowiska wirtualne, co przedstawiałem w innym poście na moim blogu:

$ mkdir ansible
$ cd ansible
$ virtualenv venv
$ source venv/bin/activate
$ pip install ansible

Konfiguracja podstawowa

Celem rozpoczęcia pracy konieczne jest utworzenie pliku konfiguracyjnego zawierającego listę maszyn, które będą konfigurowane przez Ansible. W poniższym przykładzie oprócz adresu IP ustawiony został port dla SSH oraz nazwa użytkownika, dla którego będzie inicjowana sesja SSH.

$ sudo mkdir /etc/ansible/
$ sudo vi /etc/ansible/hosts
$ cat /etc/ansible/hosts

136.243.182.167 ansible_port=22 ansible_user=username

Sprawdzenie komunikacji z serwerem

Po skonfigurowaniu maszyn warto sprawdzić komunikacje z serwerami za pomocą polecenia, gdzie opcja -m służy do wskazania jaki moduł ma zostać wykonany (w tym przypadku moduł ping):

$ ansible all -m ping

136.243.182.167 | SUCCESS => {
    "changed": false,
    "failed": false,
    "ping": "pong"
}

Wykonanie komend shell’owych

Ansible umożliwia również wykonywanie standardowych komend shell’owych za pomocą opcji -a:

$ ansible all -a "du -sh /home/username" 
$ ansible all -a "ps -ef"

Pierwszy Playbook

Konfiguracja procedury wdrożenia zapisania w języku opracowanym w Ansible w formacie YAML określana jest jako tzw. Playbook. Poniżej przykład prostego Playbook’a można wykorzystać do sprawdzenia komunikacji z serwerem zdefiniowanym w /etc/ansible/hosts:

---
- hosts: 136.243.182.167
 tasks:
 - name: test connection
 ping:

Uruchomienie Playbook’a

$ ansible-playbook playbook-test-connection.yml

PLAY [136.243.182.167] **********************************************************************************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************************************************************************
ok: [136.243.182.167]

TASK [test connection] ********************************************************************************************************************************************************************************************
ok: [136.243.182.167]

PLAY RECAP ********************************************************************************************************************************************************************************************************
136.243.182.167              : ok=2    changed=0    unreachable=0    failed=0   

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.