Timur
Sergey
Книги у Джеффа Гирлинга уже больше не бесплатные. #geerlingguy
Mai
ну так они здесь вроде лежат прям в чатике уже :)
Sergey
Я про то, что закреп уже смысла не имеет.
Александр
есть
[
{
"ipaddress": "10.1.36.32",
"macaddress": "0C:C4:7A:FE:FC:FE",
"name": "eth0"
},
{
"ipaddress": "10.1.36.33",
"macaddress": "0C:C4:7A:FE:FC:FF",
"name": "eth1"
}
]
из этого нужно получить
{
"eth0": {
"ipaddress": "10.1.36.32",
"macaddress": "0C:C4:7A:FE:FC:FE"
},
"eth1": {
"ipaddress": "10.1.36.33",
"macaddress": "0C:C4:7A:FE:FC:FF"
}
}
Помогите пожалуйста
Victor
Александр
ну у меня это содержится в некой переменной и это надо скормить модулю cobller_system в немного другом формате
Mai
python или php может справится, на bash прийдется постараться, внутри анзибля даже думать не хочу как это сделать 🙂
Александр
jinja filters конечно
Victor
Victor
Или свой фильтр написать
Александр
мне бы ещё name удалить
Victor
на фильтрах прям красиво выглядит
Victor
Vitaliy
Кто знает, для ansible-lint имеет ли значение какая установлена версия ansible?
Есть ли смысл гонять линт с версиями 2.9, 2.8, 2.7 ? Чтобы получить подтверждение совместимости с этими версиями ansible.
Sergey
Victor
а, перечитал правила, сорян
Victor
чуть позже нормально оформлю
Ivan
Ждун
кто нибудь сталкивался? module: mail, Amazon SES
SMTPDataError: (554, "Transaction failed: Missing final '@domain'")
Ждун
с точно такими же кредами проверил на powershell - письмо доходит без проблем
Grek 🇺🇦
Пойдет и пастебина, все что угодно лишь бы не полотна в чате
Victor
https://gist.github.com/vlitvin/a76977e03c12d007d89a88df4bd50fe7
Отделение Bereke Bank
У кого нибудь есть пример 3-й молекулы с DigitalOcean драйвером? В документации нихера 😡
Timur
Александр
да я уж фильтр на питоне написал
Александр
но так или иначе, альтернативная реализация интересна
Timur
Встроенных хватит
Александр
вот только мне мозгов не хватило))
Sergey
АЛЕРТ! Простыня в чате!
Timur
Timur
myvar:
- ipaddress: "10.1.36.32"
macaddress: "0C:C4:7A:FE:FC:FE"
name: "eth0"
- ipaddress: "10.1.36.33"
macaddress: "0C:C4:7A:FE:FC:FF"
name: "eth1"
Александр
не очень подходит, т.к. кроме ip и мака, могут быть gateway и прочее
Timur
Добавляете любые свойства аналогично
Timur
Или вам в общем виде для произвольных ключей нужно?
Timur
В исходной задаче про gateway и прочее ничего не было
Александр
ну они могут быть, а могут и нет. В стандартном сценарии использования только ip и МАС, но всякое бывает, позможно придётся и статику серверам прописывать
Sergey
Александр
[root@cobbler ansible]# cat roles/cobbler_system/filter_plugins/dicts.py
#!/usr/bin/python
class FilterModule(object):
def filters(self):
return {'myitems2dict': self.myitems2dict}
def myitems2dict(self, dict_list, key):
rv = {}
for i in dict_list:
key_name = i[key]
i.pop(key, None)
rv[key_name] = i
return rv
Александр
для меня приемлимое решение, хоть я и не питонописатель
Timur
Sergey
Victor
Александр
ну чтобы name удалить
Александр
del ругался что ожидает число, я здался - сделал pop
Victor
А. Полность прочитал листинг. Понял
Timur
Дает тот же результат на произвольном наборе ключей
Александр
👍
Timur
И не требует кастомных фильтров
Александр
возьму на вооружение
Alexey
ПРиветствую, возможно кто-то делал уже похожее. Получаю в переменную некую строку, в ней имя хоста, далее мне необходимо выполнить действие только если это имя хоста существует в инвентори. Вопрос в том как when написать?
Vitaliy
Уже наверное всё перепробовал, не могу понять как переопределить некоторые переменные на уровне converge.yml в Molecule.
Использую import_playbook. Пробовал и перечислить в vars, и -include_vars, и vars_files:
толку нет, не переопределяет.
C помощью debug var вижу, что на этапе Converge у переменной нужное значение,
TASK [var debug] ***************************************************************
ok: [10.172.0.17] => {
"firewall_enable_ipv6": false
но после import_playbook при выполнении нужной задачи вижу, что прежнее.
TASK [ansible-role-firewall : var debug] ***************************************
ok: [10.172.0.17] => {
"firewall_enable_ipv6": true
Подскажите, если знаете как правильно.
Vitaliy
Сейчас попробую в другом месте...
provisioner:
name: ansible
inventory:
group_vars:
Vitaliy
Sergey
Sergey
Oleg Y.
извините, я провтыкал, почему ansible_play_hosts_all не подходит вместо hostvars.keys?
Oleg Y.
Anonymous
Добрый день. Добавляю переменные из файлов с помощью include_vars и with_items
''' include_vars:
file: "{{ item }}"
with_items:
- "file1"
- "file2"
если один из файлов отсутствует, таска фейлится. Можно ли как-то продолжить выполнение таски если один из файлов отсутсвует. ignore_errors просто скипает всю таску и не добавляет переменные из файла.
Антон
Антон
И почитайте разницу между инклуд и импорт - это важно
Anonymous
Гайрат
Lamobot
Гайрат
Ян
здравствуйте товарищи!
есть вопрос к пользователям AWX с Hashicorp Vault:
как решали проблему обновления токена?
Nikolay
Есть ли способ в процессе выполнения плейбука перечитать и снова загрузить в память все переменные, которые ansible читает при запуске из group_vars и host_vars?
У меня создаются динамически переменные в host_vars/<server_name>/dynamic_vars.yaml. Мне нужно иметь возможность прочитать их через hostvars['web01']['host_pub_key'] при выполнении `playbook_02.yml.
- import_playbook: playbook_01.yml
# update inventory in-memory
- import_playbook: playbook_02.yml
Ян
Ян
или как-то изворачиваться с фактами