Dmitriy
test_home: "/home/test" сейчас там вот такое значение
Egor
там ещё есть gotchas, там, прямо есть твой пример
Egor
foo: "{{ variable }}/additional/string/literal" foo2: "{{ variable }}\\backslashes\\are\\also\\special\\characters" foo3: "even if it's just a string literal it must all be quoted"
Dmitriy
понял, спасибо, я заключал в " только саму переменную, а нужно всю фразу
Dmitriy
src: "{{ test_home }}/test/test.txt" вот так если кто не понял. Всем спасибо :)
Slava
В notify можно как-то из модуля значение path использовать? Например: lineinfile: path: /path/to/file line: "test OK" state: present notify: "runsmth {{ path }}"
Slava
Хотя в целом, наверное, не очень хорошая идея в module_args лезть.
DVG_Lab
Хочу странного, провиженинг вагранта ансиблом под win10 через WSL, делаю все как написано тут https://www.vagrantup.com/docs/other/wsl.html но vagrant ssh требует пароль, а значит ключ не работает. Ругани вроде нет, лезу внутрь виртуалки и там не нахожу ~/.ssh/authorized_keys Куда копать?
Sergey
Причём тут Ansible?
DVG_Lab
Причём тут Ansible?
Ну может был у кого опыт с вагрантом..
DVG_Lab
Или мож отдельный чатик по вагранту посоветуете, я чот сходу не нашел
Отделение Bereke Bank
попробуй сюда https://t.me/ru_hashicorp
DVG_Lab
О, спасибо.
Sergey
О, спасибо.
Ещё раз - у тебя нет проблемы с вагрантом. Проблема в незнании того, что если authorized_keys для конкретной учётки не сущесвтует - его нужно просто создать руками.
DVG_Lab
Ещё раз - у тебя нет проблемы с вагрантом. Проблема в незнании того, что если authorized_keys для конкретной учётки не сущесвтует - его нужно просто создать руками.
да это понятно, вагрантовский провиженинг должен сам его создавать и он рапортует о том что ключ зафигачен в виртуалку, а по факту его нет. Пойду в соседний чатик
Anonymous
Подскажите, можно ли в одном массиве делать еще доп массив. Имею условно объявление в vars clickhouse: users: - {networks_incl: "networks", networks_replace: "replace", profile: "default", quota: "default", ip: 12.3.4 }.
Anonymous
Задача такая что у меня поле ip: может быть много
Anonymous
и в реальости выглядить примерно так <default> <password>asdsadsad</password> <networks incl="networks" replace="replace"> <ip>::/0</ip> <ip>10.0.0.0/8</ip> </networks> <profile>default</profile> <quota>default</quota> </default>
Anonymous
то есть мне нужно в параметр ip передавать нескольок парамеетров которые я уже в шаблоне вставлю
Timur
И в чем проблема?
Anonymous
не до конца понимаю как в ip поставить штук 5 разных
Anonymous
которые я через for хотел бы в шаблоне вставлять
Timur
В чем проблема дать список?
Anonymous
пример как правильно оформть ip: чтобы можно было с ним работать в массиве
Anonymous
хотя я кажеться нашел
Timur
-ться и тся пишутся в разных случаях
Timur
"кажеться" - не пишется никогда
Anonymous
разобрался, относительно даже просто и логично получилось
Anonymous
Тимур как сведа своими комментариями и вопросами наталкивает на ответ
Timur
Egor
Граммар наци негодуе?
Anonymous
вопрос на засыпку есть такая штука в шаблоне
Anonymous
{% for user in clickhouse.users %} <{{user.name}}> <password>{{user.password}}</password> <networks incl="{{user.networks_incl|default('networks')}}" replace="{{user.networks_replace|default('replace')}}"> {% if user.ip is defined %} {% for ip in user.ip %} <ip>{{ip|default('::/0')}}</ip> {% endfor %} {% else %} <ip>{{user.ip|default('::/0')}}</ip> {% endif %} </networks> <profile>{{user.profile|default('default')}}</profile> <quota>{{user.quota|default('default')}}</quota> {% if user.readonly is defined%} <readonly>1</readonly> {% endif %} </{{user.name}}> {% endfor %}
Anonymous
а так выглядит в файле после генерации <backoffice> <password>asdasdads</password> <networks incl="networks" replace="replace"> <ip>::/0</ip> </networks> <profile>default</profile> <quota>default</quota> <readonly>{1</readonly> </backoffice>
Anonymous
откуда беруться лишние проблеы не пойму перекопировал все оступы с тех что надо уже хз сколько раз
Boris 🦍
Привет, есть мастера регулярок? как с помощью фильтра regex_replace из "*.test.com" получить "test.com" ? что-то экранирую по-разному, не получается
Alexey
может надо просто заэкранировать экранирующие символы?
Anonymous
так выше для соседних полей же все окей
Anonymous
короче нашел в чем нюанс
Anonymous
он начинат отсуп делать в зависимости какой отступ у {% if user.readonly is defined%}
Anonymous
даже нгаверное правильне сказать он ориентируется на входящий выше {%
Boris 🦍
код в студию
- name: "deliver_crt | Deliver certificate" copy: content: "{{ ssl_data.json.data.certificate }}" dest: "{{ ssl_dir }}/{{ cn | regex_replace('\*\.') }}.crt" Пробовал так экранировать
Anonymous
короче дичка какая та
Boris 🦍
Boris 🦍
'\*\.(.*)', '\\1' думаю как-то так должно быть
dest: "{{ ssl_dir }}/{{ cn | regex_replace('\*\.(.*)', '\\1') }}.crt" ^ here
Boris 🦍
не нравится ему такой синтаксис
Boris 🦍
dest: "{{ ssl_dir }}/{{ cn | regex_replace('\*\.(.*)', '\\1') }}.crt" ^ here
ERROR! Syntax Error while loading YAML. found unknown escape character '*'
Alexey
а \\*\\.(.*) ?
Boris 🦍
('[*][.]')
так сработало
Alexey
тогда наверное должно сработать и [*.]
Boris 🦍
тогда наверное должно сработать и [*.]
возможно, но так уже матчится другая выборка
Alexey
^[*.] м?
Alexey
хотя не
Alexey
в общем мой первый вариант норм, просто надо в строковых литералах 2 слеша
Boris 🦍
ну ок, попробую, если что, спс
Logan
^[*.] м?
точку надо экранировать же
Alexey
в квадратных скобках это не квалификатор а просто литерал "точка", так что не надо
Aleksey
Ребята, подскажите, кто с DigitalOcean работает? У вас нет проблем с залипанием ssh сессии?
Roman
Подскажите, при использовании конструкции lookup('template', 'dockerfile.j2') возникае ошибка. Содержимое вставляется в ямл. Есть подозрения что из за спецсимволов. Как их можно экранировать?
GithubReleases
ansible/ansible tagged: v2.9.0rc3 Link: https://github.com/ansible/ansible/releases/tag/v2.9.0rc3 Release notes: New release v2.9.0rc3
Sergey
Добрый день! Подскажите пожалуйста как можно сделать такое когла луп проходит key: "{{ lookup('file', 'files/authorized_keys/') }}{{ item }}.pub"
Sergey
а то я чёт туплю
Denis
Всем привет! Есть следующая таска: - name: mount sftp mount: path: /mnt/sftp src: "root@{{nodes_in_ftp}}:/home/ftp" fstype: fuse.sshfs state: mounted opts: "IdentityFile=~/.ssh/id_rsa" Собсвенно насколько я понимаю если указан state: mounted, то в этом случае модуль не только добавить необходимую запись в fstab, но еще и сделает перемонтирование ( аналог mount -a )?
inqfen
да, сразу примонтирует
Lamobot
~item~ это фича джинджи?
Операция https://jinja.palletsprojects.com/en/2.10.x/templates/#other-operators
Denis
да, сразу примонтирует
Проблема в том что он как раз у меня не монтирует. Дистрибутив Ubuntu 18.04. Может кто сталкивался?
Denis
Причем когда заходишь на сам инстанс и делаешь mount -a ручками, то тогда все применяется.