Terry
ребята, а есть чего почитать с примерами для ansible awx для вхождения ?
Василий
Не понял про loop in loop? Вы хотите пробежаться по значениям из a и с? Из вашей структуры переменных список можно сделать через a + c просто
да, я хочу брать по очереди эленты списка services и выводить каждый элемент переменной этого списка.
Василий
как бы: for i in services: for s in SERVICE[i]:
Lamobot
как бы: for i in services: for s in SERVICE[i]:
loop: '{{ a + c }}' Немного сложнее если вы хотите передавать это снаружи
Василий
loop: '{{ a + c }}' Немного сложнее если вы хотите передавать это снаружи
Так он просто объеденит списки. Если я хочу итерировать например только одну переменную, было бы примерно так: var: SERVICE: a: -1 -2 -3 b: -4 -5 -6 c: -7 -8 -9 - debug: var: SERVICE['item'] loop: - "{{ SERVICE['a'] }}" В данном случае будет итерирован список a. Но что ели я хочу итерировать каждый раз разные списки в зависимости от того что я передам на вход плею. Соответствено мне нужно каким-то образом ввести переменную вместо 'a', например это будет список [a,c] и мне нужно чтобы ключ словаря SERVICE менялся каждый раз после очередного прохода цикла. - debug: var: SERVICE['item'] loop: - "{{ SERVICE[service] }}"
Василий
в данном случае service будет являтся той переменной которую мы будем задавать через extra-vars
Sergey
with_dict присмотрись :-)
Lamobot
Тогда в with_dict передавай просто repository
Mentat
никто не мешает делать yum_repository: {{ item }}
Sergey
Всем привет! Я новичок в ansible. как запустить/импортировать role, если отработала предыдущая?
Sergey
Всем привет! Я новичок в ansible. как запустить/импортировать role, если отработала предыдущая?
Оно само. Если роль сломалась, то из дальнейшей обработки по дефолту сломанный хост вылетает.
Sergey
А привязать запуск роли к изменению (changed) одного из тасков предыдущей как-то можно?
Sergey
Через регистер и проверку
Точно, что-то не пришло мне это в голову... Спасибо
Vladimir
а я так понимаю include_tasks не очень приветствуется ?
Vladislav 👻
это почему? о_0
Anonymous
Знатоки добрый день! подскажите пожалуйста, есть shell таск, который отдает то true то false, я его register затем как мне в другом таске сделать when true then run?
Vladimir
Всё зависит от задачи
а есть примеры плохого сценария и хорошего ?
Игорь
подскажите, я определяю extra-vars="foo=bar", но в плейбуке debug: var=foo выдает "foo: VARIABLE IS NOT DEFINED" что я делаю не так?
Grek 🇺🇦
Using Variables — Ansible Documentation https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
Aleksey
Я чот с тупым. а как понять что я сейчас root ? я делал так вот when: - ansible_user is defined - ansible_user == 'root' но это не работает
Aleksey
а оно чот вдруг не совсем тупое почему то
Diana
привет! а кто-нибудь hashicorp vault с ансиблом дружил? не могу залогиниться на хост с паролем, который получила из vault-а. Пароль получила по инструкции https://docs.ansible.com/ansible/latest/collections/community/general/hashi_vault_lookup.html#examples
Diana
кусок ямла в студию
в echo вижу что пароль забрал. в inventory пытаюсь использовать переменную ansible_password и получаю что она undefined
Diana
hosts
Diana
где?
tutunak
- hosts: app_servers vars: app_path: {{ base_path }}/22
Pit
где?
где курсор
Diana
а, это там переделывала, отступ был
Diana
вот собственно ошибка.
Diana
предположительно что-то делаю сильно не так... но не могу понять что именно
Pit
привет! а кто-нибудь hashicorp vault с ансиблом дружил? не могу залогиниться на хост с паролем, который получила из vault-а. Пароль получила по инструкции https://docs.ansible.com/ansible/latest/collections/community/general/hashi_vault_lookup.html#examples
проще всего как-то так - name: пушим секрет в vault uri: url: https://vault.domain/v1/path_to_secrets/{{ inventory_hostname_short }} headers: X-Vault-Token: "{{ auth.json.auth.client_token }}" method: POST body: data: secret.json: "{{ result.stdout }}" body_format: json
Pit
забей на родной хашикорповский плагин, он днище
Pit
ну или вот авторизация аппроли - name: авторизуемся в vault.tcsbank.ru uri: url: "https://vault.domain/v1/auth/approle/login" method: POST return_content: false body: role_id: "{{ role_id }}" secret_id: "{{ secret_id }}" body_format: json status_code: 200 register: auth check_mode: false
Diana
https://pypi.org/project/ansible-modules-hashivault/
Diana
это этот модуль, да?
Ждун
ansible.windows.win_command: "C:\\Scripts\\extend-vm-due.ps1 -ComputerName \"{{computer}}\" -DueDate \"{{due}}\" >> C:\\Scripts\\ansible-task.log" fatal: [srv-mgm]: FAILED! => { "changed": false, "msg": "Get-AnsibleParam: Missing required argument: _raw_params" } ```
Ждун
моете подсказать в каком направлении читать?
Ждун
переменные заполняются правильно
Ждун
отдельно в винде такая команда срабатывает, пользователь от которого ансибл запускается права имеет, до этого команда win-copy тоже отрабатывает... сам скрипт powershell имеет 2 параметра, если это важно
Aleksey
я очень люблю питон (нет)
Aleksey
задалбало.
Aleksey
сколько можно то уже ansible_python_interpreter блин
Ждун
это мне ответ?
Ждун
какого?
Ждун
который я указываю в win_command? я win_shell Тоже пробовал, тоже самое
Ждун
такого параметра нет в моем скрипте, это что-то ансибливское
Ждун
единственное гугление показало что такая ошибка может возникать когда по пути нету скрипта, но я предыдущим таском его по этому пути копирую и как написал могу эту строчку на машинке виндошной исполнить
Pit
это этот модуль, да?
да, это тот модуль. Он не умеет писать в волт, только лукапить секреты в переменные
Pit
и делает это несколько специфично
Diana
и делает это несколько специфично
Не разрешили его взять... Сказали мучать штатное животное.
Diana
кого взять?
Модуль. Разрешили только hashi_vault
Diana
Который днище)
Pit
Модуль. Разрешили только hashi_vault
Ну как тебе сказать. Кушай кактус.
Diana
Ну как тебе сказать. Кушай кактус.
В любом случае спасибо)
Pit
не забудь hvac поставить
Diana
Угу...
Ruslan
всем привет, подскажите как быть в такой ситуации? FAILED! => changed=false msg: |- Command failed rc=1, out=, err=[0;1;31mSystem has not been booted with systemd as init system (PID 1). Can't operate.[0m [0;1;31mFailed to create bus connection: Host is down[0m fatal: []: FAILED! => changed=false msg: |- Command failed rc=1, out=, err=[0;1;31mUnknown command verb.[0m самый обычный модуль hostname на debian c systemv просто пытаюсь установить hostname
Ruslan
- name: сonfigure hostname hostname: name: "{{ hostname_name }}"
Ruslan
buster
Anonymous
Düster
tutunak
buster
О, а дебиане модно выбирать и не ставить systemd ибо вроде свежий
Николай
Дебиан доводит до суицида
V 🏴‍☠️
(нет)
Ruslan
https://docs.ansible.com/ansible/2.9/modules/hostname_module.html как этот use параметр в модуле заиспользовать? - name: сonfigure hostname hostname: name: "{{ hostname_name | default(inventory_hostname) }}" use: generic FAILED! => changed=false msg: |- Command failed rc=1, out=, err=[0;1;31mUnknown command verb
Ruslan
ansible --version ansible 2.9.9
Lamobot
Ну и странно, что вы используете generic, когда там есть debian