Udjin
Парни, такой вопрос странный. У DO в дроплетах есть кнопка Rebuild. Она не удаляя дроплета просто накатывает на него чистый выбранный имейдж с ОС. Айпишник и всё остальное сохраняется. Вопрос: Как мне это сделать ансиблом? модуль digital-ocean-module - умеет такое? Я посмотрел - опции rebuild нету.
Udjin
в примерах # Ensure a droplet is present # If droplet id already exist, will return the droplet details and changed = False # If no droplet matches the id, a new droplet will be created and the droplet details (including the new id) are returned, changed = True. - digital_ocean: state: present command: droplet id: 123 name: mydroplet api_token: XXX size_id: 2gb region_id: ams2 image_id: fedora-19-x64 wait_timeout: 500
Udjin
говорится, что если дроплет есть - ансибл с ним ничего делать не будет. Я так полагаю, что даже если сменить имейдж на новый, с федоры на убунту - оно ж его не отребилдит?
om
Спасибо! Решил вопрос установкой remote_user = ansible_svc
Но это не выход. Как вариант - потестить ансибл - работает. Но как целевоё решение (пользователь может зайти на сервер и запустить сценарий ансибла, который в зависимости от прав на целевых серверах будет выполняться или нет) не подходит. Значит, будем решать Проблему Двух Собак...
om
Есть ли возможность указывать в файле ansible.cfg макросы или переменные? Типа remote_user = ${USER/@corp/}
bebebe
нет, если только не темплатизировать его заранее
cent
Я смотрю чатик оживился) А кто-то ловил проблемы с heredoc ? У меня почему-то в конце файла EOF добавляет постоянно
Pavel
парни, привет. вопрос: можно ли в новом ansible 2.7 через PSRP модуль передать команды транзитом на конечный хост, то есть ansible -> windows_bastion -> target host ?
Pavel
никто ничего не делал подобного
simplemice.eth
Ansible - это Open Source инструмент, который доступен каждому! Автоматизация наше всё, независимо от того кто ты - Сис.админ или Программист или Айтишник... 27 Сентября в 19:00 по МСК будет бесплатный урок по освоению базы перед стартом Devops-практик. Урок подойдет всем, кто хочет освоить Devops и начать работать в этом направлении, количество мест строго ограничено. Регистрация по ссылке: goo.gl/Prtguv Детали по бесплатному живому онлайн-занятию Devops by Fevlake: Ansible 🗓 Время проведения: 27 Сентября в 19:00 по МСК, не пропустите 📋 Программа урока: - зачем нужны системы управления конфигурациями? - сравниваем ansible/chef/puppet/salt - основы работы с ansible - настраиваем первый сервер - деплоим php с помощью ansible - деплоим docker с помощью ansible 👨‍ Лектор: Василий Озеров - основатель агентства Fevlake и действующий Devops-инженер (опыт в Devops более 5 лет) : «В этом году мы начали готовить крутых Devops-инженеров из системных администраторов, программистов и It-шников. Приходите на мой открытый живой онлайн-урок по Ansible, ответим на все ваши вопросы» Регистрация: goo.gl/Prtguv
simplemice.eth
если вдруг кому интересно
Tadeusz
Мышшш
shine
што, опять?
simplemice.eth
Tadeusz
Ты коучишь?)
simplemice.eth
Ты коучишь?)
боже упаси :)
Artur
привет. delegate_to возможно подцепить к блоку ?
Artur
прицепить можно. но наткнулся на следующее: имеется [dev-app] dev8-app1 ansible_host="10.0.0.1" ansible_ssh_user=admin dev7-app1 ansible_host="10.0.0.2" ansible_ssh_user=admin [dev-db] dev8-db1 ansible_host="10.0.0.3" ansible_ssh_user=admin dev7-db1 ansible_host="10.0.0.4" ansible_ssh_user=admin [dev:children] dev-app dev-db в плейбуке есть блок с delegate_to: "dev7-app1". при его запуске он ведёт себя очень странно. пример выполнения таска changed: [dev8-app1 -> 10.0.0.2] changed: [dev7-app1 -> 10.0.0.2] но dev8-app1 имет совсем другой ип в инвентори листе. получается такс запускается 2 раза на одной тачке. как такое лечится ? запускаю с ключом -l dev
Евгений
Так а роль для какой группы хостов запущена? Он же с каждого хоста из этой группы вызовет таск на хосте, куда делегируешь.
Artur
чутка покапался и понял почему ип одинаковый
Artur
делегат не "запускает только на указаном хосте", а запускает команду ввезде, потом понимает что выполнять нужно на другом хосте и пробрасывает её ( задачу) туда.
Artur
но у себя ( на хосте где не требуется запускать ) он её тоже видит
Artur
поэтому ип одинаковые выходят, и поэтому 2 запуска срабатывает
Artur
есть какая либо возможность "спрятать" этот такс от других хостов ?
Rishat
- name: Make sure nginx virtual hosts are configured tags: nginx template: src=nginx-virtualhost.conf.j2 dest=/etc/nginx/conf.d/{{ item.key }}.conf with_dict: "{{ virtualhosts }}" when: enable_ssl|default(false)|bool == false notify: - Restart nginx отлетает с ошибкой TASK [webtier : Make sure nginx virtual hosts are configured] ************************************************************************************************ fatal: [192.168.12.12]: FAILED! => {"msg": "'virtualhosts' is undefined"} Как я понимаю https://github.com/Rishats/ansible_laravel в папке host_vars должно как-то по другому записываться переменная?
Евгений
Да, есть ключ - запустить только один раз. run_once: true https://docs.ansible.com/ansible/2.6/user_guide/playbooks_delegation.html#run-once
Artur
т.е. совпадает с именем в инвентори листе ?
Artur
ubuntu-test
хост должен тогда так же называться
Artur
либо вынеси её в all файл
Rishat
Аааа,спасибо,вроде начинаю понимать. Сейчас попробую)
Artur
Да, есть ключ - запустить только один раз. run_once: true https://docs.ansible.com/ansible/2.6/user_guide/playbooks_delegation.html#run-once
благодарю, вроде как сработало. но всё равно в итоге вижу dev7-app1 : ok=5 changed=1 unreachable=0 failed=0 dev7-db1 : ok=2 changed=0 unreachable=0 failed=0 dev8-app1 : ok=12 changed=7 unreachable=0 failed=0 dev8-db1 : ok=2 changed=0 unreachable=0 failed=0
Artur
но на этот раз выполнилась 1 раз
Artur
как и требовалось
Artur
я так понимаю что запустилось на первом хосте из группы, он формарднул такс на нужный хост и этим всё закончилось
Artur
да. так и было. проверил по выводу
Евгений
Просто пока читал, понял, что запутался) ``` changed: [dev8-app1 -> 10.0.0.2] changed: [dev7-app1 -> 10.0.0.2] ``` тут видно что таск запустился на двух хостах. А delegate в таске с константным ip. Вот он и выполнился дважды.
Artur
везде фигурирует dev8-app1 а не dev7-app1, но ип при этом dev7-app1
Евгений
В таких случаях, наверное лучше всего разнести сценарий по ролям. Ролью можно определить группу хостов для запуска и конкретный сценарий. Одна роль вместо таска с delegate - на один хост, вторая роль - все остальные одинаковые таски для всех хостов.
Artur
думаю мне не подойдёт. т.к. блок с делегатом дожен срабатывать лишь при выполнении условия из when в плейбуке
Artur
по сути если указана переменная, то блок с делегатом должен будет сработать
Artur
а в setup можно условия пихать ? если да, то разделю на 2 роли
Constantin
Всем привет, может кто подскажет, неужели нет способа сделать include_role и delegate_to?
Евгений
Условие when вроде к любому модулю можно дописать. Ровно как и на запуск роли тоже можно условие написать.
Constantin
Мне нужно роль на локальной машине выполнить, но delegate_to на уровне тасков, когда я подрубаю роль не срабатывает
Евгений
Я выношу в отдельную роль все локальные таски, просто потому что AWX в докере и 127.0.0.1 не работает. - hosts: host_name_from_inventory gather_facts: yes roles: - { role: localhost, when: ansible_distribution == "CentOS"}
Rad
Тут сейчас будет про ansible
Rad
Ссылка на прямую трансляцию сегодняшнего митапа про IaC: https://www.youtube.com/watch?v=7eP0KOD4zCw Скоро начинаем!
Евгений
Мне нужно роль на локальной машине выполнить, но delegate_to на уровне тасков, когда я подрубаю роль не срабатывает
https://github.com/ansible/ansible/issues/32556 Тут пишут что нельзя. Может проще вызвать роль в site.yml на localhost?
Александр
Зоебис доклад спасибо
Alex
Я подумываю устроить митап по ансибл и доклад о своём видении и юзкейсе. Это интересно сообществу?
Viktor
Думаю, да. Есть какой-то набросок агенды по своим кейсам?
Alex
Думаю, да. Есть какой-то набросок агенды по своим кейсам?
Только в голове. Меня напрягает мысли что в качестве зала, у нас типа советский концертный. Не уверен что там будет людям комфортно.
Viktor
Может кабак какой есть?
Alex
Нет, либо зал, либо ничего пока. Первый камень в сторону организации этого дела кидаю.
Sergey
Это вон в devops_moscow.
Bandikoot
Это вон в devops_moscow.
кстати, на тему сегодняшнего выступления: а можно пару примеров таких кейсов, где приходилось ± навороченные модули самим писать?
Sergey
collectd, systemd-nspawn, rabbitmq-plugins
Александр
collectd, systemd-nspawn, rabbitmq-plugins
Ты рабит сам писал, я просто хз как оно в анибл с ним
Александр
collectd, systemd-nspawn, rabbitmq-plugins
Ссылку на гит бы
Александр
Про рабит
Dok
Есть добавление юзеров, включение веб-морды, например, но банального добавления в кластер, не нашел (
Александр
Что это за язык?
Дело в языке или в инструментах
Александр
Типа вот ты пользуешься гитом, а у тебя скок проектов? И как порядок в гите?
Alex
Дело в языке или в инструментах
Ты читал что написал? Исправь опечатки и поставь знаки пунктуации. А то вообще не разобрать
Alex
Александр
Александр
Ты в интернетах не? Тут и нахуй послать могут
Alex
Ты в интернетах не? Тут и нахуй послать могут
Так посылай понятней, а то будто ебалом в Клаву упал, а мне угадывай
Александр
И от канала это вообще ни как не зависит
Александр
Так посылай понятней, а то будто ебалом в Клаву упал, а мне угадывай
Так ты угадывай, тебе мозги для чего дали или забыл как пользоваться?
Alex
Так ты угадывай, тебе мозги для чего дали или забыл как пользоваться?
☮️ мир тебе поняш. Иди отдохни, а то агрессируешь впустую
Александр
Я ток хотел написать о том что ансибл вообще не панацея