Oleg Y.
Ubuntu 20.04 LTS onehell@oniguruma ~ $ apt -s install ansible | grep python WARNING: apt does not have a stable CLI interface. Use with caution in scripts. ieee-data python3-argcomplete python3-distutils python3-dnspython python3-jinja2 python3-jmespath python3-kerberos python3-lib2to3 python3-libcloud python3-lockfile python3-netaddr python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-selinux python3-winrm python3-xmltodict cowsay sshpass python-jinja2-doc python-lockfile-doc ipython3 python-netaddr-docs ansible ieee-data python3-argcomplete python3-distutils python3-dnspython python3-jinja2 python3-jmespath python3-kerberos python3-lib2to3 python3-libcloud python3-lockfile python3-netaddr python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-selinux python3-winrm python3-xmltodict
Vadim
о че пора на убунту 20 переходить?
Oleg Y.
почему бы и нет...
Отделение Bereke Bank
поставил щас ансибл 3.9.9 он все еще 2ой тянет
Поставь пипом, а не пакетным менеджером
Отделение Bereke Bank
В виртуаленв в смысле
Max
3.9.9 ? вы из будущего?
звучит как шутка о том, что питон2 протухает, да не может протухнуть и что его выкидывают, выкидывают. да не могут выкинуть. что даже через N лет ансибл тянет питон2 по зависимостям =D
Max
RPMпакет тянет по зависимостям то, что в него майнтейнер прописал. Никакой связи с ансиблом тут нет.
но ведь мейнтейнер не прст так ведь прикрутил в зависимости питон2? вероятно, но то были основания, нет?
Max
Нет. Ансибл умеет и в 2, и в 3. Это всё в доке написано так-то.
т.е. мейнтейнер собрал ансибл с питон2 в зависимостях только лишь потому, что есть его поддержка?
Sergey
т.е. мейнтейнер собрал ансибл с питон2 в зависимостях только лишь потому, что есть его поддержка?
Я в голове у мейнтейнера не живу, а ты разводишь флейм. Ещё раз: почитай доку.
Sergey
(третий раз повторять не буду, если что)
Max
эээммм... я совсем о другом говорил, но ладно. коль так строго всё
#Rλatan
чем Ansible отличается от Terraform?
Sergey
эээммм... я совсем о другом говорил, но ладно. коль так строго всё
Строго потому, что обсуждение мыслей майнтенера не входит в круг тем этого чата. Про другое: Ансибл поддерживает и питон2, и питон3. Если ты будешь ставить его в venv, то он встанет и в 2, и в 3: насколько я помню, ему всё равно.
#Rλatan
https://bit.ly/3cvyzZ5
https://lmgtfy.com/?q=%D0%BF%D0%BE%D0%B8%D1%89%D0%B8+%D1%81%D0%B0%D0%BC+%D0%B2+%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B5
łibfitź.r14.a
Господа, только знакомлюсь с ансиблом, не могу понять host vars. На данный момент поднимаю несколько вмок вагрантом, провижн через ансибл, хочу в "главном" плейбуке подключать другие в зависимости от хоста, который сейчас провижнится. Хостов немного, поэтому я придумал навесить каждому из них флаг и делать что-то. типа - include: controller.yml when: is_controller По задумке is_controller возьмётся из host vars для этого хоста. Но как правильно определить и обратиться к этой переменной - не понимаю. Подскажите, пожалуйста
Sergey
- hosts: <host1> tasks: - include: host1_tasks.yml - hosts: <host2> tasks: - include: host2_tasks.yml
Sergey
не надо переписывать ансибл на ансибле
łibfitź.r14.a
- hosts: <host1> tasks: - include: host1_tasks.yml - hosts: <host2> tasks: - include: host2_tasks.yml
Это должно быть в основном плейбуке? У меня сейчас есть главный site.yml, в котором вызываются роли. Я хочу логику применять на уровне роли, т.е. чтобы она сама вызвала другую под-роль в зависимости от хоста, который сейчас провижнится. Чувствую, что хочу странного, но не понимаю, как все это связать вместе
Sergey
Ты хочешь в роль засунуть работу, которую Ansible и так за тебя спокойно делает «искаропки». Зачем?
łibfitź.r14.a
Туплю, сэр ¯\_(ツ)_/¯
Sergey
Туплю, сэр ¯\_(ツ)_/¯
Ты сказал :-) Сопоставлять хосты/группы хостов и таски - базовое умение Ansible. Используй его примерно так, как я написал выше - и будет тебе счастье+скорость написания плейбука.
Aleksey
ох круто было бы иметь hash_behaviour = fail
Aleksey
если вдруг приходится что то мержить упади
Aleksey
и тестов понаписано и соломки подложено где только можно а всё равно. в каком то месте выскочил replace и всё сломал
Отделение Bereke Bank
Поделитесь опытом - кто как обновляет ОС ансиблом? Интересует центось С пакетами, специфичными для определенной роли все понятно (нужная версия в variable). А как быть с остальной кипой пакетов? Начиная от ядра, заканчивая всякими util-linux. Держать километровый список с версиями - имхо такое себе
Отделение Bereke Bank
packer
packer же создаст тебе темплейт ВМ, который ты не натянешь на уже работающий инстанс
Aleksey
выбросить имеющийся инстанс заменить на новый рабочий инстанс
Отделение Bereke Bank
не всегда это возможно)
Vitaliy
Всем ночи доброй. Подскажет кто, есть в ансибле лист, вложенный. Типа такого hosts: - name: 123 ip: ipv4: 123.123.123.123 подскажет кто, как в лупе получить ipv4? есть такая штука "{{lookup('subelements', hosts, ‘name’, {'skip_missing': True})}}" но у нее ограничение - глубина максимум 2. Т.е. корень и еще один элемент. Дальше не работает. не хочется плодить loop_var и include_tasks. Может есть способ вложенный лист распарсить одним лупом?
Vitaliy
Вот почти реальный пример: hosts: - name: serv hards: WD mother: Intel ipmi: - ipv4: - internal: - 192.168.1.1 - 192.168.1.2 - 192.168.1.3 - 192.168.1.4 - 192.168.1.5 - external: - 8.9.9.1 - 8.9.9.2 - 8.9.9.3 так вот. Реально ли в одной таске получить допустим {{hosts.ipmi.ipv4.internal}}
Deniss
товарищи
Deniss
lineinfile: path: /var/lib/pgsql/11/data/postgresql.conf regexp: '#listen_addresses = 'localhost' ' line: listen_address = '*'
Deniss
как сделать что бы 'localhost' ' читал и не ругался на двойные ' '
Vitaliy
lineinfile: path: /var/lib/pgsql/11/data/postgresql.conf regexp: '#listen_addresses = 'localhost' ' line: listen_address = '*'
lineinfile: path: /var/lib/pgsql/11/data/postgresql.conf regexp: "#listen_addresses = 'localhost'" line: listen_address = '*'
Deniss
tupanul
Deniss
merci
Dmitry
https://docs.ansible.com/ansible/latest/modules/apt_module.html
Vitaliy
https://docs.ansible.com/ansible/latest/modules/apt_module.html
Там как бы про центось речь, это раз. Два - https://docs.ansible.com/ansible/latest/modules/yum_module.html а три - если обновлять через pakage, то перед этим нужно обновить кэш (yum|apt update)
Dmitry
В примерах даже есть
Dmitry
Блин, с телефона паста ломает форматирование
Vitaliy
ну и 4 - на тебе почти готовое под центось - name: upgrade packages yum: name: * state: latest update_cache: yes
Vitaliy
Не боишься?
Ну и чего бояться, если допустим сервер новый?
Отделение Bereke Bank
Я видимо не совсем понятно объяснил)
Vitaliy
Я видимо не совсем понятно объяснил)
А все понятно. Держишь километровый список валидных и проверенных пакетов
Гайрат
Я видимо не совсем понятно объяснил)
Однозначно, обновляться на тестовом стенде для начала. Зеркалишь репы на свой сервер.
Vitaliy
А если нет? )
Ну а чьи это проблемы?
Dmitry
Ну а чьи это проблемы?
Я просто обратил внимание что вопрос стоит обдумать
Dmitry
Искать проблемы и виноватых я не собираюсь
Vitaliy
Искать проблемы и виноватых я не собираюсь
Ну я делаю лишь на новых серверах. Если вдруг нужно обновиться - онли руками.
Serg
все коллекции, которые выпилены из ansible-base и будут в 2.10 в ACD: https://github.com/ansible-community/ansible-build-data/blob/master/2.10/acd.in то есть придут вместе с "pip install ansible" по идее
Serg
все что были и в 2.9
Sergey
Справедливости ради - некоторые всё же закомментированы.
Игорь
Всем привет, почитал стати про развертывания VM на ESXI через ansible, во всех статьях почти идет развертывание из templates , а возможно ли развернуть VM из iso ??? т.е написать плейбук чтоб он создавал пустую ВМ , туда запихивал iso и проводил инсталяцию с заданными параметрами.... поделитесь опытом или ссылкой...
Grek 🇺🇦
Можно, но надо чтоб iso умел в unattended install
Игорь
Можно, но надо чтоб iso умел в unattended install
ясно надо собрать iso ок спс
Grek 🇺🇦
Почитайте чат выше, пару дней назад поднималась эта тема
Deniss
guys
Deniss
ммм, может есть у кого пример как построен initdb для postgresql
Deniss
command: /usr/pgsql-11/bin/postgresql-11-setup initdb