Timur
Вы знаете, что вам нужно сделать вообще?
Tadeusz
применения uri модуля в данном контексте
Tadeusz
знаю, мне надо файлы заикнуть и запушить в нужную ветку
Timur
С помощью curl вы это умеете делать?
Timur
Вот есть онлайн-конвертер команд curl в настройки модуля ансибл:
https://curl.trillworks.com/#ansible
Lev
Ждун
kSandr
Ждун
пипец, вы считаете, что если кто-то поделился ссылкой на ресурс, то без этого ресурса он не может жить или сам пользуется им?
Womchik
Womchik
Lev
В Ansible мире грядут большие изменения.
1. будет ansible-basic который будет поддерживаться core командой, все остальное уходит в коллекции
2. в molecule остается только docker Драйвер и ansible verifier по умолчанию
как я понимаю происходящее, то хотят уменьшить бремя поддержки кодовой базы в проектах, а расширяемость уходит в плагины. теоретически так можно будет доставлять фичи быстрее.
Можно почитать по теме:
* https://github.com/ansible-collections/overview/blob/master/README.rst
* https://github.com/ansible-community/molecule/blob/master/CHANGELOG.rst#changelog
* https://www.jeffgeerling.com/blog/2020/collections-signal-major-shift-ansible-ecosystem
* https://www.ansible.com/resources/videos/ansiblefest-atlanta-2019
Anonymous
Добрый день, подскажите пожалуйста, как реализовать вынос with_items из роли в extra-vars, чтобы роль потом в плейбуке единожды запускалась
UglyKoyote
роль это роль, вифайтем идёт по дефолту к таске
UglyKoyote
не совсем понятно что именно надо
UglyKoyote
если таск один раз, ну убери вифайтем
Anonymous
Нет , в смысле получить такой же результат отработки, но переменные передавать циклом, причем переменных количество может быть разное, например передача рулов(порты, айпишники) в фаервол
Timur
Timur
Знаете первое правило переводчика? "Дай контекст"
Aleksey
Pavel
Коллеги добрый день,
вопрос по доступу к значениям на разных уровнях JSON файла.
например есть файл вида
{
"dashboard": {
"_8IXs90iz": {
"display_name": "icingaweb2-cpu_memory",
"folder": "icingaweb2",
"tags": [
"prod",
"icingaweb2",
"influxdb",
"server",
"git"
]
и так далее
хочу в переменные получить значения начиная от uid дашборда (в примере это "_8IXs90iz")
как до этого уровня добираться если, значение uid не известны?
конструктив на ansible
tasks:
- name: Print dic
debug:
msg: "User {{ item.key }} is"
loop: "{{ lookup('file', '/opt/gitlab/cmdb/cmdb_service_grafana.json') | from_json | dict2items }}"
delegate_to: 127.0.0.1
или я неправильно подхожу к вопросу?
Pavel
Наверно я понял сам, конструкция:
- set_fact:
dict: "{{ (lookup('file', '/opt/gitlab/cmdb/cmdb_service_grafana.json') | from_json).dashboard }}"
дает тот уровень который нужен
Lev
Aleksey
Ivan
Lev
В каком смысле?
интересно посмотреть молекулу 3 в паблике и примерить на свои репы.
Aleksey
Aleksey
2.22 топчик
Ivan
Главное, зачем щас этим страдать, ага
Aleksey
Возможно на трешке надо делать новые роли
Aleksey
Но точно не в ноке
Pavel
Коллеги, проясните про коллекции
https://docs.ansible.com/ansible/latest/user_guide/collections_using.html
это должно работать с дефолтным конфигом ансибла, или надо доконфигурить его аутентификацией с галакси
ибо хочу поставить
https://github.com/ansible-collections/grafana
а пишет
Process install dependency map
ERROR! Failed to find collection community.grafana:*
и куда дальше - непонятно (
Ждун
ошибка в какой момент возникает?
Mustapha
Hello
Somebody has rhce ansible
Pavel
ошибка в какой момент возникает?
зависимости
/.ansible/collections/ansible_collections$ ansible-galaxy collection install community.grafana
Process install dependency map
ERROR! Failed to find collection community.grafana:*
Ждун
ansible version 2.9 же?
Ждун
и что то в гэлакси не могу найти коллекцию community.grafana
Ждун
зато есть другая ansible-galaxy collection install rrey.grafana
Ждун
https://galaxy.ansible.com/rrey/grafana
Pavel
administrator@pmk-cm01:~/.ansible/collections/ansible_collections$ ansible --version
ansible 2.9.4
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/administrator/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.17 (default, Nov 7 2019, 10:07:09) [GCC 7.4.0]
Pavel
версия нужная, мне эта коллекция из-за одного фикса нужна
Ждун
и в ссылке на гитхабе есть вчерашний баг, где собираются запостить в гэлакси
Pavel
Pavel
Pavel
теоретически успех (если я каталогами не напутал конечно ) )
$ ansible-galaxy collection install community-grafana-0.1.0.tar.gz
Process install dependency map
Starting collection install process
Installing 'community.grafana:0.1.0' to '/home/administrator/.ansible/collections/ansible_collections/community/grafana'
Pavel
Все работает, спасибо
суть была в том что используя модуль в текущем релизе нельзя было импортнуть дашик графаны,
экспорт работал, импорт нет (я так понял ошибка тянулась с прошлого года)
фикс в коммунити релизе стал доступен 9 дней назад
в офф релиз исправление войдет с версией 2.10
кому нужно, могу поискать все ссылки )
Ждун
👍
Jungo
доброе утро всем!
кто знает почему такое проихсодит
обращаюсь к характеристике хоста из inventory в шаблоне так:
server_name
www.{{ ansible_fqdn }}
{{ ansible_fqdn }};
но когда тоже самое пытаюсь сделать из файла плейбука
- name: create test index.html
copy:
dest: "/var/www/html/index.html"
content: |
{{ ansible_fqdn }}
получаю вместо значения ansible_fqdn значение inventory_hostname
может надо как-то по другому обращаться к таким характеристикам host из inventory?
понимаю что это массив и надо как-то конкретнее обратиться
пробовал обращаться через hostvars но все равно вижу значение inventory_hostname вместо ansible_fqdn
но если обращаюсь через hostvars к ansible_host то значение корректное
Timur
Timur
Факты вида ansible_hostname и ansible_fqdn сильно зависят от локального окружения и настроек днс
Anonymous
Привет коллеги!
Хочу сделать страничку на python чтобы собирать данные и передавать в ansible
Наверняка здесь есть куча решений, подскажите правильное.
Anonymous
Нашел типа такое https://blog.daftcode.pl/ansible-python-web-apps-deployment-on-wheels-d3c248dec9f2
Anonymous
Alexey
Может кто ни будь подсказать, как лучше в ансибл состряпать вот такой вот acl в файле, с сохранением отступов:
acl {
allow 172.20.0.0/24;
allow 172.21.0.0/24;
deny all;
}
Думал использовать vars.. но что то с playbook не срастается у меня ☹️
vars:
acl:
allow: [ 172.20.0.0/24, 172.21.0.0/24 ]
deny: [ all ]
Alex
конечная цель какая?
Alexey
вот такое вот в файле создать:
acl {
allow 172.20.0.0/24;
allow 172.21.0.0/24;
deny all;
}
Alex
так может template юзать?
Alexey
так может template юзать?
да через template и хотел, но количество строк в acl будет меняться и не знаю как сделать это списком с отступами
Alexey
всё что у меня получается это что то такое:
acl {
allow 172.20.0.0/24;
allow 172.21.0.0/24;
deny all;
}
Alex
Sergey
Sergey
тебе по ходу макросы нужны, потому что это и не джсон, и не ямл....
Anonymous
Anonymous
Как за компом буду гляну, если не нагуглите
Anonymous
Anonymous
Пока тока вот такой костыль придумал, интересно, а как переменными туда адреса передавать?
UglyKoyote
жижу юзай а не костыли
UglyKoyote
тем более у тебя темплейт
Alex
подскажите по бест практис. Если у меня есть таск, например генерирование отчета, который используется множеством ролей, то его лучше вынести в отдельную роль?
Maksim
Ivan
Ivan
ну я бы наверное в переменную положил, нежели несколько раз одно и то же вызывать
Alex
положить таски в переменную?
Ivan
если он одинаковый всегда, конечно