Vladislav
тогда выполняю таску
Vladislav 👻
Подскажите, а можно сразу файл для крона загрузить при помощи ansible?
Grek 🇺🇦
Vladislav 👻
есть кронтаб файл, его надо загрузить для пользователя
Vladislav 👻
гугл что-то предлагает через shell делать, но как-то такое...
Андрей
Vladislav 👻
🤔
George
А модуля для Кронтаба нет разве ?
Vladislav 👻
не вижу что-то
Grek 🇺🇦
не вижу что-то
https://docs.ansible.com/ansible/latest/modules/cron_module.html
Vladislav 👻
это cron, crontab файлы там нельзя ворочить
Vladislav 👻
только самому лепить, но описывать 115 тасок мне как-то не очень хочется...
Vladislav 👻
и городить огород ввиде циклов и списков тоже
George
Напиши свой модуль для кронтабов
George
Че-то идея их руками создавать мне не очень нравится
Aleksey
George
И вроде как может случиться так, что или каталога нет, или он в другом месте
Отделение Bereke Bank
Отделение Bereke Bank
вот у меня есть ебучий ямл в 1000 строк. 100 кронов сайтов)
Elenhil
Vladislav 👻
проблема в том, что для пользователей мне надо оставить кронтаб лучше всего
George
George
Vladislav 👻
да, похоже, что модуль или баш
Отделение Bereke Bank
https://youtu.be/ZEbg0HryWsU
Vadim "Oxyd"
Кирилл
доброй ночи
подскажите плз, как правильно генерировать конфиги?
Есть zabbix_agentd.conf, в котором нужно поменять строку Server=127.0.0.1 на Server=zbx.name.ololo
Верно ли идеологически брать оригинал конфига, положить его в template как zabbix_agentd.conf.j2
Изменить Server=127.0.0.1 на Server={{ ZBX_HOST }} и далее через var сгенерить конфиг
Или правильно изменять конфиг на целевом хосте через replace?
Tadeusz
да хоть sed'ом )
George
Нормально, через темплейтинг
George
Сед и реплейс не ремкомендую при прочих равных
Mikee
Если не собираешься постоянно менять версии, в которых темплейт нужно будет обновлять постоянно)
Кирилл
спасибо
Gleb
Sergei
еще раз:
- name: "Add lines to config"
# become: yes
become_user: root
become_method: su
become_flags: '-s /bin/sh'
# tags: example2
blockinfile:
path: ./some.txt
marker: ""
block: UUID={{ some_some.stdout }} {{ FSTAB['disk']['system']['point'] }} {{ FSTAB['disk']['system']['fs'] }} {{ FSTAB['disk']['system']['options'] }}
при таком варианте создается:
cat some.txt
пустая строка
UUID=cb141726-00ba-4b79-833c-526f8dfe2494 / ext4 noatime,commit=60,barrier=0,errors=remount-ro 0 1
Sergei
как сделать, чтобы пустой строки не было?
Lamobot
Sergei
Отделение Bereke Bank
Sergei
я же не просто так убрал маркер 😄
Отделение Bereke Bank
Но там будет не пустая строка
Отделение Bereke Bank
А коммент
Отделение Bereke Bank
Sergei
А коммент
как вариант - да. А если мне всё же нужна только строка без коммента?
Отделение Bereke Bank
Ещё можешь блок и маркер поменять местами. Ни разу не пробовал но интересно стало
Sergei
Sergei
#block:
marker: "UUID={{ some_some.stdout }} {{ FSTAB['disk']['system']['point'] }} {{ FSTAB['disk']['system']['fs'] }} {{ FSTAB['disk']['system']['options'] }}"
out:
cat some.txt
empty
block:
marker: "UUID={{ some_some.stdout }} {{ FSTAB['disk']['system']['point'] }} {{ FSTAB['disk']['system']['fs'] }} {{ FSTAB['disk']['system']['options'] }}"
out:
cat some.txt
UUID=cb141726-00ba-4b79-833c-526f8dfe2494 / ext4 noatime,commit=60,barrier=0,errors=remount-ro 0 1
None
UUID=cb141726-00ba-4b79-833c-526f8dfe2494 / ext4 noatime,commit=60,barrier=0,errors=remount-ro 0 1
Отделение Bereke Bank
Хуево)
Отделение Bereke Bank
А почему не темплейт модуль?
Sergei
и тут же строк будет не одна
Sergei
cat some.txt
# system disk
UUID=cb141726-00ba-4b79-833c-526f8dfe2494 / ext4 noatime,commit=60,barrier=0,errors=remount-ro 0 1
# system disk
# home disk
UUID=ce67b130-8f16-43ce-bf67-2225e60ec613 /home ext4 defaults,noatime,commit=60,data=writeback,barrier=0,journal_async_commit 0 2
# home disk
Sergei
маркер вставляется два раза
Sergei
https://stackoverflow.com/questions/41284602/blockinfile-keeps-adding-the-block/41284686#41284686
Sergei
но тут чуть другое
Sergei
## BEGIN system disk
UUID=cb141726-00ba-4b79-833c-526f8dfe2494 / ext4 noatime,commit=60,barrier=0,errors=remount-ro 0 1
## END system disk
## BEGIN home disk
UUID=ce67b130-8f16-43ce-bf67-2225e60ec613 /home ext4 defaults,noatime,commit=60,data=writeback,barrier=0,journal_async_commit 0 2
## END home disk
Sergei
но это же некрасиво)))
Sergei
https://qastack.ru/server/755934/ansible-blockinfile-disable-marker
Sergei
ну э....😂
Sergei
Маркер "" вставит пустые строки в файл
lineinfile удалит их (вместе со всеми остальными пустыми строками), так что будьте осторожны !!
Sergei
такой подход нельзя юзать
Sergei
т.к это конфиг покоцает
Sergei
ВО!111!!! Так работает
lineinfile:
dest: ./some.txt
line: "UUID={{ some_some.stdout }} {{ FSTAB['disk']['system']['point'] }} {{ FSTAB['disk']['system']['fs'] }} {{ FSTAB['disk']['system']['options'] }}"
Sergei
Это не выполняется. Как правильно?
- name: "Add swap fstab"
shell: |
cat <<EOF
if [[ ! -f {{ FSTAB['disk']['swap']['device'] }} ]];then
dd if=/dev/zero of={{ FSTAB['disk']['swap']['device'] }} bs=1024 count={{ FSTAB['disk']['swap']['device'] }}*1024*1024
mkswap {{ FSTAB['disk']['swap']['device'] }}
fi
EOF
Igor
У меня есть переменная в джиндже - {{ myvar | to_json }}. Как мне убрать первое поле джсона?
George
Что такое первое после джисона ?
George
George
Почему тупо не распилить на несколько тасок с регистрацией результата - во-первых
George
А во-вторых задействовать какие-то более конвенциональные способы вызова модулей ?
Igor
Что такое первое после джисона ?
{
"name": "my-role",
"cluster": [
"all"
],
Ну вот идет name, хочу чтобы он обрезался и шел только cluster и все остальное.
George
jmespath ? Подойдёт ?