Ievgen
я не пробовал пока что
Womchik
это типа goto?
Ievgen
не, это типа остановиться и выйти без ошибки
GithubReleases
ansible/ansible was tagged: v2.3.4.0-0.1.rc1
Link: https://github.com/ansible/ansible/releases/tag/v2.3.4.0-0.1.rc1
Release notes:
New release v2.3.4.0-0.1.rc1
Anuar
Всем доброе утро, кто-нибудь пробовал с ансибл создавать массовый maintance в заббикс с периодами и т.д. для каждого хоста отдельный?
Pavel
спасибо за потраченное время.
Anuar
Есть кто живой?
Roman
Ануар, держи мой пример - я группами добавлял, меня устраивало https://pastebin.com/Zp9f13WL
Roman
может с хостами прокатит
Anuar
что-то до сих пор пытается зайти на этот сайт
manefesto
народ
manefesto
есть задача, сгенерировать конфиг для приложения
приложение находится на web-01, в конфиге указываем список серверо в Эrabbitmq"
manefesto
фишка в том что я не могу получить переменную ansible_eth0 другого хоста
manefesto
хотя они вроде как должны быть в фактах
George
Можешь. hostvars[hostname].ansible_eth0
George
Но сначала собери факты (модуль setup)
manefesto
смотри
manefesto
---
- hosts: webservers
tasks:
- name: get hosts valiable
debug:
msg: "{{hostvars[item]}}"
with_items: "{{ groups['cache'] }}"
manefesto
а теперь
ansible-playbook -i dev.yaml test.yml | grep ansible
"ansible_check_mode": false,
"ansible_playbook_python": "/usr/bin/python",
"ansible_ssh_host": "192.168.0.10",
"ansible_ssh_private_key_file": "keys/id_rsa",
"ansible_ssh_user": "root",
"ansible_version": {
George
Сначала:
- hosts: cache
tasks:
- debug:
manefesto
это понятно
manefesto
но, мне то надо на вэб сервере сгенерировать конфиг со списоком серверов кэша
George
тогда должно быть. Если нет, разбирайся, у тебя вообще факты собираются или нет? (есть в ansible.cfg)
manefesto
он минимальный
[defaults]
host_key_checking = False
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -A
George
Сделай этот же самый debug: msg="{{hostvars}}" в той play, в которой факты собирал по группе cache.
George
Никто не сталкивался с такой проблемой? ansible+pip, на xenial (Ubuntu) при установке pip'ом всё ставится в /usr/local и даже extra_args="--system" игнорируется. (на trusty работает).
George
С cli я его команду повторяю 1-в-1 и всё как надо, а когда ансибл - в /usr/local.
manefesto
George
Тогда убери with и сделай дебаг для hostvars['имя хоста из группы'].
George
А потом проверь, что у тебя просто item перечисляет нужные хосты.
Vadim
George
Я начисто ставлю (каждый раз uninstall делаю).
George
Yes, я воспроизвёл. Ansible не при делах. pip хитро кешировал у /root, и это всё забавно портило.
George
... нет. всё равно. что за чушь?
manefesto
у меня никаких проблем нет с установкой
manefesto
тот же xenial
manefesto
принципиально куда ставиться ,
manefesto
?
manefesto
# whereis ansible
ansible: /etc/ansible /usr/local/bin/ansible
George
Э... Я неправильно выразился. Модуль pip.
George
Я ставлю из пипа, и руками оно ставится не туда, куда ставится ансиблом. Абсолютная мистика,я уже сдался и пошёл пакетировать софтинку в deb'ку.
manefesto
http://docs.ansible.com/ansible/latest/pip_module.html
manefesto
так ставишь ?
Denis 災 nobody
Aleksey
Denis 災 nobody
да )
Ievgen
qww
мм, вопрос на самом деле чисто академический, работает и ладно, просто я к тому что, откуда уверенность, что в массиве будет всегда один элемент и именно первый будет искомым?
Pavel
задача была найти файлы такие же как один заданный. в первой таске я пытался извлечь cheksum этого (одного) файла в переменную.
{ "msg": [ "9c8a5dffdae35bc7aa4e19309fa21169ff5fea31" ] }
и не понимал почему не могу использовать это значение обращаясь к {{ your_checksum_variable }}
пока что указал первый элемент. потом научусь преобразовывать [] в " "
Ievgen
то есть исходные данные для всей задачи это точно имя файла?
Ievgen
одного
Ievgen
?
Pavel
да
Ievgen
а как первый таск звучит?
Ievgen
ну тот который выдает массив из одного чексама?
Ievgen
мне чисто интересно потому что я подозреваю что там можно в один таск все сделать
Pavel
- name: get checksum of original file on local machine
delegate_to: 127.0.0.1
find:
paths: "{{ filepath | dirname }}"
get_checksum: yes
patterns: "{{ filepath | basename }}"
register: local_list
и далее в переменную засовываю
sha1sum_local_file: "{{ local_list | json_query ('files[].size') }}"
Ievgen
а в какой момент заходит тот таск с чексамом?
Vadim
hackru
вечер в хату, хочу странного. как задизейблить модуль в ансибле чтобы он с локальным не конфликтовал? есть легаси-роль, которую очень дорого переписать. в свежем ансибле допилили модуль с таким же именем. так вот, как бы его в апстриме задизейблить и юзать локальный?
Nklya
А sed'om пройтись не быстрее?
hackru
седом где?
Sergey
так переименуй свой старый
Sergey
немного придется роль поправить
Nklya
старый модуль переименовать и все вхождения седом
hackru
поебаться пришлось, вроде получилось. но всё же хочу ответ на начальный вопрос
Ievgen
Здается мне если ты подкинешь модуль с тем же именем туда где у тебя роли в каталог library то будет использоваться он
Ievgen
http://docs.ansible.com/ansible/latest/playbooks_best_practices.html#directory-layout
Ievgen
Или таки ругается?
hackru
если много, то ругается, если мало, то используется из library
hackru
(дополнительные роли не используют этот модуль)
GithubReleases
ansible/ansible was tagged: v2.4.4-0.2.rc1
Link: https://github.com/ansible/ansible/releases/tag/v2.4.4-0.2.rc1
Release notes:
New release v2.4.4-0.2.rc1
citius
народ
а вот такую конструкцию вообще нормально использовать? гитлаб запускает пайплайн с деплоем, в основном плейбуке проверяем, если сервер не был преднастроен, импортируем плейбук для этой самой преднастройки.
- name: bootstrap if needed
import_playbook: "{{ playbook_dir }}/../frontend.yml"
when: ansible_local.base_setup.bootstrapped is not defined
вроде как все ок должно работать, но мне бы хотелось из этого импорченого плейбука выполнить только таски с тегом bootstrap.
это вообще возможно?
Vadim
вынести затэганные таски в отдельный плейбук и импортировать в обоих местах?
Vadim
С этими тегами больше возни чем пользы имхо
citius
да, я уже похоже пришел к этому же варианту. )
не хотелось плодить плейбуки прост.