Ansible


Обновление всех серверов в группе:

  • ansible nodes -m yum -a "name=* state=latest" -b -e @passwords

Создание роли:
  • ansible-galaxy init notify
Проверяем подключенную версию python
ansible --version | grep "python version"
Меняем версию
меняем линк в /usr/bin/python на /usr/bin/python3

Установщик для Debian/Ubuntu

Тут лучше
wget https://github.com/mikbill/accel_ansible/blob/master/ansible_install_deb.sh
  • wget https://github.com/mikbill/design/raw/master/accel_ansible/ansible_install_deb.sh
  • chmod +x ansible_install_deb.sh
  • ./ansible_install_deb.sh

CentOS release 6.8 и Centos 7
Установка
  • yum -y update && yum -y install epel-release && yum -y install ansible
Настраиваем конфиг
  • mcedit /etc/ansible/hosts

[test-servers]
10.10.10.10 ansible_ssh_user=LOGIN ansible_ssh_pass=PASSWORD ansible_ssh_port=65098


Файл Host inventory содержит информацию об обслуживаемых серверах, где команды будут исполнены.

Наборы инструкций (playbooks) состоят из одной или более задач, которые описываются с помощью функциональность модуля ядра Ansible или сторонних модулей, которые могут потребоваться в специфических ситуациях.

Настройки удалённых хостов хранятся в файле /etc/ansible/hosts.
  • mv /etc/ansible/hosts /etc/ansible/hosts.default
Настройка
  • nano  /etc/ansible/hosts
[test box]
cent2
[local]
cent1
(Это если хосты добавлены /etc/hosts)

Подключение к хостам по паролю
для этого потребуется установить sshpass
  • yum install sshpass
Пример использования
  • ansible cent2 -m ping -k -u root
  • ansible -m ping all
Я использую pptp тунель для работы ansible

  • modprobe nf_conntrack_pptp
  • pppd call realip
  • wget -O - -q mikbill.ru/getip.php

Настройка /etc/ansible/ansible.cfg

  • mcedit /etc/ansible/ansible.cfg
host_key_checking: Параметр позволяет отключить проверку SSH–ключа на хосте. По-умолчанию проверка выполняется. 

Ошибки

"module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 

Печально, но на клиенте требуется python
  • apt-get install python

"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."

получить ключ или отключить проверку ключа


Команды



  • ansible all -m shell -a "uptime"
state=absent - удалить

get_url - закачать

-b - повышение прав

-vvvv информация при выполнении

Шифрованные файлы
На все переменные используется один пароль
ansible-vault create mysecret.txt - создаем зашифрованный файл
ansible-vault view mysecret.txt - читаем зашифрованный файл
ansible-vault edit mysecret.txt - редактируем
rekey - меняем пароль
enkrypt - зашифровать плейбук
decrypt - расшифровать
ansible-playbook playbook.yml --ask-vault-pass - запустить зашифрованный плейбук
ansible-playbook playbook.yml --vault-password-file mypass.txt - запускаем зашифрованный плейбук с паролем в файле

ansible-vault encrypt_string -- - ввод строки для шифрования (для переменных)
echo -n "pass" | ansible-vault encrypt_string -- 






Комментарии

Популярные сообщения из этого блога

mikbill расшифровка завершений сессий

Accel-ppp команды

Zabbix agent установка и настройка