Alexey
в том то и дело, что там комент. Ошибка плавающая, на 3х хостах все норм, на одном возникает такая ошибка
Проверяешь руками ( apt-ом) на том хосте. Если ошибка та же, то ансибл, внезапно, не при чём :)
Georgy Kharitonov
ребята, привет. как мне из переменной типа ключ-значение сделать список, состоящий из только значений? условно говоря, есть: var: key1: ['value1','value2'] key2: ['value3'] на выходе должно быть типа ['value1','value2','value3'] что-то туплю с утра.
Alex
Такое ощущение, что где-то не закомменчено /перенос строки или ещё что-то подобное
у меня подозрение вот на это ## Note, this file is written by cloud-init on first boot of an instance ## modifications made here will not survive a re-bundle. т.е. на момент запуска raw модуля файл еще не полностью сформирован. Ибо когда я захожу и запускаю руками apt, то все работает
Отделение Bereke Bank
Соре щас на пастебин кину. Оказса портянка
Отделение Bereke Bank
пытаюсь поставить AWX. Вроде все требования к хост системе выполнены (всякие pip-ы и прочее). Выходит ошибка Не пойму в чем дело https://privatebin.net/?b2370c0821fc2e2e#8Pnb7gNCRj5J1u5JLEQ8LPsf5KMbTik99JacetK9zTLe
UglyKoyote
а модули к питону все в наличии?
Отделение Bereke Bank
ну он просил только docker и docker-compose - я и поставил
UglyKoyote
а что в самой роли local_docker? я бы попробовал в ручную "повторить". ну или системные логи смотреть, может там больше деталей
Timur
ребята, привет. как мне из переменной типа ключ-значение сделать список, состоящий из только значений? условно говоря, есть: var: key1: ['value1','value2'] key2: ['value3'] на выходе должно быть типа ['value1','value2','value3'] что-то туплю с утра.
Вот ради интереса попробовал: myvar: key1: - value1 - value2 key2: - value3 key3: - value4 - value5 - value6 - name: Debug myvar_list debug: msg: >- {{ myvar.values() | sum(start=[]) }} TASK [Debug myvar_list] ok: [localhost] => msg: - value1 - value2 - value3 - value4 - value5 - value6
Aleksandr
извини, но в моем мире это нифига не очевидно =) "unhashable type list" != "мне нужна строка, а не список". если бы было написано конкретно что ему нажна строка... глупая ошибка, да. Спасибо за разъяснения. А можно как-то передать список к селектатрибуту? сейчас я делаю var = list | join('|') и потом селектатрибуту передаю уже строкой все элементы разделенные символом | - типа регулярка.
Отделение Bereke Bank
а что в самой роли local_docker? я бы попробовал в ручную "повторить". ну или системные логи смотреть, может там больше деталей
там простое - name: Start the containers docker_compose: project_src: "{{ docker_compose_dir }}" restarted: "{{ awx_compose_config is changed or awx_secret_key is changed }}" register: awx_compose_start
Отделение Bereke Bank
AWX install-ер же должен работать с python 2.7?
Отделение Bereke Bank
сделал pip install more-itertools==5.0.0. Все завелось 😒
UglyKoyote
я не ставил AWX, пока повода нету пощупать
UglyKoyote
но ошибка намекала на проблемы у питона с модулями. что ты и подтвердил)
Отделение Bereke Bank
https://github.com/erikrose/more-itertools/issues/272#issuecomment-462612920
Отделение Bereke Bank
это жесть конечно. Редхатовский продукт с таким гемороем ставится на редхатовской ОС. Могли бы и облегчить задачу с установкой, раз уж CentOS 7 остается с python 2.7 до конца своих дней
Aleksandr
Посоны, а как смержить 2 списка в новый список? list1: - value1 - value2 list2: - value3 хочу получить: list3: - list1: - value1 - value2 - list2: - value3
Vladislav 👻
list3: - {{ list1 }} - {{ list2 }}
Дмитрий
Добрый день. Коллеги, подскажите пожалуйста. Если у меня есть сервер управления с админской учеткой ADM323 и 3 хоста, 2 из которых с учетками ADM323, а на третьем есть только учетка administrator. Если я хочу удаленно управлять всеми машинами, то мне нужно либо создать пользователя ADM323 на третьем хосте, либо в инвентарном файле добавить ansible_user=administrator (и добавить ключ, либо вписать пароль)?
Aleksandr
list3: - {{ list1 }} - {{ list2 }}
нет, это не то. получается во так: ok: [xxx] => { "list3": [ [ "value1", "value3", "value 5" ], [ "value2", "value4", "value 6" ] ] }
Дмитрий
Если они все в одной группе, лучше не разводить зоопарк, а везде использовать одну учетку
Да, в одной. Просто сейчас срочно возникла необходимость сделать именно так. За совет спасибо, буду приводить все к одному виду.
Tamerlan
имею такую структуру: . ├── ansible.cfg ├── inventories │ ├── development │ │ ├── group_vars │ │ │ └── all.yml │ │ └── hosts │ └── production │ ├── group_vars │ │ └── all.yml │ └── hosts ├── playbooks │ └── base.yml ├── README.md └── roles запускаю роль так: ansible-playbook -i inventories/development/hosts playbooks/base.yml переменные из inventories/development/group_vars/all.yml не подхватываются - в чём может быть проблема?
NM
Как env прописал ?
Sergey
ansible-playbook -i inventories/development playbooks/base.yml
Sergey
вот так надо, чтобы inventory указывал на каталог
Sergey
тогда будет работать вся нужная магия
NM
Вот вот
Tamerlan
а, оказывается я переменную проверял неправильно :)
Tamerlan
как я делал, так тоже работало
r
подскажите best practices по использованию ролей из galaxy. хороша ли идея создавать свою роль и в ней через defaults указывать импортированную роль, чтобы если потребуется обновить добавленную роль, все настройки в ней не слетали. или не стоит заморачиваться и сразу вносить изменения в готовую роль?
Nikita
вот так надо, чтобы inventory указывал на каталог
Сижу решаю точно такую же проблему:) Спасибо:)
Nikita
Как раз в доке прочитал про это
Artem
Добрый день, подскажите пожалуйста есть ли служебная переменная в ansible которая возвращает имя группы в inventory в которой состоит хост? Например как {{ inventory_hostname }} только получить название группы в которой он состоит?
Alex
group_names List of groups the current host is part of
Nikolay
Ребят, привет! Использовал ли кто-нибудь nmap как dynamic inventory? Вопрос с группировкой возник
Dmitry
O_o
не ответил вовремя на пинг - не сервер
Nikolay
O_o
https://docs.ansible.com/ansible/latest/plugins/inventory/nmap.html
Sergey
Это правда про инфраструктуру как код?
Sergey
Dmitry
вот да, наверное так
Но раз есть официальный плагин - даже тег "странно" не повесить 😛
Nikolay
ну скорее какой динамик инвентори особой роли не играет, у них вроде одинаково выдает _meta, hostvars. Хочется использовать параметр groups к хостам у которых в ports есть 22 { "_meta": { "hostvars": { "mytestserver.domain.ru": { "ansible_host_key_checking": false, "ansible_ssh_private_key_file": "/Users/ansible/id_rsa", "ip": "10.10.100.3", "ports": [ { "port": "22", "protocol": "tcp", "service": "ssh", "state": "open" } ] } } } но вот как достать с помощью Jinja2 не могу понять
Sergey
..... но зачем?
Nikolay
есть пул серверов в подсети 24, nmap’ом пройтись и посмотреть у кого 22 порт открыт, отнести их к группе Linux к примеру.
Logan
есть пул серверов в подсети 24, nmap’ом пройтись и посмотреть у кого 22 порт открыт, отнести их к группе Linux к примеру.
не проще сделать так один раз? у вас в пуле появится левый сервер и вы его тоже в список внесете?
User
Можно нмапом отсканить по операционкам, а потом файл получившийся распарсить в разные по осям.
Sergey
левого не появится, может просто повится новый
эмммм, намекаю: ваш процесс обслуживания инфры предусматривает _сампроизвольное появление_ хостов?
Nikolay
не самопроизвольное, просто если он появился, то все необходимые действия на нем выполнятся автоматом
Logan
не самопроизвольное, просто если он появился, то все необходимые действия на нем выполнятся автоматом
что мешает при развертывании ставить туда, к примеру, консул-агент? И использовать инветори оттуда?
Logan
меня не покидает ощущение, что вы подгоняете задачу под решение. Решение выглядит странно.
Nikolay
Как представляю флоу: - новый сервер в инфре - проходится скрипт и определяет на Linux, ставит консул агента - Ставит нод экспортера
Nikolay
но зачем?
но зачем если можно сделать руками?
Nikolay
но зачем?
как по другому тогда
Sergey
как по другому тогда
в хосте изначально их держать не хотите?
Sergey
@Nikolay правильный ответ звучит так: вот исходники того куска кода, который обеспечивает поддержку keyed_groups. Здесть есть примеры. https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/inventory/constructed.py
Logan
как по другому тогда
как вы ставите машины?
Nikolay
как вы ставите машины?
виртуализация развертывает и выдает доступ по ssh
Logan
OVF template или все-таки загрузка по сети и запуск unattended-инсталлятора?
Nikolay
не знаю, получаю по указанным параметрам машину и далее уже доустанавливаю то чего не хватает