Timur
NS 🇷🇺
Timur
Список переменных фильтровать по имени, да
Timur
Это более правильный способ, чем компоновать имя переменной из переменных, в большинстве случаев
NS 🇷🇺
за идею спасибо, хорошо когда есть варианты для выбора =)
Vladislav 👻
подскажите, можно как-то вызвать роль с тегом? запуск самого плейбук будет без тега
Timur
Vladislav 👻
Vladislav 👻
идет вся роль
Timur
Что именно не канает?
Vladislav 👻
только тот момент, который с тегом
Anonymous
Здравствуйте, я использую SecureCRT для создания port forward моим PC и удаленным Jumpbox, а затем я могу использовать настройки прокси-сервера socks в браузере для навигации по IP-адресам за Jumpbox.
Есть ли способ использовать тот же метод с Ansible? Я хочу запустить Ansible на локальной виртуальной машине вместо того, чтобы запускать на удаленном Jumpbox.
Ответ может быть на русском языке. (used google to translate the whole text)
Timur
Timur
Непонятно
Vladislav 👻
запустить из роли таски только с определнным тегом
Timur
Роль вызывается в плейбуке же?
Vladislav 👻
да
Vladislav 👻
но плейбук вызывается без тега
Timur
You can ONLY filter tasks based on tags from the command line with --tags or --skip-tags. Adding “tags:” in any part of a play (including roles) adds those tags to the contained tasks.
Vladislav 👻
я в курсе
Timur
Отфильтровать таски по тегам можно только из комманд-лайна
Vladislav 👻
поэтому и спросил, есть какой-то вариант
Timur
Если плейбук вызывается без этих ключей - никакой фильтрации не будет
Timur
Vladislav 👻
получается, общий кусок проще вынести в отдельную роль
Timur
Использовать параметры в роли и conditionals
Timur
Timur
Можно просто нужные куски включать инклудом с проверкой условия
Vladislav 👻
это понятно, но условие надо определить и управлять им
Timur
А тегами не надо?
Vladislav 👻
тег уже есть в роли, а так получается, надо роль переписывать всю, чтобы заложить новую логику
Timur
Если теги в роли, то что вам мешает запускать просто плейбуку с нужным ключом?
Vladislav 👻
ничего, но тогда плейбук становится не универсальным, т.к. полная раскатка с нуля не будет работать
Vladislav 👻
вот как вы собираетесь контролить потом, где вам надо плейбук запускать просто, где с тегами и какими, а где лимитировать хосты?
Timur
Timur
Непонятен смысл тегов в описанном случае
Vladislav 👻
У меня есть роль, например, раскатать ссш ключ и поставить пакет, но группе хостов надо только ключ или только пакет
Vladislav 👻
Скорее всего, логичнее разделить эти роли...
Timur
Timur
Проще не смешивать разные роли
Vladislav 👻
Проще не смешивать разные роли
Ну это просто пример, по факту это одна роль для хадупа, но сейчас вот надо подключить еще одну машину и просто прокинуть ключ, поэтому вопрос и возник...
Artëm
А кто-нибудь использовал модуль xml?
𝔹𝕠𝕣𝕚𝕤
Artëm
В чем вопрос?
Не могу понять как создать два элемента одинакового названия с тем же набором аттрибутов, но с разными значения у этих аттрибутов. В частности, это датасорс у томката
𝔹𝕠𝕣𝕚𝕤
Artëm
𝔹𝕠𝕣𝕚𝕤
ansible 2.7.1 у меня. Если это важно
Artëm
у меня тоже 2.7
𝔹𝕠𝕣𝕚𝕤
а питон?
𝔹𝕠𝕣𝕚𝕤
да
𝔹𝕠𝕣𝕚𝕤
модули исполняются на целевых
Artëm
на целевой 3.5 использую
𝔹𝕠𝕣𝕚𝕤
таск покажи что ли
Artëm
таск покажи что ли
- name: Test
hosts: web-01
vars:
driverClassName: org.postgresql.Driver
factory: org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory
maxTotal: 200
minIdle: 2
maxIdle: 5
maxWaitMillis: -1
type: javax.sql.DataSource
tasks:
- name: Add resource to context.xml
xml:
path: "/srv/tomcat/test.xml"
xpath: /Context/Resource/[@name='jdbc/db']
attribute: "{{ item.attr }}"
value: "{{ item.value }}"
pretty_print: yes
with_items:
- { attr: 'driverClassName', value: "{{driverClassName}}" }
- { attr: 'factory', value: "{{factory}}" }
- { attr: 'maxTotal', value: "{{maxTotal}}" }
- { attr: 'minIdle', value: "{{minIdle}}" }
- { attr: 'maxIdle', value: "{{minIdle}}" }
- { attr: 'maxWaitMillis', value: "{{maxWaitMillis}}" }
- { attr: name, value: 'jdbc/db' }
- { attr: 'type', value: "{{type}}" }
- { attr: 'url', value: 'jdbc:postgresql://192.168.0.10:5432/db' }
- { attr: 'username', value: 'postgres' }
- { attr: 'password', value: 'postgres' }
Artëm
а ругается он так
msg: 'Syntax error in xpath expression: /Context/Resource/[@name=''jdbc/db''] (Invalid expression)'
Artëm
𝔹𝕠𝕣𝕚𝕤
Во-1ых,
xpath: "/Context/Resource/[@{{item.attr}}='{{item.value}}']"
Artëm
вот пример, как выглядит датасорс
Artëm
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javatest"/>
𝔹𝕠𝕣𝕚𝕤
ааа
Artëm
и вот таких два, или больше
𝔹𝕠𝕣𝕚𝕤
𝔹𝕠𝕣𝕚𝕤
я бы в кавычки всё таки поставил
Artëm
я игрался с ними - не прокатывает
𝔹𝕠𝕣𝕚𝕤
и в with_items запись с name перенести самой первой
Artëm
и двойные, и одинарные, и без
Artëm
и даже здесь
- { attr: name, value: 'jdbc/db' }
убрал для эксперимента
Artëm
Artëm
𝔹𝕠𝕣𝕚𝕤
да
𝔹𝕠𝕣𝕚𝕤
собственно просто сделал пробный плейбук и экспериментировал пока не получилось
𝔹𝕠𝕣𝕚𝕤
кстати