Vladislav 👻
Vladislav 👻
выше писал
Vladislav 👻
читайте
Timur
Кладите файлы куда хотите
Timur
В любую удобную вам директорию
Timur
Хоть в групварс, если так хочется
Timur
Если вам так удобнее - ради бога
Oleg
не подскажете как в команде ansible all -i inventory/production блабла сделать all но с исключением?
Oleg
о, премного благодарен
Timur
Вот тут подробнее: https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html
Oleg
хм
Timur
Oleg
ansible all:!saltservers:!bashservers -i inventory/production -b -m service -a 'name=nginx state=reloaded' -bash: !saltservers: event not found
Oleg
это получается баш перехватывает
Timur
Попробуйте : на запятую заменить
Oleg
аналогично
Sergey
это получается баш перехватывает
Подозреваю, стоит в одиночные кавычки взять параметр с группами
Vladimir
ansible all:!saltservers:!bashservers -i inventory/production -b -m service -a 'name=nginx state=reloaded' -bash: !saltservers: event not found
ansible 'all:!saltservers:!bashservers' -i inventory/production -b -m service -a 'name=nginx state=reloaded'
Oleg
Точно, тогда баш не перехватит
Tadeusz
!spam
Anonymous
Самый оригинальный случай был - это попытка настроить ансиблом креды для самого ансибла
А в чём тут проблема? У меня просто похожий сценарий крутится. Появляется новая VM - дёргается template из awx, который идёт на новый хост по дефолтному (заранее известному паролю), создаёт себе сервисную учётку, генерит рандомный пароль руту и дёргает api менеджера паролей, который добавляет этот пароль к себе в базу. Сценарий вроде отлажен и в целом работает.
Anonymous
Но может есть какой-то очевидный подводный камень, потому спрашиваю
Dr. L.S.Dee
Схоронил.
Anonymous
Что значит "появляется"? С улицы в датацентр зашла?
Руками на гипервизоре создаётся и добавляется в static inventory awx'a (знаю, тут ещё есть куда улучшать)
Dr. L.S.Dee
Подводный камень, как мне видится, может быть в окне между генерацией нового пароля и добавлением его в базу.
Timur
Руками на гипервизоре создаётся и добавляется в static inventory awx'a (знаю, тут ещё есть куда улучшать)
На гипервизоре можно стартовый скрипт прикрутить, который все нужное будет сам прокидывать без лишних дерганий
Dr. L.S.Dee
Однако новую VM без ролей, если что, не страшно и прибить и пересоздать.
Timur
Операционка там же все равно ставится какая-то? Значит, и конфигурация начальная выполняется
Konstantin
подскажите как можно получить доступ к переменным хоста. есть группа с несколькими хостами. у каждого хоста есть переменная именно для конкретного хоста (то есть ID). есть тимплейте который просто пишет в конфиг имена хостов, но по имени хоста мне бы вытянуть ID из переменных этого хоста. возможно такое провернуть? (ну то есть я даже уверен что можно, это же питон и энзибл 🙂 )
Konstantin
тимплейт будет раскладываться на каждом хосте группы
Konstantin
то есть получается надо получить доступ к переменных хоста1 когда надо будет положить тимплейте на хост2
Timur
Где hostname - имя нужного вам хоста (или его группа), а id - имя переменной хоста, которую вы хотите вытащить
Timur
Вообще, в доке все есть: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables
Konstantin
Вообще, в доке все есть: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables
Спасибо. Как то пропустил. Но отрабатывает странно, буду разбираться hostvars[host]['zookeeper'] > {u'id': 1} hostvars[host]['zookeeper']['id'] > {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'id'"}
Timur
И что именно вы пытаетесь сделать?
Konstantin
это переменная роли. в данном случает для каждого хоста в host_vars лежит нужный файл с именем хоста zookeeper: id: 1 ID для каждого хоста свой
Konstantin
Ошибка выше только в тимплейте ( for … endfor ). Вот это отрабатывает как надо - debug: var: hostvars["{{ item }}"]["zookeeper"]["id"] loop: "{{ groups['zookeepers_eu'] }}"
Konstantin
ха, все гуд. Лишние хосты зачасались для которых еще не определены файлы в host_vars. @tgadiev еще раз спасибо
Timur
Не за что :)
Vadik
Хеллоу)
Dr. L.S.Dee
Artem
Всем привет, подскажите как правильно запарсить хосты с инветори в таску таким образом чтоб при добавлении в нового хоста в инвентори он так же добавлялся: - name: create glaster volume gluster_volume: name: swarm-vols replicas: "{{ gluster_replicas }}" bricks: "/gluster/data" state: present force: yes cluster: - manager1 - worker1 - worker2 - (next host) run_once: yes Inventory: [glusterfs] manager1 worker1 worker2 (next hosts.....) Заранее спасибо за любую подсказку)))
Artem
меня интересует как сделать саму запись в таске чтоб при добавлении нового хоста он добавлялся так же в столбик
Timur
В столбик или не в столбик - неважно совершенно
Artem
не совсем понимаю, можете скинуть ссылочку с примером или более подробной инфой?
Timur
ща, момент
придумать себе динамический инвентори
теперь вы тут вдвоем отдуваетесь?)
Timur
теперь вы тут вдвоем отдуваетесь?)
Вливайся, чего молчишь? :)
Alex
теперь вы тут вдвоем отдуваетесь?)
ты давай ещё всех остальных спали тут
Alex
force: yes run_once: yes это прям самовыпил при случайном повторном запуске
Timur
Artem вот так попробуйте: - name: create glaster volume gluster_volume: name: swarm-vols replicas: "{{ gluster_replicas }}" bricks: "/gluster/data" state: present force: yes cluster: "{{ groups['glusterfs'] | to_nice_yaml(indent=4) }}"
Dmitry
глупый вопрос - «кастом» факты же после ребута сохраняются?
Anonymous
Утро доброе. Подскажите плиз, почему awx может не видеть inventory vars?
Anonymous
Anonymous
Т.е. я в inventory vars задал параметра вида ansible_connection: winrm, но при выполнении плейбука awx пытается стучаться по ssh
Egor
https://github.com/ansible/awx/issues/206
Anonymous
Все ли зависимости поставили?
Не думаю, что в этом дело. Тогда бы ругался на отсутсвие модуля pywinrm или kerberos. Но проверю отдельно
Egor
Не думаю, что в этом дело. Тогда бы ругался на отсутсвие модуля pywinrm или kerberos. Но проверю отдельно
Еще есть баг, что awx не смотрит на all.yaml. Соответственно не применяет…
Dmitry
Если не записаны в файл, то нет
ну когда я делаю set_facts - оно сохранит их?
Anonymous
А в плейбуке что указано? Там может быть тоже коннекшн задан
Там пусто на эту тему. --- - name: Provison windows machines hosts: all roles: - workstations_config
Timur
ну когда я делаю set_facts - оно сохранит их?
В памяти до конца плея. Если хочешь сохранять факты между плеями - https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#local-facts-facts-d
Anonymous
А в роли?
Аналогично. Там пока 1 task в main.yml и всё
Artem
Добрый день, попробовал разные вариации с пробелами,результат один и тот же