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
А что еще?
🇷🇺 Роман
я у ж не помню, пока экспериментировал столько всего там видел
Mikhail
https://github.com/ansible/ansible/issues/17935
Mikhail
Я по совету посанов включил пайплайн
Mikhail
Но теперь меня хост удаленный не пускает, ругаясь на пермишены
🇷🇺 Роман
пайплайн не поможет ))
Denis 災 nobody
выкладывайте свои мучения на тот же блоггер
🇷🇺 Роман
я у себя решил вопрос synchronize + become, но решение выглядит конкретно костыльным
🇷🇺 Роман
правда без грязных хаков
Mikhail
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, после чего ключи удаляются
🇷🇺 Роман
подпихивание и удаление сделал в виде просто двух инклудов
Mikhail
там вся засада в работе 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
И все равно боль
🇷🇺 Роман
но мне это не нравится 😀 поэтому интересуюсь, вдруг кто запилил красиво или более красиво
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
🇷🇺 Роман
Vladimir
кстати на хабре есть супер статья про ssh
Vladimir
там очень много фич
Vladimir
а т.к. ssh основной в ансибл лучше изучить эту тему сильнее
Vladimir
https://m.habrahabr.ru/post/122445/
Mikhail
Самое кстати корявое решение
Mikhail
Это запуск rsync через shell
Vladimir
shell вообще использовать не тру
Vladimir
Ну и как бы вы своим rsyc ломаете идемпотентность
Tadeusz
🇷🇺 Роман
manefesto
Или как удалить все Файлы из папки?
Есть вроде file_glob
Но это пиздец
Vladimir
Я беру слова назад про ломаете :D Я чет подумал rsync идемпотентен
Vladimir
Ну все что в ansible начинается с shell это такое
manefesto
Приколы типа переименования папки
Vladimir
И зачем запускать git status ?