Алексей
Ну добавь, смысл думаю понятен
Если бы работало, я бы сюда не писал. - name: Configure docker vars: KX_REGISTRY_LOCAL: "192.168.99.1:5000" blockinfile: path: /etc/docker/daemon.json create: yes block: | { "insecure-registries": [ "{{ KX_REGISTRY_LOCAL }}" ] } tags: - configure-docker Результат: # BEGIN ANSIBLE MANAGED BLOCK {'insecure-registries': ['192.168.99.1:5000']} # END ANSIBLE MANAGED BLOCK
Алексей
Ну добавь, смысл думаю понятен
Как будто анзибл как-то не так работает со второй парой двойных кавычек.
Anonymous
@zloy_leva будет жить. Поприветствуем!
Oleh
Всем привет. Нужна помощь по ansible есть hosts в котором есть креды [hosts] 10.0.0.1 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=myrootpassword как их вынести в .env или как перенести в playbook
Max
смотрю на setup.
Oleh
под гит закинуть все
Anonymous
@Zayach_h будет жить. Поприветствуем!
Timur
Креды открыто в гите хранить хотите?
Oleh
креды в .env
Oleh
остальное так
Oleh
но еще и хост бы спрятать
Артём
На локальной тачке в заигноренном файле. А vault чем не нравится?
Timur
остальное так
И что именно не работает?
Oleh
И что именно не работает?
да все работает. Просто под гит проектзакинуть нужно. И не закидвать енвы
Anonymous
Aleksandr Bandrovskiy будет жить. Поприветствуем!
Владислав
Как будто анзибл как-то не так работает со второй парой двойных кавычек.
Ага, не ожидал такого. Вот так работает - name: Configure docker blockinfile: dest: /etc/docker/daemon.json create: yes block: "{{ lookup('template', 'templates/daemon.json.j2') }}" # cat templates/daemon.json.j2 { "insecure-registries": "{{ KX_REGISTRY_LOCAL }}" } # cat /etc/docker/daemon.json # BEGIN ANSIBLE MANAGED BLOCK { "insecure-registries": "192.168.99.1:5000" } # END ANSIBLE MANAGED BLOCK
Алексей
Ага, не ожидал такого. Вот так работает - name: Configure docker blockinfile: dest: /etc/docker/daemon.json create: yes block: "{{ lookup('template', 'templates/daemon.json.j2') }}" # cat templates/daemon.json.j2 { "insecure-registries": "{{ KX_REGISTRY_LOCAL }}" } # cat /etc/docker/daemon.json # BEGIN ANSIBLE MANAGED BLOCK { "insecure-registries": "192.168.99.1:5000" } # END ANSIBLE MANAGED BLOCK
Открою баг в баг-трекере. Я только начинаю изучать анзибл... Но ваша строка block: "{{ lookup('template', 'templates/daemon.json.j2') }}" мне не совсем понятна... Я так понимаю, тут создан отдельный файл templates/daemon.json.j2, в который и происходит вставка переменной. А можно пример этого файла? И откуда берется переменная?
Andor
А кто мешает сделать не blockinfile, а сделать жсон через to_json?
Andor
А то жсон ожидает строгую структуру а ты туда немытыми руками^wджинджами лезешь
Anonymous
@serg_ryabukha будет жить. Поприветствуем!
Владислав
Anonymous
@vkukharik будет жить. Поприветствуем!
Алексей
Вот
А, не заметил в вашем выводе. Спасибо. Попробую...
Oleh
Что могло случится? Работало, работало
Алексей
так вы вставьте код в любой ямл чекер
Алексей
но на скрине ошибка не видна
Andor
'{{' в кавычки брать не надо ли?
Артём
Английским по красному же.
Oleh
'{{' в кавычки брать не надо ли?
Взял -теперь это просто строка
Oleh
Permission denied (publickey,password).", "unreachable": true
Andor
Так это и есть строка
Andor
Всю строку в кавычки конечно же
Oleh
ну тода он что-то не то возвращает
Andor
Джинджа не умеет возвращать не строку
Oleh
если руками вставить
Oleh
все норм
Oleh
как считать .env?
Алексей
Вот
Как вы объявили KX_REGISTRY_LOCAL? У меня просто KX_REGISTRY_LOCAL=192.168.99.1:5000
Владислав
Как вы объявили KX_REGISTRY_LOCAL? У меня просто KX_REGISTRY_LOCAL=192.168.99.1:5000
Выше указано # ansible --version ansible 2.7.7 python version = 2.7.14 (default, Mar 14 2018, 16:45:33) [GCC 8.0.1 20180222 (Red Hat 8.0.1-0.16)] На всякий случай версия. Но вообще тебе хороший совет дали, делай все через фильтр to_json
Andor
а можно пример?
`content: '{{ params | to_json }}'
Владислав
Только params тоже нужно объявить правильно vars: KX_REGISTRY_LOCAL: "192.168.99.1:5000" params: 'insecure-registries': - "{{ KX_REGISTRY_LOCAL }}"
Andor
Разумеется
Oleh
Артём
Понравился))) Запилил
Пара моментов. Если называть шифрованные файлы vault.yml - через год не придётся грепать хедер, чтобы понять, какие файлы шифрованные, какие нет. Это если не хранить все пароли в одной куче, конечно, а разносить по группами. И нужно помнить, что если нагрепать, где же определяется эта чёртова переменная, не получается, то она может быть в vault-файле. Судя по тому, что у вас там шелльник с такими забавными опциями, можно добавить в него «найти все волт-файлы, подекриптить, погрепать, заэнкриптить обратно».
Артём
Хук в гите, запрещающий пуш нешифрованных волтов тоже поможет сэкономить время.
Sergey
Не надо так.
Артём
Как надо?
Sergey
https://docs.ansible.com/ansible/latest/user_guide/playbooks_vault.html#single-encrypted-variable
Артём
Стрингами?
Sergey
Строками. Стринги - это всё же вариант белья.
Артём
Одиночными. Вижу. А удобно редактировать?
Артём
Это надо зайти в файл, скопировать, уйти в шелл, запустить ansible-vault decrypt_string, поправить вывод, зашифровать обратно, вернуться в файл, заменить?
Алексей
Только params тоже нужно объявить правильно vars: KX_REGISTRY_LOCAL: "192.168.99.1:5000" params: 'insecure-registries': - "{{ KX_REGISTRY_LOCAL }}"
Сделал так: - name: Configure docker vars: KX_REGISTRY_LOCAL: 192.168.99.1:5000 blockinfile: path: /etc/docker/daemon.json create: yes block: | { "insecure-registries": [ "{{ KX_REGISTRY_LOCAL | to_json }}" ] } Результат: cat /etc/docker/daemon.json # BEGIN ANSIBLE MANAGED BLOCK { "insecure-registries": [ ""192.168.99.1:5000"" ] } # END ANSIBLE MANAGED BLOCK Двойные кавычки :( А если убираю кавычки в [ "{{ KX_REGISTRY_LOCAL | to_json }}" ], то опять та же ерунда: cat /etc/docker/daemon.json # BEGIN ANSIBLE MANAGED BLOCK {'insecure-registries': ['192.168.99.1:5000']} # END ANSIBLE MANAGED BLOCK
Andor
если ты хочешь pretty json, то почитай доку про жинжа фильтры, там есть опции
Andor
блин у меня опыта с ансиболью четыре дня а я уже советы даю
Andor
нафиг вообще blockinfile если тебе надо copy с content?
Владислав
нафиг вообще blockinfile если тебе надо copy с content?
Это просто пример как в json вывести, пишите туда что хотите
Andor
а, точно, это не тебе надо, это ты показываешь пример
Andor
оно может быть вообще без кавычек, это же yaml