Andrew
Сууууууууууука, ненавижу ямл)
Timur
Сууууууууууука, ненавижу ямл)
Не используйте строчный синтаксис
Timur
Always use the map syntax, regardless of how many pairs exist in the map.
Timur
# bad - name: Create configuration file with parameters file: path=/etc/sensu/conf.d/checks state=directory mode=0755 owner=sensu group=sensu become: true - name: Copy configuration file copy: dest=/etc/sensu/conf.d/checks/ src=checks/check-memory.json become: true # good - name: Create configuration file with parameters file: path: /etc/sensu/conf.d/checks state: directory group: sensu mode: 0755 owner: sensu become: true
Timur
Я юзал yamllint но оно эти ошибки не видело
Потому что с точки зрения yaml все было ок, ошибка была на уровне синтаксиса самого ансибла
Timur
ansible-lint юзайте
Andrew
Ух ты
Andrew
Окей, спасибо
Timur
Ну, и у ансибла есть отдельный режим проверки синтаксиса
Timur
Ключ --syntax-check
Andrew
типо playbook.yml —syntax-chek?
Andrew
Andrew
Чот я туплю...
Андрей
check?
Timur
--syntax-check
Timur
ck на конце
Andrew
--syntax-check
Да, спасибо)
Дивопсина сутулая породистая
Ребят доброго времени суток!, кто может подсказать как правильно реализовать, есть у меня 4 группы хостов: webservers, rmq, db и ch. Хочу установить nginx через playbook только в 2 группы хостов, webservers и rmq. Как это сделать правильно? Как в hosts указать 2 группы хостов?)
Alex
> Как в hosts указать 2 группы хостов? через запятую?
Дивопсина сутулая породистая
а синтаксис пропустит?
Дивопсина сутулая породистая
спасибо
Timur
В вашем случае будет hosts: webservers:rmq
Дивопсина сутулая породистая
Maksim
Привет. Как запустить ansible с места ошибки?
Egor
Привет. Как запустить ansible с места ошибки?
Как вариант использовать теги. Это не даст запустить плейбук с места ошибки, то зато сможешь определённые таски запускать.
Timur
Привет. Как запустить ansible с места ошибки?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html
Maksim
Слушайте, а как приказать ансиблу, сначала делать become под рутом, а потом из под рута под юзером,и все в рамках одной таски?
Отделение Bereke Bank
-b и в таске become в нужного юзера
Отделение Bereke Bank
Типа - name: Create databases become: yes become_user: postgres postgresql_db:
Ivan
Всем привет. Может быть есть какой-нибудь вариант, если хост недоступен при запуске плейбука, то плейбук бы не заканчивал свою работу, и дальше пытался к нему законектится раз в n минут/часов. А хосты которые активные, выполнял бы на них свою работу, и больше их не трогал
Alex
strategy: free какой-нибудь с кастомными настройками retry?
Yar
Вопрос такой: у меня в .ssh/config для части хостов вписан автозапуск tmux, но ансибл это смущает с сообщением: Failed to connect to the host via ssh: Cannot execute command-line and remote command. можно что-либо сделать, чтобы ручной коннект по ссш использовал запуск тмукса, а ансибл - нет?
Александр
Роль: - name: install quick aliases copy: dest: "/etc/profile.d/{{ item.name }}.sh" content: | alias {{ item.name }}='{{ item.alias }}' loop: "{{ aliases }}" loop_control: label: "{{ item.name }}" - name: install motd copy: dest: /etc/motd content: | quick aliases: {% for i in aliases %} {{ "%-15s %s" | format(i.name, i.help) }} {% endfor %} playbook: - role: quick_aliases aliases: - name: replst alias: 'echo "show slave status\G" | docker exec -i db mysql -A | sed "1d;/SSL/d"' help: "show database replication status (disabled in active-backup cluster status)" - name: fwst alias: 'iptables -S FORWARD | grep ipvs_block || echo "No fw rules with comment ipvs_block"' help: show IPVS block rules (IPVS blocked in active-backup cluster status) - name: hast alias: '/usr/bin/hatop -s /var/run/haproxy/haproxy.sock' help: "show database only local connections status (MAINT remote frontends in active-backup cluster status)" - name: cls alias: | {% raw %} docker ps --format "table {{.Names}}\t{{.RunningFor}}\t{{.Status}}\t{{.Ports}}" {% endraw %} help: list containers tags: quick_aliase последний алиас генерирует ошибку: FAILED! => {"msg": "An unhandled exception occurred while templating '{u'alias': u'\\ndocker ps --format \"table {{.Names}}\\\\t{{.RunningFor}}\\\\t{{.Status}}\\\\t{{.Ports}}\"\\n', u'name': u'cls', u'help': u'list containers'}'. Error was a <class 'ansible.errors.AnsibleError'>, original message: template error while templating string: unexpected '.'. String: \ndocker ps --format \"table {{.Names}}\\t{{.RunningFor}}\\t{{.Status}}\\t{{.Ports}}\""} Почему-то raw не работает как надо. Есть ли способ как-то обойти не используя template+variable_start_string?
Александр
простите за разметку 😞
Sergey
Тут всё просто: твои двойные скобки воспринимаются как шаблон Jinja.
Александр
я понимаю это. По этому пытаюсь использовать {% raw %}, но по всей видимости, они в самой роли в переменной {{ item.alias }} опять ипользуются как шаблон
Александр
в общем написав свой последний коммент я врдуг понял что мне поможет alias: > {%- raw -%} {{- 'docker ps --format "table {{.Names}}\t{{.RunningFor}}\t{{.Status}}\t{{.Ports}}"' -}} {%- endraw -%} help: list container выглядит конечно не очень. зато работает
Andrew
А могли бы подсказать какого черта?
Andrew
inqfen
А ты ему не веришь, что hosts требуется?
Andrew
Андрей
А по ошибке непонятно?
Andrew
У меня есть файл с конфигом
Andrew
он есть, в том то и дело
Андрей
попробуй полный путь указать до файла hosts
Maksim
Текст плейбука в студию
Andrew
Sergey
может проще написать инвентори и не делать ерунды?
Andrew
Я пробую с ролями разбиратся
Andrew
И до этого работало
Андрей
А чего с ними разбираться? Что не получается?
Sergey
а если много будет ролей, они все будут в хостс лезть?
Андрей
А плейбук не под конкретную задачу пишется?
Sergey
или если машина поменяется
Андрей
и что за мода однотипные задачи постоянно описывать в плейбуках?для этого роли есть)
Andrew
Так а разве не для этого отдельный файл хостс?
Sergey
в итоге будешь каждый перенос делать заново этот ъостс
Andrew
Плейбук же только для запуска
Sergey
Так а разве не для этого отдельный файл хостс?
всмысле для этого, ты знаешь зачем hosts в линуксе присутствует?
Андрей
Только заметил, что там реально хостс, лол
Andrew
Я пробовал в плейбуке на хост сослатся, но оно все равно не работает и еще пишет что файл на который я ссылаюсь будет проигнорирован 😕
inqfen
плейбук поправь
inqfen
инвентори - список хостов (или как их лукапить)
inqfen
А вот в плейбуке ты должен указать на каких хостах из инвентори таск выполнится
Sergey
"как сделать все плохие практики и попытаться это запустить" напоминает
Андрей
ага, именно