Aleksey
а я столкнулся что надо запиливать поддержку users.d и чот мне так все опротивело что решил вдруг ты уже сделал и вдруг поделишься
Ievgen
мм а юзера откуда?
Ievgen
directory какой то или?
Aleksey
ну по уму надо reusable роль которая на вход будет получать юзера, пароль и ограничения для оного и формировать файлик /etc/clickhouse-server/users.d
Aleksey
ну и два словарика users_present, users_absent
Aleksey
но бе
Ievgen
мм я в целом пошел по другому пути немного
Ievgen
у меня есть setup.yml для сервиса который содержит dict с конфигами, куда положить итд итп, стандартный
Ievgen
который парсится в начале play
Ievgen
и набор тасков на каждую секцию
Aleksey
есть чо почитать ?
Ievgen
допустим: config_files: - tier: ['all'] consul: - name: "consul-{{ service }}.json.j2" dest: "/etc/consul/agent.d/{{ service }}.json" clickhouse: - name: "ch.config.xml" dest: "/etc/clickhouse-server/conf.d/config.xml" - name: "ch.users.xml" dest: "/etc/clickhouse-server/conf.d/users.xml" zoo_template: - name: "zookeeper.xml.j2" dest: "/etc/clickhouse-server/conf.d/zookeeper.xml" service: zookeeper
Aleksey
о. велосипед. люблю такое. продолжай :)
Ievgen
секций - tier: может бытъ N с похожими сервисами которые допустим отличаются парой файлов
Ievgen
когда парсится сетап мерджатся секции all и конкретный service
Ievgen
items для конкретного таска выбираются например: with_items: "{{ config_files|json_query(query) }}" vars: query: "[?contains(tier, '{{ service }}') || contains(tier, 'all')].*[][?not_null(dest)]"
Ievgen
а че велосипед?
Ievgen
просто не все умеют прямо в ансибл
Ievgen
людям нужен некий понятный конфиг в известном месте
Ievgen
а так человек добавляет в релевантную секцию что то, дергает wrapper с нужными тегами и ему все деплоится
Ievgen
куда надо
Aleksey
ой а можно всё кучкой?
Ievgen
в плане?
Aleksey
я кажется идею понял но жажду деталей. :)
Ievgen
полностью конфиг?
Aleksey
лучше роль ;)
Ievgen
охм, надо ее как то загенеритъ, ну всмысле подчиститъ от наших пасочек
Andrew
Кто как удаленно копию файла делает, а? Синхронайз не, копи - тож как то не…
Danila
Почему нет?
Leonid
Copy: backup Почему нет?)
Andrew
Копи - эт на мастере надо файл иметь, я хочу просто удаленно скопировать файл
hdhog
у меня как то так. - name: CentOS | Copy backups fetch: src: "{{ item.backup_file }}" dest: backups/{{ ansible_hostname }}/{{ role_name }}/{{ item.backup_file | dirname }}/{{ item.backup_file | basename }} flat: yes notify: remove backups no_log: yes when: item.changed == True and item.backup_file is defined and centos_enable_cfg_backups with_items: "{{ cfg_changes }}"
hdhog
а в тасках где меняются файлы стоит опция backup: yes и регистрация переменной
hdhog
собираем все переменные в кучу - name: CentOS | Set changes set_fact: cfg_changes: - "{{ motd_changed }}" - "{{ tmux_changed }}" - "{{ zsh_changed }}" - "{{ yum_conf_changed }}"
Andrew
Так ты делаешь фетч
hdhog
да. чтобы забрать бекап с сервера
Andrew
А мне все на одной машине надо
Andrew
Интересно, фетч и делегейт_то че сделает
hdhog
то есть ты хочешь на локальной машине сделать конфиг сначала а ток потом его копировать?
hdhog
ну тут можно через local_action
hdhog
пиши конфиги куда либо локально потом заливай на сервер то что получилось
Andrew
Нет
Andrew
Хочу пойти на хост и на нем сделать копию файла. Ssh "cp a.o b.o"
Andrew
И так на всех хостах
hdhog
аа
hdhog
у copy есть параметр remote_src
hdhog
- name: copy custom rules copy: remote_src=True src=/etc/mail/spamassassin/scripts/ru_re.cf dest=/etc/mail/spamassassin listen: custom_rules_changed
hdhog
вот что ты хочешь
Andrew
А, да? Не заметил
hdhog
доки рулят))
Andrew
Я его в анархиве видел 😊
Emin Aliyev
Всем привет
Dmitry
Dmitry
Коллеги, не сталкивался ли кто-нибудь с вот таким поведением при попытке fetch любого файла? Плейбук простейший - hosts: routers gather_facts: no tasks: - fetch: src: "/etc/config/openvpn" dest: "home/cnc/fetched/"
Emin Aliyev
не подскажите как прикрутить Foreman?
Emin Aliyev
что то не получяется
Sergey
Значит, твоё - модуль raw. Про бОльшую часть остального можно смело забыть.
Sergey
Ты же хочешь ансибл использовать? Тогда опять же через raw вызывать установку питона, а дальше все пути открыты.
manefesto
Кто нибудь собирал кастомные шаблоны для lxc ?
manefesto
по аналогии с proxmox
Dorian
/rmkb@remkeybot
Dmitry
Господа, как в модуль raw вставлять многострочные команды? Например, с помощью echo нужно создать конфиг с многими строками. В доках не нашёл
Leonid
Добрый день. Есть же blockinline... или как то так)
Leonid
- raw: | cat <<EOF This is a test. EOF Попробуй, если всё же именно raw нужен)
Leonid
Получилось! Спасибо)
Пожалуйста, это YAML синтакс
Vladimir
Господа, подскажите пожалуйста про модуль add_host
Ievgen
а что с ним?
Vladimir
Он куда пишет информацию или это без указания dir пишет в память ?
Vladimir
Since Ansible version 2.4, the inventory_dir variable is now set to None instead of the ‘global inventory source’, because you can now have multiple sources. An example was added that shows how to partially restore the previous behaviour.
Vladimir
Т.е. переменная эта не определена, даже если дебагом посмотреть, но я не понимаю куда он без указания файла пишет эту инфу ? Или это просто в памяти на время работы ?
Ievgen
он жсегда пишет в память
Ievgen
- name: Ensure inventory vars are set to the same value as the inventory_hostname has (close to pre 2.4 behaviour) add_host: hostname: charlie inventory_dir: "{{inventory_dir}}"
Vladimir
Т.е. в этом случае он все же запишет в файл ? А если без inventory_dir то в памяти пока крутится плейбук ?
Ievgen
если ты хочешь добавить уже существующий хост в другую группу, то ты можешь взять переменные хоста