Sergey
Sergey
ну вот, не утерпел, придётся язык с мылом мыть
Sergey
ну то есть руки
Dima
вот кстати поэтому я и выкинул данный кусок кода и поскорее забыл, а вопрос решился политически, переменными ext_ip и int_ip в hostvars.
Dima
(и в принципе много других проблем этими переменными решилось)
Dima
https://github.com/ansible/ansible/issues/23517
Dima
чем меньше нестабильных модулей, костылей и прочего, тем меньше багов. важно найти баланс 😀
Dima
вот например такое я переделал на ext_ip и убрал костыль для вагранта.
- name: restrict listening interface
lineinfile:
state=present
dest=/etc/ssh/sshd_config
regexp="^ListenAddress {{ ansible_default_ipv4.address }}"
line="ListenAddress {{ ansible_default_ipv4.address }}"
when: ansible_default_ipv4.address != "127.0.0.1"
notify: reload sshd
Womchik
ppl, вот у меня в роли common в main.yml есть вызов:
- name: Setup users
include: users.yml
with_items:
- { name: 'admin', groups: 'wheel,root' }
- { name: 'user', groups: '' }
users.yml лежит в той же папке common
как мне правильно ссылаться на этот файл, если я хочу вызывать его из других ролей для заведения других юзеро?
куда его засунуть? :)
Dima
в vars_files
Dima
---
- hosts: production
vars_files:
- users.yml
tasks:
- name: blablabla
Womchik
пасиб
Dima
Вом, там есть вот такой гист: https://gist.github.com/marktheunissen/2979474
Dima
grep -v "#" | grep -v "^$" покажет суть короче
Dima
мож ещё что полезное найдешь
Womchik
у меня в users.yml не переменные, а действия.
zelo
Womchik
за ссылку спасибо
Dima
ой да сколько можно меня егрепу учить, третий раз это уже здесь
Dima
оффтоп
Dima
я всё объяснил желающим учить тут чему-то кроме ансибла.
Dima
- include: users.yml
Dima
но там нет этого примера
Dima
оно понимает ../..
Dima
плейбуки чтобы были переносимы между юзерами
Dima
кстати если у тебя все юзеры одинаково конфигурируются, есть смысл положить это всё в отдельную роль
Dima
я вот не стал с ролью заморачиваться и положил юзеров в переменные вот так: https://github.com/lastsky/ansible/blob/master/playbook-users.yml
Womchik
у меня имена юзеров от роли зависят
Dima
ну тогда переменные юзеров можно класть в defaults этой роли
Dima
а, тебе надо чтобы другие роли тоже видели
Womchik
да
Dima
ну по группам там папка group_vars, по хостам - host_vars а просто общие vars
Dima
Ξ code/github.com → ansible-galaxy init test
- test was created successfully
Ξ code/github.com → ls -laR test
Dima
посмотри там что насоздаётся, куча комментов всяких есть
Womchik
vars не могу понять тут причём, если users.yml - набор тасок?
Womchik
скорее всего выкину в корень и буду делать инклуд по полному пути
Dima
понятно. ну есть meta для зависимых ролей, а у тебя это не роль. не слишком ли запутанно получается.
Womchik
да нет.
Evgeny
Может кто подскажет как можно в ansible в jinja2 переформатировать строку с датой , например 2017-06-14T18:06:56Z в 20170614180656 ?
Denis
to_datetime посмотри.
Dima
Dima
можно поместить в папку vars которая на уровне roles и написать путь начав с vars
Dima
должно сработать
Dima
тогда всё логично и вроде бы даже не костыльно
Dima
тебе же нужно чтобы файлы были в одном числе?
Dima
и в зависимости от имени роли выполнялись
Dima
вот это походит на рабочий вариант
Dima
а стоп. у тебя там таски, опять забыл :)
Dima
ну и с тасками тоже должно работать
Womchik
Спасибо. Попробую. А есть переменная, которая на корень плейбука указывает?
Denis
http://docs.ansible.com/ansible/playbooks_variables.html
Denis
playbook_dir
Womchik
Протупил :)
Aleksei
Кто может подсказать, как задебажить игнорирование Ansible'ом роли в playbook'е? Он просто её пропускает и не выдаёт никаких ошибок (--list-tasks не отображает её, -vvvv не показывает ничего полезного)
Dima
skipping - no hosts found тоже нету?
Aleksei
Нет, хосты он чекает
Aleksei
И на этом всё =)
Dima
ну тогда покажи как вызывается роль из плейбука...
Aleksei
---
- name: Install enviroment
hosts: default-preprod
remote_user: root
roles:
- projects/default
Aleksei
У меня была аналогиная проблема, когда я в tasks создал файл mani.yml, вместо main.yml. Но сейчас я это за собой перепроверил =)
Dima
ну а роль у тебя не в папке roles лежит? или у тебя roles/projects/default/?
Dima
напиши в ansible.cfg этот путь для роли, короче, вот такой пример есть
http://docs.ansible.com/ansible/intro_configuration.html#roles-path
Aleksei
Aleksei
Сейчас попробуем
Aleksei
Спасибо!
Aleksei
С другой стороны, любые другие роли из projects запускаются без установки этого параметра
Dima
переименуй в default1? )
Aleksei
Не, не помогает
Aleksei
Причём, если я ошибусь в playbook'е и напишу default1 - ошибка вылетает
Dima
не, роль назови default1 и в плейбуке скажи делать роль default1 )
Dima
если другие роли работают из той папки, то и эта должна заработать? переименуй роль, в общем. если не заработает - проблема внутри роли.
Aleksei
Нашёл проблему. Она была в кривых руках. в папке default лежало 4 роли (одна, содержащая в meta зависимости на другие 3 роли). Указал нормальный путь к роли и всё заработало
Aleksei
Спасибо за помощь ^^
Igor
Коллеги, никто windows хостами не управлял?
Igor
Как оно там вообще