Warrax
👍
Timur
👍
Там некоторые рекомендации и синтаксис уже устарели, но в целом для начинающих книга неплохая
Anonymous
Hi when I run a command in solaris it will promt for some questions. I need to input some values. Is there any ansible module to input someting for a command output?
Sergey
Or, well, if you're completely screwed, use 'expect' CLI utility.
Anonymous
- name: Generic question with multiple different responses expect: command: sh /tmp/explorer.sh responses: Do you wish to schedule explorer in cron (y/n)?: "n"
Anonymous
Hi i tried expect module but its not working for y or n
Damir
Парни, почему в данном случаи не cрабатывает игнорирование ошибки? - name: Task 8. Copy monit file copy: src: "{{ backup_folder }}/{{ inventory_hostname }}/etc/ksmon.controller" dest: /etc/ksmon.controller ignore_errors: True no_log: True owner: monit group: monit mode: 0640
Timur
Что именно не срабатывает?
Damir
fatal: [host1.test.domain]: FAILED! => {"changed": false, "msg": "Could not find or access '/backup/dc1/cluster/host1.test.domain/etc/ksmon.controller' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"} An exception occurred during task execution. To see the full traceback, use -vvv. The error was: If you are using a module and expect the file to exist on the remote, see the remote_src option
Damir
Этого файла действительно нет на сервере, и я хочу заигнорить этот таск, а точнее скипнуть
citius
Этого файла действительно нет на сервере, и я хочу заигнорить этот таск, а точнее скипнуть
Добавь перед таcком проверку на наличие файла, а в таске добавь when: file.exists. Через игнорирование ошибок, кмк пропускать таски это стремновато.
Damir
Добавь перед таcком проверку на наличие файла, а в таске добавь when: file.exists. Через игнорирование ошибок, кмк пропускать таски это стремновато.
Да, как вариант. Не много удивился почему ignore не сработал... Сделал в итоге через when exists. Спасибо)
Rasim
Всем привет. подскажите пожалуйста, как заставить ansible использовать cafile при подключении по winrm? openssl s_client -connect норм requests.get('xxxx:5986',verify=/path/to/pem' норм ansible - certificate verify failed
Rasim
ansible_winrm_ca_trust_path вроде
Rasim
xxx: | SUCCESS => { "changed": false, "ping": "pong" } гуд, извините за беспокойство
Oleg
подскажите как в 1 таске реализовать следующее: использую модуль lineinfile с несколькими with_items, но помимо этого в таске еще нужно сделать delegate_to на несколько серваков. Как совместно прописать with_items и для line: и для delegate_to:? спасибо!
Timur
Ансибл и так параллельно выполняет все таски на всех хостах группы
Timur
пока не уперся в serial
Ну, тут уж вы сами делаете что хотите
Oleg
Зачем delegate_to для этого?
потому что таска выполняется на вообще другой машине) у нас несколько зон и они невидят др др, но через 1 срвер можно делегировать на другие...как то так)
Oleg
Все равно не понимаю, при чем тут delegate_to?
инвентари файлы разные в двух средах, но есть задача передать их значения в другую среду.
Oleksandr
я так делегирую на 1 машну группы
Oleg
delegate_to: "{{ groups['groupname'][0] }}"
а если есть группа где помимо 1, есть несколько машин?
Oleksandr
убери [0]
Oleksandr
или просто укажи delegate_to: groupname
Oleksandr
по идее должно сработать (не проверял)
Oleksandr
иногда это удобно
Oleksandr
чтоб не распиливать на много ролей, из-за 1 делегейта
Timur
Роли как раз подразумевают атомарность и то, что их может быть много в рамках одной плейбуки
Oleksandr
Странный подход
расскажи как лучше. кейс делаю миграцию данных прод -> препрод все выполняется на сервере БД и только репликатор в середине плейбука надо дернуть на удаленной машине
Oleksandr
что я от этого выиграю?
Oleksandr
делегейт запрещен?
Timur
Первую часть делаем на БД, потом дергаем в следующем плее репликатор, а потом опять делаем там, где нужно
Oleksandr
зачем?
Timur
делегейт запрещен?
Нет, но он может вызывать дополнительные проблемы в поддержке
Oleksandr
какие?
Timur
какие?
Например, с регистрацией фактов во время тасков, которые делегированы
Oleksandr
выше описан реальный кейс
Oleksandr
ты про то что при делегейт не собираются факты?
Timur
Собираются, но потом не попадают в hostvars нормально
Timur
И там еще нюансы есть
Timur
Вот, например: https://github.com/ansible/ansible/issues/51540 Только недавно пофиксили
Timur
Ну, в общем, я предупреждал :)
Oleksandr
не. я ж понимаю, где может быть больно. предостережения принял. но я не вижу ничего плохого в 1 плейбуке делегрование куда-то там. а вот распил 1 плейбука на 3 - это может быть проблемой
Oleksandr
потому что в приведенном кейсе у меня 1 плейбук который всегда перенесетданные с прода на препрод
Oleksandr
а вот с 3 плейбуками у нас есть 2 плейбука, которые делают полработы
Timur
не. я ж понимаю, где может быть больно. предостережения принял. но я не вижу ничего плохого в 1 плейбуке делегрование куда-то там. а вот распил 1 плейбука на 3 - это может быть проблемой
Еще раз. В плейбуке делегирование не нужно. Там проще на плеи разбить. Делегировать нужно в роли, которая сама не может разбиваться на разные плеи, в отличие от плейбуки
Oleksandr
Timur
Да
Oleg
подскажите плиз как быть в такой ситуации: задал переменную, которая состоит из нескольких переменных vars: adop: '{{ a }}-{{ b }}-{{ c }}-001' и хочу ее передать в другую переменную delegate_to: "{{ D }}" , но указывая что переменная D равно "adop", значение "{{ a }}-{{ b }}-{{ c }}-001" не передается в delegate_to...
Timur
Но может делать это в разных плеях
Timur
Вот что бывает, когда усложняете код без надобности
Oleg
нет...зачем же)
Timur
Такая дичь с двойной передачей переменных возникает обычно от нерационального подхода к решению задачи
Timur
Я тут неоднократно предупреждал о том, что не стоит без надобности использовать динамические имена переменных
Timur
нет...зачем же)
У вас эту миграцию делает таки роль или плейбука?
Timur
Подозреваю последнее
Timur
И что же это за роль такая?
Timur
Которую вы пытаетесь использовать как плейбук