Eduard
она выше ...
Eduard
yeah.
Timur
В чем неудобство-то?
Timur
Из ваших слов это трудно понять
Eduard
Ещё пачка ямлов в репу, новые окружения заводить НЕ на aws боль, "переезд" c ansible-galaxy init тоже не в 5 минут укладывается.
Timur
В чем боль с не-aws?
Timur
О каком переезде с ansible-init идёт речь?
George
Какая пачка? Один файл на сценарий?
а сколько сценариев понадобится всего?
George
О каком переезде с ansible-init идёт речь?
это я вообще не понял, но я не настолько крут в ансибле )))
Eduard
molecule init умеет только в "чистый" init
Eduard
Рецепта по переезду не нагуглил
Timur
molecule init умеет только в "чистый" init
Чем чистый отличается от грязного?
Rasim
Приветствую! Подскажите, пожалуйста, best practice по копированию ключей ssh. Есть task, который под нерутом с sudo копирует ключи, тут все ок. Но я его хочу добавить в плейбук, и дальше остальные task выполняются из под root. И вот можно ли для отдельного task указать отдельного ansible_user?
Rasim
или вытащить в отдельный role с указанием ansible_user в vars?
Rasim
проблема в том, что стоит PermitRootLogin no то есть сначала нужно подключиться не из под рута, положить ключи, и дальше подключаться под рутом
⁠
зачем?
⁠
у вас вроде судоер есть
⁠
пусть он и делает рутовые таски
Rasim
вот и спрашиваю best practice
⁠
ну вон как выше Тимур написал
⁠
бест практис в эскалации прав только там, где необходимо
Rasim
ок, спасибо
DiNGeR
Добрый день. В инвентори можно задать диапазон хостов, а можно ли для переменной использовать тот же принцип? Что-то такого вида: [app] app[10:25] ansible_host=192.168.0.[10:15] Возможно в yaml формате инвентори такое возможно? Или еще каким образом? (dns`а нет) Пока вижу вариант создать пачку host_vars скриптом. Заранее спасибо!
George
тебе просто инвентори нужно создать так?
George
задача одноразовая? или список серверов будет постоянно меняться?
DiNGeR
Одноразовая, вопрос больше академический.
George
я бы jinja2 сгенерил и не парился
George
в остальном - динамический инвентори, не?
DiNGeR
Из того что я понял - динамические для хостов в облаке(откуда можно взять перечень vm для инвентори), но почитаю еще. А про "я бы jinja2 сгенерил" - можете кинуть ссылку на пример? А то уже запутался в обилии всевозможных док и статей из блогов И похоже мне рано лезть в такие дебри))
George
ну, пишешь шаблон
George
gaal@linux-x1:~/GL> cat config.j2 {% for shop in shops %} Host {{ shop.name }}.via hostname {{ shop.ip }}
George
типа такого. Можно использовать нормальный for loop с числами - джинджа же!
George
j2 -f yaml config.j2 variables.yaml > hosts
George
никакого рокет сайенса. Мне лично проще цикл на джиндже, чем писать скрипт на пихтоне, либо вбивать руками
DiNGeR
О! Спасибо! Про jinja еще не читал, будем пробовать.
Anonymous
Добрый день. Подскажите пожалуйста на тему inventory plugins. https://docs.ansible.com/ansible/latest/plugins/inventory.html Есть у меня инстансы с такими тегами tags: Name: Yurii/Fisakov ServiceType: swarm_worker Как-бы мне сделать из всех инстансов с тегами swarm_worker ansible группу workers?
Anonymous
Там есть пример на сайте, но я често говоря не понял логику. # add hosts to the group development if any of the dictionary's keys or values is the word 'devel' groups: development: "'devel' in (tags|list)"
Anonymous
Спросил - отвечаю. keyed_groups: - prefix: tag key: tags
Pavel
всем привет. подскажите, почему на python3 вот это отрабатывает ок: - name: Generate .env config template: src: .env.j2 dest: ./../.env А на python2 валится с ошибкой: fatal: [localhost]: FAILED! => { "msg": "Failed to get information on remote file (./../.env): /bin/sh: /usr/bin/python3: No such file or directory\n" }
.
"/usr/bin/python3: No such file or directory"
Pavel
ой, оформил вопрос и сам понял
Pavel
взгляд прицепился к первой части строки =))
.
это нормально каждый уважающий себя программист должен иметь резиновую уточку и время от времени консультироваться с ней
Pavel
да-да
.
какоето env подозрительное
.
https://unix.stackexchange.com/questions/29608/why-is-it-better-to-use-usr-bin-env-name-instead-of-path-to-name-as-my нету ли тут какой-то путаниццы с именем файла, шебангом и выбором интерпретатора
Pavel
Пасиб, почитаю
simplemice.eth
я вам интересного принес... https://gitlab.com/redhatsummitlabs
Max
спс
simplemice.eth
еще бы оно было бы не годно
es]x
доброго, подскажите что лучше использовать и вчем различия между gtoup_by и add_host
Timur
доброго, подскажите что лучше использовать и вчем различия между gtoup_by и add_host
group_by - это для dynamic inventory, скорее, где группы удобно создавать на основе собранных фактов
Timur
add_host - более общий модуль, позволяющий менять инвентарь любым способом, и создавая любые группы
es]x
👍 спасибо
Bakhriddin
всем привет, подскажите что я делаю не так? руагется что ошибка с переменной
Roman
ты регистрируешь вывод команды, распечатай ее через debug: msg увидищб что там не то что ты хочешь
Timur
всем привет, подскажите что я делаю не так? руагется что ошибка с переменной
Зареганная переменная - это словарь. Просто так ее в строке вызывать нельзя без нужного ключа
Timur
Про лютый башсибл промолчу
Bakhriddin
)))
Bakhriddin
укажи путь к нужной доке)
Timur
а как вызывать?
- debug: var: javahome
Bakhriddin
- debug: var: javahome
аа понял, нужно вызвать не только переменную но и в моем случае ключ stdout
Timur
аа понял, нужно вызвать не только переменную но и в моем случае ключ stdout
В вашем случае лучше бы научиться получать данные не с помощью башсибла
Timur
Рекомендую внимательнее изучить вот этот модуль: https://docs.ansible.com/ansible/latest/modules/stat_module.html
Bakhriddin
В вашем случае лучше бы научиться получать данные не с помощью башсибла
все таки модуль stat не подойдет к моему кейсу т.к. на разных серверах разные пути к java truststore
Bakhriddin
Если честно, не понял связи
на разных серверах разные пути к хранилищу ключей, куда мне нужно импортировать сертификат. для получения пути вместо башсибла вы посоветовали использовать модуль stat, но я не нашел вариант его использования в своем кейсе, или я что-то не так понял
Div
ок, попробую
тут мой корявый пример https://pastebin.com/raw/CYPrvuHu
Oleg
коллеги! использую модуль lineinfile, хочу построчно вставить с with_items несколько строк, но почему то необходимы список вместо построчно вставляет все сразу. lineinfile: line: строка {{ item }} with_items: - "{{ var.stdout_lines | list | join('\n') }}" var.stdout_lines это: "первая", "вторая", "третья"
Oleg
подскажите плиз что тут не так?