Alex
https://docs.ansible.com/ansible/latest/modules/net_get_module.html
This module is supported on ansible_network_os network platforms. See the Network Platform Options for details. не уверен что за работает на какой нибудь бубунте
⎈
Неожиданно. А не с цисками работает?
ща проверим с импортозащемающим орлом!
Full
Народ, как подружить package и delegate_to: localhost? Вот кусок: - name: Install needed packages package: name: xorriso state: present delegate_to: localhost become: true Ругается так: Could not detect which package manager to use. Try gathering facts or setting the "use" option. Сбор фактов не меняет ничего, т.к. факты собираются с целевого хоста, а задача делегирована локалхосту. Специально использовал package чтоб не привязываться к пакетному менеджеру.
Div
добавьте сбор фактов с локалхост перед вызовом.
Ждун
setup модуль и делегируй на локалхост
Ruslan
Коллеги, подскажите плз, уже второй день бьюсь с решение, пока остановился на этом... Нужно превратить это "new_ip": { "1.1.1.1.160/22": "r.petrov", "1.1.1.1.161/22": "r.petrov", } } вот в это) "new_ip": { "r.petrov": ["1.1.1.1.160/22", "1.1.1.1.161/22"] } реально ансимблом это сделать? }
Full
Сделал так: - name: Gather facts on localhost setup: delegate_to: localhost - name: Install needed packages package: name: xorriso state: present delegate_to: localhost become: true Результат тот-же. Причем, первый шаг заканчивается корректно. Вспомнил про delegate_facts, добавил на первом шаге. Теперь поехало как надо. Спасибо.
🏳️ Phil
Немного странный вопрос, попробую пояснить. Я хочу создавать виртуалки у разных провайдеров. Через ansible. Через их распрекрасные API. Но у них или нет или кривые модули ansible. Есть какая-нибудь практика работы через curl и составление запросов методами ansible? Например мне резко нужны vscale и netangels
Vlad
Лучше на питоне написать модуль. Мне было лень и я написал простой скрипт для vscale https://github.com/vadikgo/kubespray-vscale/blob/master/start_vscale.py
🏳️ Phil
Лучше на питоне написать модуль. Мне было лень и я написал простой скрипт для vscale https://github.com/vadikgo/kubespray-vscale/blob/master/start_vscale.py
Да блин. Сел писать бизнеспроцесс, а оказалось я сейчас буду изучать ансибл и питон :)) Да, питон я примерно знаю, а вот ansible 3 года не трогал и немного отстал
Igor
а почему не терраформ?
🏳️ Phil
таррачто?
Gleb
таррачто?
https://www.terraform.io/docs/providers/type/major-index.html
Igor
https://github.com/burkostya/terraform-provider-vscale
🏳️ Phil
https://github.com/burkostya/terraform-provider-vscale
3 года назад? у них есть нерабочий двухлетний ansible
🏳️ Phil
https://www.terraform.io/docs/providers/type/major-index.html
Да это ясно. Но что я с ним делать буду и зачем
Gleb
Да это ясно. Но что я с ним делать буду и зачем
создавать виртуалки что же еще
Отделение Bereke Bank
Да это ясно. Но что я с ним делать буду и зачем
Создавать виртуалки у разных провайдеров
Отделение Bereke Bank
Да это ясно. Но что я с ним делать буду и зачем
Потом берешь динамик инвентори скрипт для твоего провайдера и управляешь ими ансиблом
Gleb
с другой стороны если ты сделаешь модулей для ансибла и с сообществом поделишься то будет прекрасно
🏳️ Phil
Vlad
Можно упростить задачу и впихнуть создание сервера в скрипт динамического инвентори. Это-же просто исполняемый скрипт. Его можно и на go написать.
Gleb
Чем это лучше ansible?
ничем кроме того что именно для задачи которую ты описал может быть больше готовых "модулей", я не вижу проблемы сделать что угодно с помощью ансибла, вопрос скорее сколько времени есть на задачу
Отделение Bereke Bank
Чем это лучше ansible?
Как ты и сказал - модулей нет или они кривые Через uri - можно. Но с амазоном без бутылки не обойтись Писать свой - заебешься
🏳️ Phil
Но мысль интересная, спасибо
🏳️ Phil
Создание через ansible один хрен костыль
Sergey
Создание через ansible один хрен костыль
Чойта? Им даже амазоновской инфрой можно было ещё в 2015 рулить.
Gleb
из терраформа кстати можно вызывать ансибл дальше если уже надо внутри виртуалку настроить
Gleb
Чойта? Им даже амазоновской инфрой можно было ещё в 2015 рулить.
проблемы я думаю не с авс, а со всякими диджитал оушенами и тп
Sergey
проблемы я думаю не с авс, а со всякими диджитал оушенами и тп
Ну как обычно - провайдеру не нужно, а все хотят "ещё вчера". Точь-в-точь как с железками сетевыми.
🏳️ Phil
проблемы я думаю не с авс, а со всякими диджитал оушенами и тп
Да у DO как раз есть. А вот у наших всё так себе
Sergey
ну там вот эти танцы через localhost
Амазоновские модули работают в паре со своим dynamic inventory, плюс запускать их лучше изнутри облака.
Gleb
Наших - кого? Я.блока?
для яоблака аренадатовцы сделали немного https://github.com/arenadata/ansible-module-yandex-cloud/blob/master/README.md
Gleb
и динамик инвертори я с гитхаба брал
🏳️ Phil
Наших - кого? Я.блока?
Это я вообще не знаю что. Я выше примеры приводил. vscale, netangels
Grek 🇺🇦
Vscale это же selectel, у них же есть модули для ансибла
Grek 🇺🇦
В блоге у себя писали статьи
🏳️ Phil
ну так скажем, я не готов их отлаживать
🏳️ Phil
Сходу не завелось
Sergey
ну так скажем, я не готов их отлаживать
Никто не готов - именно поэтому они в нерабочем состоянии.
🏳️ Phil
Мне легче новый написать. Один фиг доку читаю
🏳️ Phil
Не пойму, лучше делать инвентори плагин или скрипт? Вообще разницы не вижу
Vlad
Сделать скрипт-инвентори возвращающий json и скормить его как файл инвентори
🏳️ Phil
Угу
Andrey
Мне легче новый написать. Один фиг доку читаю
ну терраформ было бы лучше для этого. ansible - он для того чтобы внутри уже ковыряться больше подходит
manefesto
Terraform для инфраструктуры, ansible для провижена. Для всего свои инструменты
🏳️ Phil
Да, я уже понял. Спасибо за терраформ. Я согласен. Пока правда не готов окунуться, но это прямо следующим шагом
David
почему так нельзя удалить файл ? в pkg_check_bin.stdout_lines путь к файлу есть
Sergey
Странно, да?
David
🧐
Sergey
Сделай debug и убедись лично
David
да вот сделал и убедился
Egor
А подскажите пожалуйста с таким вопросом. Имеется два inventory. И есть необходимость запустить playbook с inventory и одним хост из другого inventory. К примеру этим хостом является мониторинг сервер. И вопрос как то можно ли указать через тот же CLI путь только к hosts.yml файлу из другого инвентори или необходимо дублировать? Практики по данному поводу не нашел. Отметил что когда через ключ -i указываешь путь к hosts.yml файлу, то он так же вычитывает его inventory.
Vladislav 👻
Два ключа -i, но есть тонкости, рекомендую сначало проверить, как соберется инвентори через ansible-inventory
Vladislav 👻
Проблемы могут быть с одинаковыми названиями хостов/групп
Vladislav 👻
Если будет совпадение, то будут применяться переменные из последнего инвентори, т.е. в данном случае второго
Egor
Да, так и пробовалось, но там есть общие переменные. К примеру inventory с именем: production, staging. Вот просто есть ли методы, когда можно загрузить список хостов из hosts.yml?
Vladislav 👻
Отдельный инвентори только вроде
Egor
Но просто одну к примеру виртуальную машину выносить в отдельный inventory где мне нужен лишь грубо говоря ip-address че то смотрится не очень. Пробовал делать мягкие ссылки, проблему решало, но я так понимаю это очень не красиво.
Egor
Вы имеете виду за дублирование в двух инвентори?
Egor
Просто он находится в отдельной категории. Проблема в том, если указывается два ключа i. И второй ключ я пытаюсь указать именно на файл типо -i inventory/production/hosts.yml то он хватает еще все переменные из этого inventory не только файл hosts.yml
Vladislav 👻
Нельзя взять хосты без переменных
Vladislav 👻
Только отдельный инвентори
Egor
Что бы больше описать, была взять такая структура: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html inventories/ production/ hosts # inventory file for production servers group_vars/ group1.yml # here we assign variables to particular groups group2.yml host_vars/ hostname1.yml # here we assign variables to particular systems hostname2.yml staging/ hosts # inventory file for staging environment group_vars/ group1.yml # here we assign variables to particular groups group2.yml host_vars/ stagehost1.yml # here we assign variables to particular systems stagehost2.yml
Yuriy
доброе утро товарищи девопсы подскажите пожалуйста как можно достичь идемпотентности плейбука который устанавливает MySql. Суть проблемы в том что при установке и первоначальной настройке задается пароль рута (mysql), но при повторном запуске эти инструкции уже будет выдавать ошибку. Похоже что при первоначальной установке нужно где то создавать какие то флаги/файлы... как кто делает в практике?, какой вариант по бест практикс?
Egor
Через модуль ansible задаете пароль root?
Yuriy
да так и делаю - name: Set the root password become: true mysql_user: name: root password: "{{ mysql_root_password }}" тут все в норме, но если он уже был установлен, то эта задача вывалится с ошибкой
Dr. L.S.Dee
Предварительно попробовать законнектиться с этим паролем? Прокатило — значит, не задаем.
Egor
Можно попробовать выставить дополнительно два поля: login_user: root login_password: "{{ mysql_root_password }}" Для авторизации второй раз. Единственное не знаю, не ругнется ли он в первый раз на такое, но попробовать думаю можно.