IaaC (Ansible): различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) (→RUN!) |
Losted (обсуждение | вклад) (→tips) |
||
Строка 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