Timur
Отделение Bereke Bank
variable hell 😑
Aleksey
ак тот же хрен но в другой руке
Aleksey
завязка на название роли
Отделение Bereke Bank
там нет завязки на название роли
Aleksey
на название группы коненчо
Отделение Bereke Bank
группа задается в consul_group_name
Boris 🦍
Привет всем. Есть такой плей
- name: vms
hosts: vms
gather_facts: false
roles:
- { role: vms/configure, tags: ['vm_configure'] }
- { role: infra/consul/consul-install, tags: ['vm_configure', 'consul'] }
- { role: monitoring/exporters/node_exporter, tags: ['vm_configure', 'exporter'] }
- { role: infra/docker, tags: ['vm_configure','docker'] }
- { role: infra/efk/fluentbit_agent, tags: ['vm_configure', 'logs','fluentbit'] }
- { role: system/users, tags: ['never','users'] }
Заускаю так
ansible-playbook playbooks/vm.yml -i inventories/stage/hosts.yml -u bshestov --tag docker -l test_server.com --vault-password-file /root/.vault_eva -Kb
Т.е явно передаю тэг docker, но почему-то он игнорируется и выполняются другие роли, которые не помечены данным тегом. ansible2.8
Gleb
последний раз когда я такое пытался сделать работало только через
tasks:
- import_role: …
Gleb
иначе теги не хавались
Anonymous
—tags “docker”
Anonymous
Так попробуй - но это не точно. Через два тире
Gleb
а в какой версии ансибл сделали так что через roles: теги имортились?
Boris 🦍
Anatoliy
ребят, есть большая разница между import_role и include_role
Anatoliy
кроме того, просто "roles" уже depracated
Gleb
Anatoliy
import_role - указанные теги как бы наследуются всем внутренним таскам
Anatoliy
include_role работает более интуитивно.
Gleb
Anatoliy
ща
Отделение Bereke Bank
Anatoliy
Anonymous
Вы так не пугайте
Anatoliy
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html отправная точка отсюда. там же ссылка на
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_includes.html про отличия include/import
Lex
ребят, не могу засинкать в awx из проекта inventory
пользует кто так?
Lex
может там подводные камни какие...
Boris 🦍
tags-list выдает список тегов для тасков, но для плея он пуст, не знаю номра это или нет, может в этом причина
playbook: playbooks/vm.yml
play #1 (vms): vms TAGS: []
TASK TAGS: [always, consul, docker, exporter, vm_configure]
Boris 🦍
Boris 🦍
Привет всем. Есть такой плей
- name: vms
hosts: vms
gather_facts: false
roles:
- { role: vms/configure, tags: ['vm_configure'] }
- { role: infra/consul/consul-install, tags: ['vm_configure', 'consul'] }
- { role: monitoring/exporters/node_exporter, tags: ['vm_configure', 'exporter'] }
- { role: infra/docker, tags: ['vm_configure','docker'] }
- { role: infra/efk/fluentbit_agent, tags: ['vm_configure', 'logs','fluentbit'] }
- { role: system/users, tags: ['never','users'] }
Заускаю так
ansible-playbook playbooks/vm.yml -i inventories/stage/hosts.yml -u bshestov --tag docker -l test_server.com --vault-password-file /root/.vault_eva -Kb
Т.е явно передаю тэг docker, но почему-то он игнорируется и выполняются другие роли, которые не помечены данным тегом. ansible2.8
Подведу итог. Перепробовав roles, import_roles, include_roles теги не игнорировались только с include_roles.
Boris 🦍
Не знаю почему так, в доке все три опции поддерживают теги.
Anatoliy
roles, import_roles тэги обрабатываются на этапе парсинга. поэтому фактически, применяются ко всем таскам внутри подключаемой роли
Anatoliy
include_role обрабатывает тэги на этапе выполнения, поэтому все работает более логично, если можно так выразиться
Anatoliy
я давал ссылки как раз про это
Anonymous
Я кстати правильно или нет - но внутри роли main.yml инклюдю Файлы с тасками по разной логике деля и вот на этот импорт пешую теги
Anonymous
Очень хорошо заходит и накрывает группу тасков
Sergey
Sergey
И работает!
Sergey
Особенно когда во всех ролях в проекте теги одинаковые
Sergey
Вполне возможно 😊
Logan
есть ли возможность выполнить lookup от определенного пользователя? например - от рута
Logan
или become не применяется никогда для lookup?
Sergey
как у тебя задача сама выглядит?
Logan
я генерю пароль. вот этой штукой: https://docs.ansible.com/ansible/latest/plugins/lookup/password.html
Logan
кладу в файл. файл должен быть доступен только руту (только он его использовать будет)
Logan
кажется я понял свою проблему. Спасибо.
Эффект наблюдателя в действии
Logan
lookup выполняется на машине, с которой ansible запускается
соответственно, если что-то надо сгенерить на удаленном хосте - lookup сгенерирует локально, а template - отправит на удаленную машину
Артём
Артём
Про между ролями интересует.
Anonymous
Я сейчас с телефона
Anonymous
Пинганите днём после 11 утра скину
Anatoliy
есть способ в docker_container передать в env: socks5 proxy ?
NM
Через скобочки
NM
Двойные или объявления переменных в var
Гайрат
Гайрат
Ага
tutunak
Anonymous
Дефолт сити же
Anonymous
пример плейбука ---
- hosts: sandbox
become: yes
roles:
- 0000-common
- 0004-zabbix-agent
Anonymous
пример роли 0000-common
Anonymous
---
- include: 00-update-installed-packages.yml
tags:
- infra
- include: 01-install-base-packages.yml
- include: 02-disable-resolver.yml
- include: 03-set-dns.yml
- include: 04-set-ntp.yml
tags:
- time
- include: 05-firewall.yml
tags:
- infra
- security
Артём
Спасибо.
Timur
Timur
include вместо include_tasks
Damir
Damir
В PB:
---
- hosts: HOSTS
gather_facts: no
tasks:
- include_role:
name: 0004-zabbix-agent
tasks_from: 0000-common
А в самой роли:
- name: Do something
include_role:
name: 01-install-base-packages
tasks_from: 0000-common
tags: infra
Damir
set-dns/ntp и прочее логичнее вынести в отдельную роль и ссылаться на него с помощью tasks_from
Ivan
Всем привет, кто-то сталкивался? ансибл не принимает вложенные параметры словаря, переданные через extra-vars:
volumes:
param: 10
id: 1
--extra-vars "volumes['param']=11"
--extra-vars "volumes.param=11"
--extra-vars '{"volumes": {"param" : "11"}}'
kSandr
други подскажите как правильно впихнуть переменную в строку ?
{{ ansible_all_ipv4_addresses | select('match', '{{ local_net }}+') | list }}
local_net не разворачивается в переменную, непойму как это все заэкранировать правильно
Lamobot
{{ ansible_all_ipv4_addresses | select('match', local_net~'+') | list }}
kSandr
Nikita
Всем привет, подскажите пожалуйста, хочу скопирвать файлы на сервер и поменять владельца.
- name: repository synchronization with destination
synchronize:
src: "{{ code_delivery_source }}"
dest: "{{ code_delivery_project_path }}"
archive: false
recursive: true
set_remote_user: false
times: true
rsync_opts:
- "--exclude-from={{ code_delivery_exclude_rsync }}"
- "--chown={{ code_delivery_owner }}:{{ code_delivery_group }}"
- "--chmod={{ code_delivery_permission | default('F644') }}"
- "--quiet"
Но права на файл всё равно остаются root (под них хожу по ssh, но become_user стоит code_delivery_owner)
Ivan
так тебе нужно овнера указывать чтоб сменить