Sergey
Ты не хочешь узнать, что будет, если начать обсуждать содержимое пина или выдавать мне указания к действию.
Sergey
Sergey
Критикуешь - предлагай. Например, напили свой собственный доклад, и я с удовольствием его посмотрю.
Sergey
А если сочту возможным, то первый же и порекомендую его.
Sergey
Мы друг друга поняли - замечательно. Но доклады всё же заноси, если что.
Lev
https://habr.com/ru/post/500058/
а вот и английская версия приехала https://habr.com/en/post/500226/
Denis
Всем привет
Denis
подскажите русскоязычные материалы по изучению ансибл?
Igor
подскажите русскоязычные материалы по изучению ансибл?
https://www.youtube.com/watch?v=Ck1SGolr6GI&list=PLg5SS_4L6LYufspdPupdynbMQTBnZd31N начни с этого
Igor
писать код
Igor
но можно ещё оф.доку прочитать, она хорошо написана, прямо всем бы так.
Dmitry
но можно ещё оф.доку прочитать, она хорошо написана, прямо всем бы так.
И книжку в пине, да. Но если вдруг есть еще интересные курсы, то буду рад. Когда искал что-то подобное пару месяцев назад, ничего в ру сегменте не нашел кроме плейлиста Астахова
Jack
Гайз , а где заканчивается ансибл и начинается тераформ? Я так понимаю это мейн стрим связка?
inqfen
Как правило управление инфраструктурой - терраформ, настройка и провиженинг на неё - ансибл
Tadeusz
почему "на" ?
Alex
почему "на" ?
это из серии на/в украину )))
inqfen
Ты хер кладёшь на или в?
Tadeusz
настройка инфры
Andrew
Всем привет, подскажите пожалуйста как грамотно реализовать степ с использованием команды "cat" через ансибл? Задача такая - нужно вписать в конец файла изменякмый (через vars) текст.
Andrew
lineinfile/template
Спасибо! А то никак не могу правильно загуглить
Aleksey
псс народ. есть чо сказать по теме https://stackoverflow.com/questions/61569004/molecule-dependency-in-private-gitlab ?
Отделение Bereke Bank
псс народ. есть чо сказать по теме https://stackoverflow.com/questions/61569004/molecule-dependency-in-private-gitlab ?
А в src ssh нельзя? Если можно - создай deploy key и зашей его приватную часть в образ который запускает CI (image:)
Aleksey
чем это лучше ?
Aleksey
так у меня нет секретов нигде а так будет в имидже
Отделение Bereke Bank
У тебя же енв не прокидывается) а так не будет енвов - не будет проблем
Aleksey
будут проблемы с хранением серкретов в имидже. придут секуры и дадут люлей
Отделение Bereke Bank
так у меня нет секретов нигде а так будет в имидже
Ну тогда бери из CI/CD variables. Type file А вообще не вижу ничего секретного в деплой ключе (ридонли) для такой штуки как роли в приватном гитлабе
Отделение Bereke Bank
Aleksey
сейчас я беру из временных переменных. и мне не надо держать ключ никакой
𝚔𝚟𝚊𝚙𝚜
Привет, а подскажите на вскидку, какой true way дожидаться окончания kubernetes джобы в ansible, есть-ли более правильный вариант чем дёргать API каждые n-секунд через wait_for?
𝚔𝚟𝚊𝚙𝚜
нашел ответ на свой вопрос: wait_condition: type: Complete status: True
Andrew
Подскажите пожалуйста в чем именно трабл? Вроде все по закона ансибла. Возможно я неправильно подошел к исполнению
Andrew
- name: lineinfile: path: /home/{{ item.user }}/.ssh/authorized_keys insertafter: EOF line: '{{ item.key }}' with_items: - { user: '{{ user1 }}', key: '{{ key1 }}' } - { user: '{{ user2 }}', key: '{{ key2 }}' }
Andrew
Попытался придумать что-то для добавления ключей и для последующего входа на сервер
Andrew
LDAP?
Andrew
При чем тут этот протокол?
Sergey
Притом, что ты решаешь с помощью Ansible задачу, которую уже лет 30 решают по-другому.
Andrew
Оу... А вы могли бы подсказать как тогда по человечески к этому подходить?
Max
Ключами через лдап же
Andrew
Аа
Dmitry
- name: lineinfile: path: /home/{{ item.user }}/.ssh/authorized_keys insertafter: EOF line: '{{ item.key }}' with_items: - { user: '{{ user1 }}', key: '{{ key1 }}' } - { user: '{{ user2 }}', key: '{{ key2 }}' }
Также ты можешь настроить ssh сервер так, чтобы он искал ключи для юзера в определенной папке, а не только в определенном файле. Таким образом у тебя будет один ключ = один файл
Andrew
А модуль authorized_key не зашел?
Я почему то когда рылся в доке ансибла не смог это найти. Спасибо, посмотрю, мб найду что-то полезное
Dmitry
Спасибо, правда не представляю пока как такое сделать. Может быть у вас есть какая-то документация по этому?
Я ошибся, можно указать несколько файлов с ключами через пробел, но дирректорию с файлами-ключами вроде никак не указать
GithubReleases
aelsabbahy/goss tagged: v0.3.11 Link: https://github.com/aelsabbahy/goss/releases/tag/v0.3.11 Release notes: release v0.3.11
GithubReleases
aelsabbahy/goss description changed: v0.3.11 Link: https://github.com/aelsabbahy/goss/releases/tag/v0.3.11 Release notes: # Features Many thanks to all the contributors on this release! ## In this release * Increase buffer size to 10MB to handle larger file/url lines ([#583](https://github.com/aelsabbahy/goss/pull/583)) * `http` - Host header works correctly as a... More
𝚔𝚟𝚊𝚙𝚜
A можно как-то заставить такску выполняться в любом случае, даже в случае SIGINT?
𝚔𝚟𝚊𝚙𝚜
ignore_errors: true не подходит?
пробовал и ignore_errors: true, и meta: clear_host_errors ничего не помогает :-/
Artem
пробовал и ignore_errors: true, и meta: clear_host_errors ничего не помогает :-/
Так выполниться должна тачка в которой получается sig int, либо после которой приходит? Можно код и ошибку?
𝚔𝚟𝚊𝚙𝚜
Так выполниться должна тачка в которой получается sig int, либо после которой приходит? Можно код и ошибку?
Конечно: - hosts: localhost gather_facts: no tasks: - name: 'create snapshot' command: 'sleep 1' - block: - name: 'perform backup' command: 'sleep 1m' always: - name: 'delete snapshot' command: 'sleep 1'
𝚔𝚟𝚊𝚙𝚜
вот delete snapshot должна исполняться в любом случае
𝚔𝚟𝚊𝚙𝚜
# ansible-playbook /tmp/1.yaml PLAY [localhost] *********************** TASK [create snapshot] ***************** changed: [localhost] TASK [perform backup] ****************** ^C [ERROR]: User interrupted execution
Artem
# ansible-playbook /tmp/1.yaml PLAY [localhost] *********************** TASK [create snapshot] ***************** changed: [localhost] TASK [perform backup] ****************** ^C [ERROR]: User interrupted execution
так если прокинуть ctrl+c с клавиатуры вручную, то блок не исполнится, насколько помню приоритет так выше. сам иногда этим пользовался
𝚔𝚟𝚊𝚙𝚜
так если прокинуть ctrl+c с клавиатуры вручную, то блок не исполнится, насколько помню приоритет так выше. сам иногда этим пользовался
А какая разница, вот так через kill: # ansible-playbook /tmp/1.yaml PLAY [localhost] *********************** TASK [create snapshot] ***************** changed: [localhost] TASK [perform backup] ****************** [1] 7469 terminated ansible-playbook /tmp/1.yaml
Artem
А какая разница, вот так через kill: # ansible-playbook /tmp/1.yaml PLAY [localhost] *********************** TASK [create snapshot] ***************** changed: [localhost] TASK [perform backup] ****************** [1] 7469 terminated ansible-playbook /tmp/1.yaml
https://pastebin.com/vgCqpp2s не понял зачем таким способом проверять работу блока. надо же, чтобы результат выполнения был не 0, тогда блок выполнится. а не килять приложения ансибла. always отрабатывает на результат задачи в блоке, а не самого процесса ансибла
𝚔𝚟𝚊𝚙𝚜
Ну у меня вопрос не в том как отработать фейл второй таски, а скорее в том как сделать graceful shutdown чтобы выполнить выполнить cleanup
Artem
Ну у меня вопрос не в том как отработать фейл второй таски, а скорее в том как сделать graceful shutdown чтобы выполнить выполнить cleanup
так падать будет ансибл или бекап? если бекап - то такая конструкция сделает cleanup. А если ansible, то не сталкивался с таким
Dmitry
Ну у меня вопрос не в том как отработать фейл второй таски, а скорее в том как сделать graceful shutdown чтобы выполнить выполнить cleanup
было бы кстати круто, если бы anisble умел так. То есть ты по сути хочешь, сам обратывать kill signal. Чтобы в плейбуке выполнялись определенные действия при получении sigint, sigterm
𝚔𝚟𝚊𝚙𝚜
ну у меня может выполняться несколько таких задач одновременно, выполняться они могут достаточно долго, но хочется иметь возможность в любой момент их прекратить, а при прекращении выполнения было бы хорошо подчистить все артефакты за ними
Artem
по мне тут будет чище сделать отдельным плейбуком, и пары строк на баше, либо в настройках шага CI. делать такую обработку в том же плейбуке это ломание абстракции
𝚔𝚟𝚊𝚙𝚜
по мне тут будет чище сделать отдельным плейбуком, и пары строк на баше, либо в настройках шага CI. делать такую обработку в том же плейбуке это ломание абстракции
в целом я согласен, но проблема в том что плейбук хранит стейт, а для того чтобы передать его другому пейбуку нужно кэшировать его где-то на диске
𝚔𝚟𝚊𝚙𝚜
можно конено собрать его заново, но на это нужно заметно больше времени
𝚔𝚟𝚊𝚙𝚜
Кстати ansible уже научился обрабатывать асинхронный lineinfile?
Artem
в целом я согласен, но проблема в том что плейбук хранит стейт, а для того чтобы передать его другому пейбуку нужно кэшировать его где-то на диске
как вариант написать свой модуль. есть модуль паузы, который отрабтывает ctrl+c сигнал. посмотреть реализацию и сделать подобное для своей задачи: https://docs.ansible.com/ansible/latest/modules/pause_module.html
𝚔𝚟𝚊𝚙𝚜
https://docs.ansible.com/ansible/latest/modules/meta_module.html end_play
Каким образом end_play поможет обработать SIGINT?