Div
большое спасибо за идею.
George
- hosts: loc tasks: - name: Ansible template with_items example. template: src: "mytemplate.j2" dest: "{{ project.name }}" mode: 0777 with_items: {{ projects }}
George
типа так
George
но это тоже пока холостой выстрел )))
Div
буду проверять вот прямо вот сейчас.
George
https://stackoverflow.com/questions/26989492/ansible-loop-through-group-vars-in-template
George
или вот такое. Короче - гугления на 15 минут
George
😊
Div
я не с той стороны гуглил... два дня...
George
бывает
Nikolay
А не подскажете, как при помощи джинджика вставить простой символ перед переменной? Типа вставить например тот же \n только в начале переменной? "{{ facts.instances|map(attribute='public_dns_name') | join('\n') }
Nikolay
хочу, чтобы аттрибут public_dns_name отдавался с кастомным символом в начале
George
В пайтоне есть штука, которая позволяет впечатать любое значение в определенную тобой строку
George
Но вообще, конечно, это вопрос для стековерфлоу
George
{{ etcd_ips | map('replace', '.*', 'http://\1:2379') }}
George
Парни, например, такое делают
Womchik
вот такой костыль получился :( {% if (item.value.sudo_cmds is not defined) or (not item.value.sudo_cmds) %} {{ item.key }} ALL=(ALL) NOPASSWD: ALL {% else %} {% for _vars in hostvars[inventory_hostname] %} {% if _vars | regex_search('^' + item.key + '_sudo_cmds') %} {% for _cmds in hostvars[inventory_hostname].get(_vars) %} {{ item.key }} ALL=(ALL) NOPASSWD: {{ _cmds }} {% endfor %} {% endif %} {% endfor %} {% endif %}
Huan
привет всем, помогите задачкой: - name: create subnets local_action: module: ec2_vpc_subnet aws_access_key: "XXXXXXXXXXXXXXX" aws_secret_key: "XXXXXXXXXXXXXXX" cidr: "10.1.1.0/22" vpc_id: "vpc-XXXXXXXXXXXXXXX" az: "{{ item.az }}" region: "eu-central-1" resource_tags: Name: "{{ item.subnet }}" with_items: - { az: "eu-central-1a", subnet: "k8s-subnet-1a", cidr: "10.1.1.0/24" } - { az: "eu-central-1b", subnet: "k8s-subnet-1b", cidr: "10.1.2.0/24" } - { az: "eu-central-1c", subnet: "k8s-subnet-1c", cidr: "10.1.3.0/24" } register: kubernetes_subnets - name: create eks cluster local_action: module: aws_eks_cluster aws_access_key: "XXXXXXXXXXXXXXX" aws_secret_key: "XXXXXXXXXXXXXXX" name: stage version: 1.12 role_arn: "arn:aws:iam::XXXXXXXXXXXXXXX:role/kubernetes" subnets: "{{ ?????????????? }}" security_groups: kubernetes wait: yes with_items: "{{ kubernetes_subnets }}" register: kubernetes_cluster как передать в subnets список subnet id?
Huan
да
George
В регистере верхнем они разве не появляются ?
George
Наверное, отфильтровать грамотно )
Huan
подскажи плз как 🙂
George
Покажи вывод register
George
Я не представляю, что туда попадает
Huan
Куда именно что именно и откуда именно передать?
надо в второй таске подсунуть лист сабнетов из первой таскичтоб было типа так: subnets: - subnet-id1 - subnet-id2 - subnet-id3
Sergei
господа человеки, вопрос, возможно ли выполнить плейбук так, чтоб таски выполнялись параллельно, и если на одном из серваков таск зафейлится - вся работа должна остановиться ?
Sergei
А зачем так ?
Шоп деплоить легаси, лол
George
Шоп деплоить легаси, лол
Ну, просто фигня получается
George
У тебя на одном хосте плей отработал, а на втором все ещё на одной таске. Роллбек? Не, не слышал
George
https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html strategy free
George
Насчёт обработки ошибок
Sergei
Ды я ужо нашел, будем подумать
George
https://docs.ansible.com/ansible/latest/user_guide/playbooks_error_handling.html#aborting-the-play
Timur
надо в второй таске подсунуть лист сабнетов из первой таскичтоб было типа так: subnets: - subnet-id1 - subnet-id2 - subnet-id3
Выведи дебаг переменной из первого таска - можно будет фильтры нужные подобрать
Nikolay
Скажите, Ансиболь может выполнить внутри исполняемой роли вторую (после определенной таски), но для другого хоста? Чтобы было примерно таким макаром таким макаром организовать реально? role1_host1 task1 task2 task3 role2_host2 task 1 task 2 task4 end
Nikolay
просто хочу не разбивать task 4 на отдельную роль
Timur
А в чем изначальная задача заключается?
Aleksandr
Можно delegate_to сделать
Nikolay
роль 1 - создание инстанса роль 2 - отработка роли на самом инстансе таск 4 - шлется оповещение в слак Можно конечно этот таск засунуть и во вторую роль, но хотелось бы целостность роли сохранить
Nikolay
Можно delegate_to сделать
т.е все таски со второй роли делегировать нужному хосту?
Aleksandr
Да
Nikolay
хмммм
Nikolay
новую роль ради одной таски.. Что там бест практисы говорят, как лучше все это проворачивать - все же разбивать на роли, или включить все в одну роль?
Timur
Роли ради ролей не нужны
Nikolay
вообще отдельный плейбук?
Timur
Роли нужно делать, если планируется код ансибла распространять на разные окружения, меняя различные параметры
Max
человеку имхо сходить надо в библиотеку и понять что такое - playbook - play
Timur
вообще отдельный плейбук?
Плей. В том же плейбуке
Max
плэйбук - последовательность плеев.
Max
плей бежит на 1 множество хостов, и применяет на них пре-таски, таски, роли и пост-таски.
Max
@hood4real ^^^
Nikolay
а понял, вы про тасклист
Max
тасклист - это список тасков роли. в них не указывается hosts:
Max
внутри плейбука - список плэев. каждый плэй может на разные hosts применяться.
Max
приём.
Max
нотификацию по слаке я бы делал через хэндлер, в котором использовал бы конвенциональные переменные для параметров.
Nikolay
да все, нашел в доке
Anton
Всем привет. Вопрос, есть нормальный способ при помощи ансибла скачать рекурсивно содержимое http ресурса? Или пусть даже не http, а ftp, короче дерево папок. Само собой всё происходит на винде.
Anton
Угу, иначе бы тривиально решалось всё.
Max
само собой вруби wsl
Anton
Нет такой магии на Windows 7, это раз. Какой от него толк на целевой машине, это два.
Max
Нет такой магии на Windows 7, это раз. Какой от него толк на целевой машине, это два.
пардон, мастер слишком крут для меня. рекомендую чат #хочу_родить_взрослого_ежа
Max
А ты надеялся что я пойду гуглить что такое WSL?)
нет, на устаревшей системе наверное уже проще написать на ps.