Egor
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']
Dmitry
𝔹𝕠𝕣𝕚𝕤
Лучше в хэш превратить hosts
Dmitry
я вот думаю, я не лучше ли host_vars тогда заюзать
Dmitry
как то всрато получается
Dmitry
@tnt4brain может когда проснется подскажет )
Sergey
Sergey
У тебя список (list) dict'ов. Значит, напрямую к нему обратиться нельзя - только через фильтр, который пробежит весь список.
Ну и всё уже придумано до нас: https://stackoverflow.com/questions/31895602/ansible-filter-a-list-by-its-attributes
Sergey
Самый простой вариант, кстати - через Jinja-операторы наколбасить нужное.
Sergey
(последний ответ по ссылке)
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
Artur
ты хочеш что б он там в виде 192.168.1.1 и т.п. появлялся ?
Anton
да
Artur
плейбук зарание предопределённый сценарий, который запускается на локалке и выполняется на удалённом хосте. как ты его "на лету" собрался менять ?
Danila
Коллеги, всем привет! Я собираю плейбук в котором подготавливаю хосты ( таски бегут по всем хостам ). Потом Инициализирую мастерхост ( запуск на одном хосте ) и подключаю слейвы. Как правильно будет указывать в плейбуке/роле на каких хостах что делать? Сейчас в мыслях сделать 2 роли ( мастер и слейв ). Но не будет ли это усложнять? возможно ли есть воркэраунд какой-то
Andrey
Timur
Danila
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, в которой твой тестовый плейбук
Aleksei
citius
структура ровно, как тут описана:
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#alternative-directory-layout
Artur
может и в инвентори лежать
"значение переменной из group_vars/all.yml"
они у него явно "отдельно" от инвентори лежат
Artur
авх какой версии ?
Artur
у себя такого поведения не наблюдаю
Aleksei
Artur
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
Andrey
Vadim
Dmitry
Andrey
пока только shell
$ dpkg --status wget | grep Status
Status: install ok installed
Dmitry
Artur
Bogdan (SirEdvin)
А в filter plugin можно как-то получить доступ к переменным?) Или я что-то делаю не так?)
Pavel
всем привет. подскажите, возможно ли при исполнении плейбука на удаленном хосте конкретный шаг исполнить на локалхосте?
Yury
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
Sergey
Стоит, работает, контейнеров не просит, память и проц особо тоже.
Aleksei
И напильник сразу давайте с собой с рандеком
Tadeusz
с рэднеком :)
simplemice.eth
костыли крафтите?
Sergey
Tadeusz
simplemice.eth
ахахха, хорош!
лучше сознайся что это ты напился пива и сломал рандек
Sergey
Просто я об этом не знал, что требуются приседания, поэтому у меня Rundeck просто взял и заработал. LDAP с группами, проектами и прочим искаропки; Ансибл-плагин, который умеет в инвентори, поcтавил за 15 минут.