Egor
короче S in Mitogen stands for security
А можешь пояснить?)
Vadim
Подумайте зачем был придуман sudo, если есть su и one sudo invocation per user account
Dmitry
Подскажите, есть у меня вот такие vars hosts: - name: alpha ip: 192.168.0.1 - name: beta ip: 192.168.0.2 - name: gamma ip: 192.168.0.3 и вот я хочу в темлпейте обратится типа вот так hosts[ansible_hostname].ip
Dmitry
как бы это сделать?
Vadim
hostvars[host]['foo']
𝔹𝕠𝕣𝕚𝕤
Так не получится, тут hosts массив, а не dict
𝔹𝕠𝕣𝕚𝕤
Через зад только (hosts|selectattr('name', 'eq', 'hostnamehere')|first)['ip']
𝔹𝕠𝕣𝕚𝕤
Лучше в хэш превратить hosts
Dmitry
я вот думаю, я не лучше ли host_vars тогда заюзать
Dmitry
как то всрато получается
Dmitry
@tnt4brain может когда проснется подскажет )
Sergey
У тебя список (list) dict'ов. Значит, напрямую к нему обратиться нельзя - только через фильтр, который пробежит весь список. Ну и всё уже придумано до нас: https://stackoverflow.com/questions/31895602/ansible-filter-a-list-by-its-attributes
Sergey
Самый простой вариант, кстати - через Jinja-операторы наколбасить нужное.
Sergey
(последний ответ по ссылке)
Dmitry
(последний ответ по ссылке)
Спасибо, ну и всем ребятам выше )
Sergey
Тока эт, если ты всерьёз прям ночью с сб на вс ваяешь на Ансибле, то, на мой взгляд, подходящий эпитет будет, наверное, "суровый челябинский мужик".
Sergey
😊
Anton
Ребят, помогите советом https://toster.ru/q/582454
Artur
адрес можно достать из ansible_facts
Artur
читай тут https://docs.ansible.com/ansible/2.7/user_guide/playbooks_variables.html
Anton
читай тут https://docs.ansible.com/ansible/2.7/user_guide/playbooks_variables.html
достать IP я могу. я не могу добавить его в default/main.yml
Artur
ты хочеш что б он там в виде 192.168.1.1 и т.п. появлялся ?
Anton
да
Artur
плейбук зарание предопределённый сценарий, который запускается на локалке и выполняется на удалённом хосте. как ты его "на лету" собрался менять ?
Danila
Коллеги, всем привет! Я собираю плейбук в котором подготавливаю хосты ( таски бегут по всем хостам ). Потом Инициализирую мастерхост ( запуск на одном хосте ) и подключаю слейвы. Как правильно будет указывать в плейбуке/роле на каких хостах что делать? Сейчас в мыслях сделать 2 роли ( мастер и слейв ). Но не будет ли это усложнять? возможно ли есть воркэраунд какой-то
citius
всем привет. есть проект со стандартным вроде бы располжением директорий, и тестовый плейбук, который просто выводит пару ENV переменных, и значение переменной из group_vars/all.yml. при запуске руками все работает. при запуске из AWX, содержимое ENV инжектится и отображается корректно, а вот значение переменной из group_vars - 'VARIABLE IS NOT DEFINED!' инвентарь в AWX выставлен правильный, это видно по айпишникам хостов, которые обрабатываются. есть какие-то различия при запуске из AWX, которые нужно учитывать? Доку пошерстил, чето не нашел ничего похожего. :( . ├── inventories │ ├── test │ │ ├── group_vars │ │ │ ├── all.yml ... └── test.yml
Artur
хм. структуру точно верно описал ?
Artur
group_vars должна лежать рядом с roles, в которой твой тестовый плейбук
citius
group_vars должна лежать рядом с roles, в которой твой тестовый плейбук
структуру сгенерил же, не руками рисована. ) плейбук в корне проекта. ну и вообще опять же при запуске руками или из gitlab-ci все импортируется без проблем.
citius
структура ровно, как тут описана: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#alternative-directory-layout
Artur
может и в инвентори лежать
"значение переменной из group_vars/all.yml" они у него явно "отдельно" от инвентори лежат
Artur
авх какой версии ?
Artur
у себя такого поведения не наблюдаю
citius
авх какой версии ?
AWX 2.1.0 Ansible 2.7.1
Artur
https://github.com/ansible/awx/issues/761
Artur
похоже авх "не умеет" брать от туда данные
citius
нарывался уже на этот issue, но посчитал что уже старый, и наверное пофиксили. щас внимательно перечитаю.
citius
в самом AWX в Inventory содержимое all.yml отлично видно.
citius
и нужная переменная тоже видна. почему не передается в Job-у непонятно.
citius
в общем реально не работает. с вот таким костылем начинает работать: - hosts: consul gather_facts: no tasks: - name: load variables include_vars: file="{{item}}" with_items: - "inventories/{{env}}/group_vars/all" run_once: yes если честно не понимаю, никто не использует AWX, или все костылят? :)
Dmitry
есть способ красиво проверить установлен ли пакет перед тем как делать апгрейд например? apt
Dmitry
пока только shell
Dmitry
https://docs.ansible.com/ansible/2.5/modules/package_facts_module.html
какую полезную штуку завезли - спасибо
Andrey
пока только shell
$ dpkg --status wget | grep Status Status: install ok installed
Dmitry
$ dpkg --status wget | grep Status Status: install ok installed
вот как раз так и не хотелось бы
citius
пользуюсь. goup_vars не ложу в инвентори. вот и всё
Так а куда его? Отдельный же нужен для каждого окружения.
Bogdan (SirEdvin)
А в filter plugin можно как-то получить доступ к переменным?) Или я что-то делаю не так?)
Pavel
всем привет. подскажите, возможно ли при исполнении плейбука на удаленном хосте конкретный шаг исполнить на локалхосте?
Pavel
да, уже пробую
Pavel
спасибо
Bogdan (SirEdvin)
delegate есть для такого
Pavel
да, помогло
Pavel
спасибо
Vadik
Всем привет никто не подскажет как получить доступ к api ansible
Vadik
есть сервер на котором стоит ansible , нужно дать доступ dev не могу понять как
Vadim
https://github.com/ansible/awx
Павел П.
плюс https://tower-cli.readthedocs.io/en/latest/index.html
Sergey
Стоит, работает, контейнеров не просит, память и проц особо тоже.
Aleksei
И напильник сразу давайте с собой с рандеком
Sergey
И напильник сразу давайте с собой с рандеком
Эммммм............ А зачем? За каким кейсом?
Tadeusz
с рэднеком :)
simplemice.eth
костыли крафтите?
Aleksei
Эммммм............ А зачем? За каким кейсом?
Пилить его. Или он уже из коробки работает? Года полтора назад надо было знатно с ним посношаться
Tadeusz
ахахха, хорош!
simplemice.eth
ахахха, хорош!
лучше сознайся что это ты напился пива и сломал рандек
Sergey
Просто я об этом не знал, что требуются приседания, поэтому у меня Rundeck просто взял и заработал. LDAP с группами, проектами и прочим искаропки; Ансибл-плагин, который умеет в инвентори, поcтавил за 15 минут.