Отделение Bereke Bank
Alexander
Alexander
Кажется, оно https://stackoverflow.com/questions/50477012/how-to-use-a-dictionary-of-registered-ansible-variables-in-vars#targetText=Seems%20as%20if%20since%20%22%7B%7B,for%20what%20it%20actually%20is.
Отделение Bereke Bank
Можно подробнее?
Типа так
dict_name:
- { 'grafana_url': 'qwe', 'api_key':
rty' }
- { 'grafana_url': 'blah', 'api_key': 'blah' }
Alexander
Отделение Bereke Bank
dict_name - это будет одна переменная ?
- name: Import via API
uri:
url: "{{ item.grafana_url }}/api/dashboards/db"
method: POST
headers:
Accept: "application/json"
Content-Type: "application/json"
Authorization: "Bearer {{ item.api_key }}"
status_code: 200
body_format: json
body: "{{ lookup('file','dashboard.json') }}"
with_items: "{{ dict_name }}"
Отделение Bereke Bank
Так понятнее?
NS 🇷🇺
Коллеги, через delegate facts пытаюсь получить факты других хостов.
и если сделать
`- hosts: manage
tasks:
- name: Gather facts
setup:
delegate_to: "{{ item }}"
delegate_facts: True
with_items: "{{ groups['compute'] }}"
- name: Show facts
debug:
msg: "{{ hostvars[item]['ansible_fibre_channel_wwn'] }}"
with_items: "{{ groups['compute'] }}"`
то все замечательно
а вот если выполнить первый таск и скормить данные в jinja
~~~~
{% for host in openstack_hosts %}
{% for wwn in hostvars[host].ansible_fibre_channel_wwn %}
<Initiator Name="{{ wwn }}" ALUA="1" MULTIPATHTYPE="1" FAILOVERMODE="3" SPECIALMODETYPE="0" PATHTYPE="0"/>
{% endfor %}
{% endfor %}
~~~~
NS 🇷🇺
то получаю болт… Вопрос почему переменная в джинже не определена?
Alex
Запускаем ansible годное чтиво? Может кто посоветовать книгу не для навичков, где расжевываются азы из серии - как установить apache/php
Vitaly
Vitaly
Устарела уже но подходы актуальны
Alexander
Я сейчас читаю ansible up and running (на русском)
Anonymous
Привет. Помогите дурачку. Тыкаюсь уже час, не могу понять что не так. Есть машины master1, node1, node2. Ресолвяться, пингуются, ssh ключ прокинут туда, ssh коннект проходит без пароля, питон на них стоит 2.7.5, однако плейбуки не могут подключится, типа анричибл. Ткните дурачку куда копать.
Anonymous
Alexander
Написано же
Alexander
Anonymous
Инвертори как составлен?
[masters]
master1
[nodes]
# masters should be schedulable to run web console pods
master1
node1
node2
[etcd]
master1
Alexander
Alexander
Дефисы слитно
Anonymous
ansible-inventory - - list
{
"_meta": {
"hostvars": {}
},
"all": {
"children": [
"ungrouped"
]
}
}
Alexander
Гы, вот и нету у тебя ничего
Alexander
Нет никакой информайции по подключению
Anonymous
поясни или ткни линком на доки
Pavlo
Anonymous
NS 🇷🇺
Anonymous
username =)
Причём тут юзер гейм если тут речь о анричибл?
NS 🇷🇺
ну вы можете дальше упарываться в свой анричибл
Anonymous
Ок, я попробую
NS 🇷🇺
NS 🇷🇺
замазано -u username
Alexander
Anonymous
ладно, я дурачок
Anonymous
заработало, чего уж тут
Anonymous
просто по какой-то причине оно не съедало переменные из ансиблкфг. пришлось хардкодить в хостс
[nodes]
master1 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant
node1 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant
node2 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant
Alexander
ansible --version видит ansible.cfg ?
Anonymous
Показывает не туда, не видит нужный файл
Anonymous
Руками поправить можно же?
Anonymous
поправил, заработало
Ivan
а я тут недавно мучался с конструкцией {% if datastream_whitelist_access and datastream_whitelist_access is defined and ... — вылетала, если переменной нет
оказалось, если поменять местами({% if datastream_whitelist_access is defined and datastream_whitelist_access ), то прокатывает. Это приколы оптимизатора или выполнение слева направо?
NS 🇷🇺
Всем утра. А кто как решает вопрос получения живых хостов из инвентори и работы исключительнро с ними, пропуская те, что недоступны по разного рода причинам
NS 🇷🇺
через shell: ping как то не очень здорово =(
Алексей
Подскажите, пожалуйста, как быть.
Разбрасываю на хосты паблик ключи для ssh.
Потом локально для успешно добавленных ключей с помощью blockinfile или lineinfile добавляю записи о приватном в. ssh/config.
Но такой нюанс, кто последний закрыл файл информация того и сохранилась. Как быть? Как обойти этот нюанс? Сейчас складываю в файлы с постфиксом(config.{ip}) в надежде в будущем поправить.
Vladislav 👻
Так оно само же
Vladislav 👻
Vladislav 👻
Lamobot
Timur
Timur
ignore_unreachable: true
Timur
Timur
NS 🇷🇺
В каком смысле?
ну я собрал в список хосты которые у меня соответствуют условию (по ним плейбук не запускается), дальше я собираю по нему факты, пропуская офлан хосты с ignore_unreachable: true
а потом в шаблонизаторе ипользую
if host in host_list и т.к в хост лист у меня есть оф хосты, то переменная будет не определена и я получу ошибку
NS 🇷🇺
я не исключая, что я туплю =)
Timur
Timur
Еще есть служебные переменные вроде ansible_play_batch
Timur
Куда включаются только активные хосты плея
NS 🇷🇺
Timur
Можно просто луп по ansible_play_batch использовать тоже
Timur
Timur
Что за странная магия?
NS 🇷🇺
Что за странная магия?
на нодах управления (manage) по которым у меня идет плейбук
я собираю WWN от HBA адаптеров с группы хостов openstack_hosts через делегирование
затем на manage генерится конфиг, в котором указаны все собранные WWN
Timur
Timur
Не проще нормально по хостам в плее факты собрать и через delegate на manage уже конфиг генерить?
NS 🇷🇺
да одинаковые телодвижения практически
Timur
Timur
delegate имеет смысл делать как раз для тасков на единичных хостах
Timur
А для тасков на группах обычное параллельное исполнение эффективнее
NS 🇷🇺
по этому я и выбрал свой вариант. Тк для этой задачи на тех хостах ничего больше не исполняется
NS 🇷🇺
Timur
Попробуйте сделать как я предложил. Должно получиться значительно проще по-моему
NS 🇷🇺
Andrey Pavlov
Добрый день! Подскажите пожалуйста, пытаюсь подружить ansible с mikrotik. Соединение по ssh сертификату. Выполняю play book с командой raw, выполняется только первая задача и стопорится, дальше не идёт. В чём может быть дело?