Grek 🇺🇦
pзачем луп, есть with-items, не работает так?
Grek 🇺🇦
что в /etc/apt/source.list?
Andrew
Руками добавляется без проблем. Я именно модулем ансибла не могу его добавить
Grek 🇺🇦
эм, а state где?
Andrew
Типо - name: Add_unvierse
apt_repository:
repo: 'universe'
state: present ?
Тоже самое
Grek 🇺🇦
и ошибок в плее при запуске нет?
Grek 🇺🇦
что записывается в сорс лист?
Grek 🇺🇦
это в первом случае, а во втором, там где вы циклом проходите?
Aleksey
Andrew
Репозиторий устанавливается, но при этом у меня ломается работа с пакетами и при sudo apt-get update пишет что файл неправильный и не может быть использован. В этом файле записан universe репозиторий и фиксится только если удалить. Как-то так
Andrew
Aleksey
Aleksey
а когда "ставите" что в сорцах?
Aleksey
это просто урлы. и у меня вообще другие. вы зайдите по вашим
Grek 🇺🇦
Aleksey
https://t.me/pro_ansible/144313
Andrew
А, тут такие же
Grek 🇺🇦
по-моему нас тролят
Aleksey
ну, вы просто убираете диез из apt source.list или снова его ставите. это вообще ничего не ломает, если данные хосты доступны
Andrew
Да в смысле? cat /etc/apt/sources.list | grep ^deb и у меня вывело список реп активныъх, как я понял
Andrew
Это на тему тролинга...
Aleksey
тут не грузятся никакие ключи, никакие метапакеты. тупо коммяентятся или включаются строки
Grek 🇺🇦
уважаемый, добавьте 3 ваших репо в сорс листы ручками, сделайте апдейт - работает?
добавьте их ансиблом, посмотрите чем файл отличается?
и не совсем понятно что значит "ломается работа с пакетами"
Aleksandr
Может для начала вручную попробовать добавить репы и понять как это работает без использования ansible
Aleksey
Andrew
Окей, понимаю, буду пробовать. Просто из того что я прочитал в интернете в принципе есть проблема с добавлением этого репозитория и думал мб кто-то сталкивался. Сори
Grek 🇺🇦
есть проблема с короткой записью, когда просто universe прописать.
а если добавлять полный адрес репо - должно рабьотать
Andrew
Окей, как бы вы написали add-apt-repository universe модулем ансибла?
Ян
вечер добрый. знает кто ровный способ сохранять vault переменные в awx кроме как складывать их в репы с плейбуками?
Ян
в job template их складывать не получается, валидатор на синтаксис ругается, хотя там им самое место ибо от туда и цепляются креды для них...
Ян
в инвентори тоже не получается сохранить. точнее оно как-бы сохраняет, но потом переменная от туда просто пропадает...
Aleksey
Andrew
Anton
Привет. Ребят а как использовать плебук на один сервер?
ansible-playbook uninstall-zabbix.yaml -m dc-sh01.simcord.stg --check -i /etc/ansible/hosts_win
Anton
както так?
Aleksey
inqfen
Anton
inqfen
Все-таки не понял limit или run_once надо
inqfen
Но что-то из этого
Владимир
Коллеги, приветствую. помогите плиз новичку. Как в шаблоне указать хост, который собственно нужно будет дернуть из inventory?
inqfen
В каком шаблоне?
Anton
Все-таки не понял limit или run_once надо
в хостс файле несколько окружений, у каждого окружения по несколько серверов. Мне нужно применить плебук к одному конкретному серверу из одного конкретного окружения
inqfen
Ну тогда --limit
inqfen
в доке cli есть
Владимир
имеем роль, в template лежит шаблон j2. нужно как-то в шаблоне задать, чтобы имя хоста бралось динамически из inventory файла при запуске
Anton
Ну тогда --limit
ansible-playbook uninstall-zabbix.yaml --check --limit dc-sh01.simcord.stg -i /etc/ansible/hosts_win/
Anton
так?
inqfen
Не вижу содержания файлов, но в целом да
Anton
да, оно. спасибо
inqfen
А вообще инвентори в /etc хранить моветон
inqfen
У кажого проекта инвентарь свой, вот пусть в проекте и живет
Tadeusz
Ivan
доброго дня. а не подскажут ли уважаемые гуру ансибла отчего после попытки сделать
meta: refresh_inventory (используется динамический инвентарь на питоне)
импорт плейбуки с тасками (плейбука с этим инвентарем корректно отрабатывает если запустить отдельно) может падать с ошибкой
fatal: [х.х.х.х]: FAILED! => {"reason": "unexpected parameter type in action: <type 'bool'>\n\nThe error appears to be in '/path/playbook.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- hosts: all\n ^ here\n"}
Ivan
динамический инвентарь используется чтобы добавить в хост переменную ansible_password для новосозданного хоста, пароль прилетает из стороннего хранилища к которому обращаюсь через питон
Sergey
Sergey
Oleg
привет, не могу в доке найти как для таска установить таймаут.
Oleg
wait_for:
timeout: 300
это оно?
Sergey
нет.
как задача выглядит изначальная?
Ivan
плейбук в студию
плейбук сам по себе совершенно валидный - отдельно с инвентарем запускается. выглядит вот так
https://pastebin.com/LXen2ziV
Oleg
нет.
как задача выглядит изначальная?
у меня есть ансибл-плейбук. в котором таск вида
- name: Deploy scripts
git:
repo: "http://host/path/repo.git"
dest: "/opt/scripts"
update: yes
clone: yes
register: git_res
ignore_errors: yes
no_log: yes
на некоторых хостах его деятельность висит вечно при выполнении цепочки команд
/usr/bin/git fetch origin
которая ждет
git-remote-http origin http://host/path/repo.git
пока непонятно почему, возможно сеть. но это не должно стопорить плейбук навечно
Sergey
Sergey
Sergey
И код всё же переложи, будь добр.
Ivan
Sergey
Aleksey
Ivan
просто читаете его откуда хотите (из файла, из переменной, из базы, с потолка), регаете хост add_host, к нему в переменных все указываете (все как в инвентаре), и потом запускаете таску с delegate_to
не совсем понятен порядок выполнения и обращения к хостам если их больше одного
0. Питон скрипт по списку айпи адресов формирует динамический инвентарь где для каждого хоста указывается куча данных, но пароля еще нет
1. playbook1 используя данные из динамического инвентаря и при помощи delegate_to: localhost проводит опрерации по созданию VM.
2. VM создаются, в отдельном месте для каждой генерируется пароль.
3. Для каждого хоста есть возможность получить пароль при помощи плагина
"{{ lookup('secret_server', hostvars[inventory_hostname].name + '\\administrator')['password'] }}"
как именно запустить плейбуку c используя свой пароль для каждого из имеющейся группы хостов? Для них уже готов набор данных в переменных хостов кроме пароля
делать add_host для каждого при помощи with_items и как-то перекладывать переменные из уже готового динамического инвентаря в каждый хост по отдельности? Проще никак? Может можно как-то отредактировать на лету уже готовый динамический инвентарь добавив для каждого созданного хоста ansible_password?
Aleksey
В каждом потоке исполнения для каждого хоста есть все кроме пароля и это из инвентаря. 1.создаете новый хост с каким-то служебным именем как add_host, где в переменных указываете все настройки из текущего хоста + добавляете полученный пароль. и далее по схеме
Ivan