Terry
да, я уже увидел
блин, попробую сегодня вечером запилить
Terry
список сайтов составьте))
Dmitry
воу воу
Dmitry
сюда не надо )
Terry
омг
Terry
ну не так не
Dmitry
омг
ну там же много книжек не по теме ансибла будет
Dmitry
лучше канал запилить, туда бота
Terry
канал есть если шо
Terry
https://t.me/sysadmin_books
Terry
и так вгрузил тудой много чего
Terry
можешь туда залить что есть
GithubReleases
https://github.com/ansible/ansible/releases/v2.5.0a1 was tagged
🇷🇺 Роман
всем привет!
🇷🇺 Роман
коллеги, есть необходимость в ansible юзать synchronize с become. влоб оно не работает... может у кого есть какие наработки на этот счет?
Denis 災 nobody
думаю, у кого-то есть.. к обеду раскачаются?
Mikhail
А что еще?
🇷🇺 Роман
я у ж не помню, пока экспериментировал столько всего там видел
Mikhail
https://github.com/ansible/ansible/issues/17935
Mikhail
Я по совету посанов включил пайплайн
Mikhail
Но теперь меня хост удаленный не пускает, ругаясь на пермишены
🇷🇺 Роман
пайплайн не поможет ))
Denis 災 nobody
выкладывайте свои мучения на тот же блоггер
🇷🇺 Роман
я у себя решил вопрос synchronize + become, но решение выглядит конкретно костыльным
🇷🇺 Роман
правда без грязных хаков
Denis 災 nobody
комментили уже? )
Denis 災 nobody
Расширяем функционал Ansible с помощью модулей https://habrahabr.ru/post/348118/ Tags: Серверное администрирование, IT-инфраструктура, DevOps, Блог компании D2C.io, ansible, devops, infrastructure as code Author Berlic on #habrahabr
🇷🇺 Роман
Покажешь?
там вся засада в работе rsync + ssh, куда не передается пароль из ansible (об этом много раз писали...), поэтому я запилил пару RSA ключей, которые лежат в vault файле перед выполнением synchronize на управляемый хост пихается открытый ключ, а на хост, с которого играется плейбук, закрытый, затем отрабатывает synchronize, после чего ключи удаляются
🇷🇺 Роман
подпихивание и удаление сделал в виде просто двух инклудов
🇷🇺 Роман
Ааа, до этого я тоже дошел, но это мне пиздецом таки показалось.
именно, другие варианты никак не прокатили у меня вообще
Vladimir
А если форвард ключа сделать в ssh ?
🇷🇺 Роман
типа такого - name: Copy ansible public key to managed server lineinfile: path: "~{{ ansible_user }}/.ssh/authorized_keys" line: "{{ rsa_public_key | b64decode }}" create: yes owner: username group: usergroup mode: 'u=rw,go=' changed_when: false tags: - bind - manage_dns - name: Create ansible private key file on local station vars: ansible_become: no local_action: module: copy content: "{{ rsa_private_key | b64decode }}" dest: ~/.ssh/ansible.key mode: 'u=rw,go=' changed_when: false tags: - bind - manage_dns
Vladimir
Мне кажется проще же форвард сделать в ссш ключа и ходить ключом своим везде
Vladimir
И не должно быть такой боли
🇷🇺 Роман
да, если нет требования, что ключей не должно быть )))
Vladimir
Странное требование имхо ) Но что есть :)
🇷🇺 Роман
Мне кажется проще же форвард сделать в ссш ключа и ходить ключом своим везде
этот костыль менее универсальный... не получится с абсолютно любой станции сыграть плейбук, т.к. ключа на ней просто нет и это тоже надо предусматривать
Vladimir
Ну я свой ключ на все серваки из коробки кидаю
🇷🇺 Роман
мой костыль можно сыграть откуда угодно
🇷🇺 Роман
Ну я свой ключ на все серваки из коробки кидаю
"я" - это не универсальное решение, а частное
🇷🇺 Роман
🙂
Vladimir
Можно кидать деплой кей
🇷🇺 Роман
Можно кидать деплой кей
вооо, в итоге то же самое, что у меня, и получится )))
Vladimir
ну примерно да )
Mikhail
И все равно боль
🇷🇺 Роман
но мне это не нравится 😀 поэтому интересуюсь, вдруг кто запилил красиво или более красиво
Mikhail
Не работает нихрена
Vladimir
Нужно его включить на хостах же
Vladimir
В конфиге SSH как бы
Vladimir
Это как раньше по дефолту пермитрутлогон надо было отключать , сейчас форвард включать где надо )
Vladimir
Я вообще историю про чистый SSH а не Ansible
Vladimir
Тут он просто экзекютер
Mikhail
Хм. Сейчас гляну, попробую.
🇷🇺 Роман
synchronize у меня вот так: - include_tasks: roles/.include/create-ansible-keys.yml tags: bareos - name: Copy Bareos Director config files in /etc/bareos/bareos-dir.d/ synchronize: src: "{{ bareos_dir_path|regex_replace('^(.*)/$', '\\1') }}/" dest: /etc/bareos/bareos-dir.d/ delete: yes recursive: yes owner: yes group: yes perms: yes compress: yes times: yes rsync_timeout: 5 use_ssh_args: yes rsync_path: "sudo -S «< '{{ ansible_become_pass }}' /bin/true && sudo rsync" rsync_opts: - "--rsh=/usr/bin/ssh -i ${HOME}/.ssh/ansible.key -S none" - "--chown=bareos:bareos" - "--chmod=Fu=rw,Fg=r,Fo=,Du=rwx,Dg=rx,Do=" when: bareos_dir_path is defined notify: reload bareos-director tags: bareos
Mikhail
этот костыль менее универсальный... не получится с абсолютно любой станции сыграть плейбук, т.к. ключа на ней просто нет и это тоже надо предусматривать
У меня на сервере с которого разливаю есть su'ки, которым я свой приват, даже запароленный, давать не хочу
🇷🇺 Роман
У меня на сервере с которого разливаю есть su'ки, которым я свой приват, даже запароленный, давать не хочу
строго говоря, им никто не мешает поправить как надо плейбук и сыграть нужные им вещи
Vladimir
кстати на хабре есть супер статья про ssh
Vladimir
там очень много фич
Vladimir
а т.к. ssh основной в ансибл лучше изучить эту тему сильнее
Vladimir
https://m.habrahabr.ru/post/122445/
Mikhail
Самое кстати корявое решение
Mikhail
Это запуск rsync через shell
🇷🇺 Роман
Это запуск rsync через shell
в ansible оно так работает ((
Vladimir
shell вообще использовать не тру
Vladimir
Ну и как бы вы своим rsyc ломаете идемпотентность
manefesto
shell вообще использовать не тру
Скажи как сделать git status без шела
Mikhail
shell вообще использовать не тру
Согласен, но а что поделать. Это вынужденная мера.
manefesto
Или как удалить все Файлы из папки? Есть вроде file_glob Но это пиздец
Vladimir
Я беру слова назад про ломаете :D Я чет подумал rsync идемпотентен
Vladimir
Ну все что в ansible начинается с shell это такое
manefesto
Приколы типа переименования папки
Vladimir
И зачем запускать git status ?
🇷🇺 Роман
Я беру слова назад про ломаете :D Я чет подумал rsync идемпотентен
чем же результаты будут отличаться, если проиграть несколько раз?