Действия

IaaC (Ansible): различия между версиями

Материал из lulzette's wiki

Строка 91: Строка 91:
root@353536-otparch2:~/ansible# ansible-playbook ans_install_python.yml
root@353536-otparch2:~/ansible# ansible-playbook ans_install_python.yml


PLAY [all] ******************************************************************************************************************************************************************************************
PLAY [all] ***************************************************************************************


TASK [install python 2] *****************************************************************************************************************************************************************************
TASK [install python 2] **************************************************************************
changed: [host1]
changed: [host1]
changed: [host3]
changed: [host3]
changed: [host2]
changed: [host2]


PLAY RECAP ******************************************************************************************************************************************************************************************
PLAY RECAP ***************************************************************************************
host1                      : ok=1    changed=1    unreachable=0    failed=0   
host1                      : ok=1    changed=1    unreachable=0    failed=0   
host2                      : ok=1    changed=1    unreachable=0    failed=0   
host2                      : ok=1    changed=1    unreachable=0    failed=0   

Версия от 18:39, 15 сентября 2020

Ставим!

Предположим есть LXC контейнер slave и master хост

ставим на хост ansible...

на slaves необходимо поставить python

Config

  • Настроить ssh соединение от хоста к клиентам (ключи сгенерировать и скинуть на клиенты)
  • Добавим в файл /etc/ansible/hosts хост(ы):
[some_hosts]
host1 ansible_ssh_host=10.0.3.142

В [] указано название группы хостов, host1 - название хоста которое будем использовать при выполнении команд, ansible_ssh_host - указываем, что к хосту надо подключаться по SSH

RUN!

Можно выполнять на клиентах как команды, так и готовые модули (TODO: настроить nginx с помощью Ansible)

Выполняем команды с помощью параметра -a:

root@353536-otparch2:~# ansible -a 'ls -la /' host1
host1 | SUCCESS | rc=0 >>
total 68
drwxr-xr-x  21 root root 4096 Sep 15 14:54 .
drwxr-xr-x  21 root root 4096 Sep 15 14:54 ..
drwxr-xr-x   2 root root 4096 Sep 15 07:45 bin
drwxr-xr-x   2 root root 4096 Apr 24  2018 boot
drwxr-xr-x   7 root root  520 Sep 15 14:54 dev
drwxr-xr-x  65 root root 4096 Sep 15 15:01 etc
drwxr-xr-x   3 root root 4096 Sep 15 07:45 home
drwxr-xr-x  11 root root 4096 Sep 15 07:44 lib
drwxr-xr-x   2 root root 4096 Sep 15 07:44 lib64
drwxr-xr-x   2 root root 4096 Sep 15 07:43 media
drwxr-xr-x   2 root root 4096 Sep 15 07:43 mnt
drwxr-xr-x   2 root root 4096 Sep 15 07:43 opt
dr-xr-xr-x 136 root root    0 Sep 15 14:54 proc
drwx------   5 root root 4096 Sep 15 14:59 root
drwxr-xr-x  13 root root  440 Sep 15 15:06 run
drwxr-xr-x   2 root root 4096 Sep 15 07:45 sbin
drwxr-xr-x   2 root root 4096 Sep 15 07:43 srv
dr-xr-xr-x  13 root root    0 Sep 15 14:54 sys
drwxrwxrwt   9 root root 4096 Sep 15 15:06 tmp
drwxr-xr-x  10 root root 4096 Sep 15 07:43 usr
drwxr-xr-x  12 root root 4096 Sep 15 07:45 var

Пингуемся:

root@353536-otparch2:~# ansible -m ping host1
host1 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

Ставим на все сервера vim:

ansible all -m apt -a "name=vim state=latest" -u root


tips

Устанавливался питона на сервера (ибо он нужен для ansible):

root@353536-otparch2:~/ansible# cat ans_install_python.yml 
# Add this snippet to the top of your playbook. 
# It will install python2 if missing (but checks first so no expensive repeated apt updates)
# gwillem@gmail.com

- hosts: all
  gather_facts: False
  
  tasks:
  - name: install python 2
    raw: test -e /usr/bin/python || (apt -y update && apt install -y python)

root@353536-otparch2:~/ansible# ansible-playbook ans_install_python.yml

PLAY [all] ***************************************************************************************

TASK [install python 2] **************************************************************************
changed: [host1]
changed: [host3]
changed: [host2]

PLAY RECAP ***************************************************************************************
host1                      : ok=1    changed=1    unreachable=0    failed=0   
host2                      : ok=1    changed=1    unreachable=0    failed=0   
host3                      : ok=1    changed=1    unreachable=0    failed=0