UglyKoyote
>>> re.search(r'^#$', symbol) <re.Match object; span=(0, 1), match='#'> >>> re.search(r'^#.$', symbol) >>> А в ansible результат обратный.
проверил через lineinfile, удаляет строку без проблем - если только один символ #, без пробелов и тд
Peter
Спасибо за тест в своем окружении, через час еще раз все прогоню и перепроверю.
UglyKoyote
поэтому что-то "не так" с этой строкой. возможно всё таки там спецсимволы есть какие то, на которые модуль реагирует
元帥
item.value.use_sudo?
Да, в when: item.value.use_sudo == True
Гайрат
Да, в when: item.value.use_sudo == True
Лучше item.value.use_sudo | bool
元帥
Лучше item.value.use_sudo | bool
FAILED! => { "msg": "The conditional check 'item.value.use_sudo | bool' failed. The error was: error while evaluating conditional (item.value.use_sudo | bool): 'list object' has no attribute 'use_sudo'\n\nThe error appears to be in '/tmp/awx_1041_d5th5rpw/project/playbooks/prep_users.yml': line 18, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: Allow certain groups to have passwordless sudo\n ^ here\n"
元帥
- name: Allow certain groups to have passwordless sudo lineinfile: path: /etc/sudoers state: present regexp: '^%"{{ item.key }}"' line: '%{{ item.key }} ALL=(ALL) NOPASSWD: ALL' validate: '/usr/sbin/visudo -cf %s' when: item.value.use_sudo | bool with_dict: "{{ groups }}"
元帥
groups: wheel: use_sudo: True oinstall: use_sudo: False
Roman
как передать в файл данные не одной строкой а списком типа один два три etc
Roman
у меня выходит только одной строкой
Отделение Bereke Bank
Подскажите. Есть 2 плея со следующими параметрами в hosts: hosts: all:&{{ workers_group_name }} hosts: all:&{{ masters_group_name }} список ролей одинаковый. Но если объединять hosts через , - получается херня. Не могу допереть как сделать правильно
Отделение Bereke Bank
@tnt4brain не подскажешь? 😄
fs
привет всем, народ, если есть к примеру несколько окружений (dev, prod) как вы упарвляете ими через ansible? у вас тип одни и те же плейбуки для всего и все через переменные в stack_inv.config-s ? и все в одном репе? или для каждого сервиса отдельный реп и общие переменные дублируются? что можете посоветовать ?
UglyKoyote
разные инвентори самое простое
Sergey
hosts: "{{ group_names[workers_group_name] + group_names[masters_group_name] }}"
Sergey
all:& не надо?
Подумай, что это означает 😊))) Это означает "выбрать из all то, что также входит в ...." Но у тебя все хосты и так в all входят.
fs
разные инвентори самое простое
а есть где почитать про другие варианты? ибо реп растет плейбуков дофигища, спустя пару лет там гига 3 к примеру будет, и клонить это все на билд сервер что бы задеплоить какую то бздюльку как то не то))))
Отделение Bereke Bank
Подумай, что это означает 😊))) Это означает "выбрать из all то, что также входит в ...." Но у тебя все хосты и так в all входят.
да теперь дошло, что ты склеиваешь dict-ы. Спасибо 😊 Вот только я теперь думаю нужен ли вообще этот all:&{{ bla_bla }} в других местах. Брал отсюда https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html#id6
Sergey
500M =)
500М текста?
fs
да
Sergey
да
Сколько ролей?
Отделение Bereke Bank
list-ы
пардон)
fs
штук 400
fs
штук 400
это копилось лет так 10 =)
fs
наверное
Sergey
штук 400
хм, а принцип "одна роль - один компонент" соблюдается? Ну типа - сколько ролей у тебя манипулируют конфигами Nginx-а?
Отделение Bereke Bank
привет всем, народ, если есть к примеру несколько окружений (dev, prod) как вы упарвляете ими через ansible? у вас тип одни и те же плейбуки для всего и все через переменные в stack_inv.config-s ? и все в одном репе? или для каждого сервиса отдельный реп и общие переменные дублируются? что можете посоветовать ?
я пришел к тому что у каждого окружения своя репа с инвентори и плейбуками. роли подключены как сабмодули Удобно. Но иногда это вызывает кучу телодвижений, когда одну и ту же версию роли нужно накатить на все окружения
Sergey
Я вот не берусь утверждать, что за 6 лет написал 400 ролей 😃
Roman
Привет, возможно в плейбуке выполнить только файл add_repo.yml у роли?
fs
👍 Однако, человече.....
крч) я хотел узнать какие есть еще варики кроме того что писал я и: я пришел к тому что у каждого окружения своя репа с инвентори и плейбуками. роли подключены как сабмодули Удобно. Но иногда это вызывает кучу телодвижений, когда одну и ту же версию роли нужно накатить на все окружения
Отделение Bereke Bank
hosts: "{{ group_names[workers_group_name] + group_names[masters_group_name] }}"
странно что в доке я этого не нашел 😑 в других плеях можно так же сделать получается без всяких all:&
fs
если нет то ок)
Отделение Bereke Bank
hosts: "{{ group_names[workers_group_name] + group_names[masters_group_name] }}"
я же правильно понимаю - вместо условного hosts: all:&{{ masters_group_name }} я могу заюзать: hosts: "{{ group_names[masters_group_name] }}"
Отделение Bereke Bank
hosts: "{{ group_names[workers_group_name] + group_names[masters_group_name] }}"
ну и эти имена групп так же extra-vars-ами передавать
ep4sh
не понимаю как увидеть stable версию Ansible?
Roman
- name: do something include_role: name: common tasks_from: login
Спасибо, просто думал что-то подобное есть: roles: - nginx - { role: postgresql, file: add_repo.yml }
ep4sh
2.9 ?
Timur
Есть requirements и ansible-galaxy
ep4sh
в документации / интернете / как ее вообще определить
ep4sh
релиз цикл - полгода
ep4sh
может такого понятия и нет вовсе?
Alex
https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html
Timur
в документации / интернете / как ее вообще определить
https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html
ep4sh
Видел, спасибо. Опять же неявно. Можете пояснить пожалуйста как это трактовать?
ep4sh
Maintained (security and general bug fixes)
Alex
2.9 Maintained (security and general bug fixes) 2.8 Maintained (security and critical bug fixes) 2.7 Maintained (security fixes) ansible 2.9 2.9 и есть по сути stable ansible 2.8 исправляют критические баги и баги связанные с безопасностью ansible 2.7 не развивается, только фиксят баги связанные с безопасностью
fs
https://devops4solutions.com/manage-ansible-playbook-for-multiple-environments/ https://www.digitalocean.com/community/tutorials/how-to-manage-multistage-environments-with-ansible вот если кому интересно пару альтернатив
Michael
Народ привет! Сразу скажу что читать документацию я умею и вопрос у меня собственно не по ней. У меня возникли трудности с самим началом эксплуатации ансибля. Собственно есть мешок серверов, на которых есть nginx и php-fpm. Вот они уже настроены и работают. Периодически надо править конфиги: добавлять location в nginx, включать/выключать параметры в php-fpm. Я знаю что конкретно сейчас я делаю не правильно: я пока сделал роль на каждую группу серверов, в роль сложил файлы конфигов и положил всё это в гитлаб. При необходимости я все ещё руками правлю файлы, запускаю рядом лежащий плейбук, коммичу в репу. Меня больше интересует не столько вопрос автоматизации запуска плейбука, сколько правильный подход к организации конфигурационных файлов и шаблонов. В рамках роли что где лежит я знаю. Я имею ввиду какой правильных (true way) подход в этом плане - когда ты пишешь не на чистую систему плейбуку, а на уже работающую?! Например у меня на некоторых серверах сертификаты для nginx лежат рядом с ним - надо ли предварительно их оттуда вытаскивать?! Надо ли всякие служебные конфиги (mime.types) складывать в репу с ролью? Как короче правильно и без сильной анальной боли подойти к вопросу столь сложному?!)) Просто гайдов в тырнете 100500, о том как начать, а вот о том как правильно организовать - не нашёл (возможно гуглил не правильно). Короче дайте совет куда копать?!
Sergey
Народ привет! Сразу скажу что читать документацию я умею и вопрос у меня собственно не по ней. У меня возникли трудности с самим началом эксплуатации ансибля. Собственно есть мешок серверов, на которых есть nginx и php-fpm. Вот они уже настроены и работают. Периодически надо править конфиги: добавлять location в nginx, включать/выключать параметры в php-fpm. Я знаю что конкретно сейчас я делаю не правильно: я пока сделал роль на каждую группу серверов, в роль сложил файлы конфигов и положил всё это в гитлаб. При необходимости я все ещё руками правлю файлы, запускаю рядом лежащий плейбук, коммичу в репу. Меня больше интересует не столько вопрос автоматизации запуска плейбука, сколько правильный подход к организации конфигурационных файлов и шаблонов. В рамках роли что где лежит я знаю. Я имею ввиду какой правильных (true way) подход в этом плане - когда ты пишешь не на чистую систему плейбуку, а на уже работающую?! Например у меня на некоторых серверах сертификаты для nginx лежат рядом с ним - надо ли предварительно их оттуда вытаскивать?! Надо ли всякие служебные конфиги (mime.types) складывать в репу с ролью? Как короче правильно и без сильной анальной боли подойти к вопросу столь сложному?!)) Просто гайдов в тырнете 100500, о том как начать, а вот о том как правильно организовать - не нашёл (возможно гуглил не правильно). Короче дайте совет куда копать?!
Да нет разницы. Все конфиги сложи куда следует (в шаблоны), роли гоняй с —check —diff. Это позволит тебе без ломания прода получить ситуацию "мои роли соответствуют тому, что лежит на проде". Конечно, придётся отказаться от shell, command, lineinfile и прочей срани, но результат того стоит.
Michael
Да нет разницы. Все конфиги сложи куда следует (в шаблоны), роли гоняй с —check —diff. Это позволит тебе без ломания прода получить ситуацию "мои роли соответствуют тому, что лежит на проде". Конечно, придётся отказаться от shell, command, lineinfile и прочей срани, но результат того стоит.
Шаблоны я пока пользую для основных конфигов nginx: апстримы, основной конфиг. А вот с location уже сложнее. Там может быть люто глубокая вложенность (Битрикс24) и я пока не одупляю что и как можно придумать. Начал я короче с простого: сложил все в репу и версионирую потихонечку. Но хочется по феншую :) Для тестирования уже начал курить молекул - штука огонь 🔥
Michael
Jinja2 в помощь.
Буду курить сильнее.
Sergey
Буду курить сильнее.
Ну и всегда можешь ведь свой плагин/модуль запилить, который будет по нужным входным данным генерить что-то на выходе .
Sergey
Вчера наткнулся на иллюстрацию крайне частого способа использования Ансибла.
Sergey
ep4sh
😃
ep4sh
отличная гифка
Отделение Bereke Bank
Есть requirements и ansible-galaxy
да чет не зашло))
Mik
Привет всем, кто как на лету в плейбуке меняет порт ссх?
Гайрат
Привет всем, кто как на лету в плейбуке меняет порт ссх?
https://dmsimard.com/2016/03/15/changing-the-ssh-port-with-ansible/