Установка последней версии в Ubuntu 16.04
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
Баги/Проблемы
№ 1
У ansible есть интересная особенность, о которой не нужно сильно задумываться, чтобы не погружаться в дивный мир ssh и сокетов. Просто делай mkdir ~/.ssh/master если ансибл говорит что-то вроде
TASK [setup] *******************************************************************
fatal: [qa01]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: muxserver_listen bind(): No such file or directory\r\n", "unreachable": true}
fatal: [qa02]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: muxserver_listen bind(): No such file or directory\r\n", "unreachable": true}
Но если всё же станет интересно, то почитай про мультиплексинг в openssh.
№ 2
При раскатке yaml конфига, если длина строки больше 80 симолов, джинджа разбивает строку по пробельно. В принципе на это не стоит обращать внимание т.к. не влияет на работоспособность конфига, но если сильно хочиться то можно ее изменить
{\{ project_config | to_nice_yaml(width=255) }}
Пример до:
- note: fonmix:player:monitoring:[Filial key . Filial system_key] -> { json monitoring }
+ note: fonmix:player:monitoring:[Filial key . Filial system_key] -> { json
+ monitoring }
После:
note: fonmix:player:monitoring:[Filial key . Filial system_key] -> { json monitoring }
№3
Если при соединении ansible -m ping all -i host вылетает /usr/bin/python: not found, то
Создаем файл bootstrap.yml
$ cat bootstrap.yml
- hosts: all
gather_facts: False
tasks:
- name: install python 2
raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
become: yes
become_method: sudo
И запускаем playbook
ansible-playbook -i host bootstrap.yml
Управление VDS codeanywere
Для начала работы нужно установить ssh соединение с контейнером. см - SSH
Создаем файл с инфой о подключении контейнера
$ cat host
[cabox]
host16.codeanyhost.com ansible_port=48582 ansible_user=cabox
Пробуем ping
ansible -m ping all -i host
...
host16.codeanyhost.com | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}