Anton
сейчас так--- - hosts: all user: root sudo: yes tasks: - name: add string file network lineinfile: path: /etc/sysconfig/network-scripts/ifcfg-enp0s3 regexp: '^DOMAIN=' line: DOMAIN=" {{ JoinToDomain }} " - name: restart network service: name=network state=restarted
Ivan
это дополнительным шагом?
это просто пример способа при помощи которого можно получить факты
Ivan
что-то вроде path: /etc/sysconfig/network-scripts/{{ item }} with_items: "{{ ansible_interfaces }}"
Jack
привет, гайз, а мб кто подскажет, как проще всего передать в экстра вар path, в самой буке уже начинается пляска с экранированием и что он резолвится не совсем корректно.
Я и твой кот
Привет. В структуре роли файлик плейбука {role}/tests/test.yml нигде автоматически не вызывается? Его руками нужно запускать?
Я и твой кот
Если я ставлю веб сервер ролью, то куда мне логично засунуть проверку, что он начал отвечать на 80 порту? Неужели в {role}/tasks/main.yml?
George
или создать port-testing.yml in tasks folder
George
И вызывать его из основного *.yml в конце установки
George
ну как вариант, я бы так сделал
Denis 災 nobody
🗓 DevOps Quiz 30 июня в 19:00 (МСК) DevOps Quiz – это командная интеллектуальная игра на знание и понимание методологии DevOps. Можно сравнить с форматом "60 секунд", "Что? Где? Когда?" и "Мозгобойней". Регистрация: https://events.epam.com/events/devops-quiz FAQ: 🔹Как будет проходить квиз? Квиз будет в онлайн-формате. За день до мероприятия пришлём ссылку на трансляцию и ссылку на форму для заполнения ответов. 🔹Сколько игроков должно быть в команде? От 1 до 6 человек. 🔹А будут ли призы? Да, будут. Команды, занявшие первые 3 места, получат призы. 🔹Что нужно для участия? Хорошее качество интернета и отличное настроение :) 🔹Как участникам команды общаться между собой? Это на ваш выбор – можете использовать мессенджеры или созваниваться через приложения типа Skype, Zoom или Discord. Проверьте свои знания и понимание DevOps-практик – примите участие в квизе!
Denis 災 nobody
участие бесплатное
Саша
где взять 6 девопсов в одной команде?
Alexander
О, хочу в тиму
Aleksey
у меня есть команда которая сегодня вся попросила доступ а все сервера. сказала такой у них t-shape
Aleksey
8 человек в команде. 2 бекендера, фронтентедр, по, тестер, девопс, и саентологи вроде еще
Aleksey
но нет. всё девопсят
Sergey
>> саентологи дата-сатанисты?
Sebor▂▅▇█▓▒░
>> саентологи дата-сатанисты?
Не, тебе не показалось
Aleksey
>> саентологи дата-сатанисты?
мы не на столько знакомы
Aleksey
я тут чот подумал, а не собирал ли кто в кучку набор опций которые будут максимально "безопасные" с точки зрения типов, изоляции и прочего такого ?
Junglist
Всем привет, вопрос от новичка, голову сломал с таким вот кейсом: Есть инвентарь из N-цать хостов, все они входят в группу Main. Некоторые из них также входят в подгруппу SubGroup. в group_vars для Main указываю список софта который необходимо установить и записываю в переменную software. В group_vars для SubGroup указываю дополнительынй софт для подгруппы в туже переменную software. Результат: получаю в software только значения для SubGroup. Нормальное поведение, но какой бест практис посоветуете чтобы решить такой кейс? использование hash_behaviour = merge вроде как моветон.
Aleksey
определить правильный порядок переиспользования переменных
Aleksey
скорее всего вторую субгруппу надо передать как vars или в другом месте
Aleksey
например private_role_vars имеет default False
Anonymous
в ансибле отсутствует понятие видимости переменных
Anonymous
есть фильтр omit(частный случай default) для откидывания несуществующих ключей. И более общий случай с default(), если переменная "пустая" и нужно что-то туда вкатить по умолчанию
Aleksey
или force_valid_group_names
Anonymous
это все что есть. хотя, могу ошибаться
Aleksey
там есть еще довольно много всякой нечисти которая оставлена потому что оно раньше так было и нам надо это деприкейтить но всё сломается.
Aleksey
иногда у меня есть green field и хочется сделать максимально норм
Anonymous
лучше пересмотреть задачу и сделать проще
Anonymous
"упростить" логику
Anonymous
ansible не язык программирования. чем проще и "тупее" реализация playbook, тем лучше
Гайрат
башсибл: выходит на сцену
Anonymous
ну, не надо из крайности в крайность
Anonymous
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html можно один два раза прочитать
Roman
Всем привет. Изредка плейбук сбрасывается с такой ошибкой "ERROR! A worker was found in a dead state" Т.е. даже это не трейсбек. Во всех случаях это случалось на долгих тасках. Как можно продиагностировать, почему воркер помирает? Ansible 2.9.6
Anonymous
если появилось желание написать плагин или модуль, то первым делом нужно прилечь на диван/кровать и еще раз подумать: "А точно ли надо?"
Roman
скорей всего настройки ssh сессий или файрвол, который рубит ssh сессии
попробуй с модулем pause минут на 5 - эта ошибка оч редка
Anonymous
по "фотографии" сложно сделать диагноз
Владимир
Anonymous
есть конкретный кейс с воспроизводимой ошибкой?
Anonymous
selinux, файрвол, настройка ssh сессии. есть море факторов
Anonymous
Мб ещё нужно проставить UseDns= no конфиге sshd
это опция про долгое соединение с хостами. она не про "отпадывание" ssh сессии
Anonymous
чтобы посмотреть подробный дебаг
Alexander
Всем привет! есть вот такой конфиг: applications: - name: application1 subfolder: subfolder1 - name: application2 subfolder: subfolder2 folder: /opt/ каким образом можно дополнить список, чтобы получить, например, вот такой список? applications: - name: application1 subfolder: subfolder1 fullPath: /opt/subfolder1 - name: application2 subfolder: subfolder2 fullPath: /opt/subfolder2
Alexander
И, судя по всему, тривиального решения нет :(
Slayer
для awx в докере нужен ансибль где то в отдельном докере или локально на системе? Или это полностью автономная сборка? awx_web awx_task...
Slayer
ок, спасибо
Alexander
Ты же понимаешь, что это у тебя не "список", а словарь из одного ключа, значением которого является список, элементами которого являются словари?
пришел к такому костылингу 🙂 - set_fact: applications_new: "{{ (applications_new | default([])) + [item | combine({'fullPath': folder ~ item.subfolder})] }} " loop: "{{ applications }}"
Tadeusz
ну ты злодей)
Alexander
ну ты злодей)
лучше варианта не придумал. вариант с кастомным фильтром как-то даже не рассматривал 🙂
Junglist
как инветори то устроены у вас с таким подходом? флаты установить всё на всё?
Sergey
как инветори то устроены у вас с таким подходом? флаты установить всё на всё?
Лично у меня инвентори устроены очень удобно: одинаковые группы в 5 окружениях. Как результат - одни и те же плейбуки повсюду.
Junglist
я так понимаю что в ансибл нкт подхода родитель-детенышь, и если ты изменяешь детенущевую сущность то будь добр считать что ты её перезаписал а не заапендил
Nikita
модуль stat фейлится на файлах из директориях с такими правами drwxr-x--- The full traceback is: WARNING: The below traceback may *not* be related to the actual failure. File "/tmp/ansible_stat_payload_b8TRux/__main__.py", line 476, in main st = os.lstat(b_path) fatal: [kube-master-02.srv-lan]: FAILED! => { "changed": false, "invocation": { "module_args": { "checksum_algorithm": "sha1", "follow": false, "get_attributes": true, "get_checksum": true, "get_md5": null, "get_mime": true, "path": "/etc/audisp/audispd.conf" } } } MSG: Permission denied
Nikita
что то уже все перепробовал(
Michael
что то уже все перепробовал(
Довольно глупый но очевидный вопрос - а под кем ты на сервере?
Nikita
ansible-playbook -vvvvv -K --flush-cache test.ym
Nikita
добавил become: true заработало, но это плейбук kubespray
Nikita
ansible_user - для хостов какой?
дефолтный на тачке, root только через sudo есть
Sebor▂▅▇█▓▒░
что то уже все перепробовал(
А не пробовал сравнить владельца директории/файла с пользователем, из-под которого ходит ансиболь?
Nikita
ansible-playbook -b помог
Sebor▂▅▇█▓▒░
Ты хоть причину то понял?...
Sebor▂▅▇█▓▒░
Ну я надеюсь, что не все тут снежинки) Просто не знать такие элементарные вещи, как права в юниксах - мягко сказать, странно
Sebor▂▅▇█▓▒░
Sergey
Ты хочешь всем желающим за незнание базовых вещей флаеры на повидло выдавать?
Sergey
Увидишь: https://www.meme-arsenal.com/memes/b86e152fade9fcb696ab18e68e29ac5c.jpg