Ievgen
я не пробовал пока что
Max
- meta: end_play when: твое_условие
о, класс, что-то такое и виделось)) спасибо
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
qww не? vars: sha2: "files[?checksum=='{{ your_checksum_variable }}'].path"
оказалось, что я передаю массив туда где ожидается string. нужно было так sha2: "files[?checksum=='{{ your_checksum_variable[0] }}'].path"
Pavel
спасибо за потраченное время.
Anuar
Есть кто живой?
Roman
Ануар, держи мой пример - я группами добавлял, меня устраивало https://pastebin.com/Zp9f13WL
Roman
может с хостами прокатит
Anuar
что-то до сих пор пытается зайти на этот сайт
Ievgen
спасибо за потраченное время.
нп, а почему у тебя в этой переменной массив и где гарантия, что искомый элемент именно [0]?
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.
George
Тогда убери with и сделай дебаг для hostvars['имя хоста из группы'].
George
А потом проверь, что у тебя просто item перечисляет нужные хосты.
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
epel в раше часто в качестве зеркала отдает rbc
ни разу такого не было.. яндекс обычно
Aleksey
ни разу такого не было.. яндекс обычно
ты с того места перечитываешь ?
Denis 災 nobody
да )
Pavel
нп, а почему у тебя в этой переменной массив и где гарантия, что искомый элемент именно [0]?
массив потому что ещё не научился flatten list делать. а искомый элемент 0 потому что он единственный в массиве. это ожидаемое поведение.
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
а в какой момент заходит тот таск с чексамом?
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
Или таки ругается?
там странно. в зависимости от количества ролей в плейбуке
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
да, я уже похоже пришел к этому же варианту. ) не хотелось плодить плейбуки прост.