Size: a a a

2021 February 07

L

Lamobot in Ansible
Maksim Sharov
есть ли способ прописать волюм в докер контейнер https://bit.ly/39WnT6V с использованием переменной?

пробовал с кавычками и без, но показывает ошибку
Ошибку покажите?
источник

M

Maksim Sharov in Ansible
Lamobot
Ошибку покажите?
на картинке линтер встроенный в ide

ямл-линт так
The offending line appears to be:

   volumes:
     - {{ playbook_dir }}/xxx.yml:/etc/xxx.yml
                         ^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes.

предполагаю, не нравится двоеточие в маппинге
источник

L

Lamobot in Ansible
Maksim Sharov
на картинке линтер встроенный в ide

ямл-линт так
The offending line appears to be:

   volumes:
     - {{ playbook_dir }}/xxx.yml:/etc/xxx.yml
                         ^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes.

предполагаю, не нравится двоеточие в маппинге
Ошибка линтера - это нужно jinja в кавычки убрать
И попробуйте одинарные кавычки
источник

L

Lamobot in Ansible
А ошибка иде - похоже на отступы, не видя всей таски/плейбука сложно судить
источник

PG

Pavel Gassan in Ansible
Maksim Sharov
на картинке линтер встроенный в ide

ямл-линт так
The offending line appears to be:

   volumes:
     - {{ playbook_dir }}/xxx.yml:/etc/xxx.yml
                         ^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes.

предполагаю, не нравится двоеточие в маппинге
На всякий случай, вы же в курсе, что монтировать файл - потенциально стрелять себе в ногу?
источник

M

Maksim Sharov in Ansible
Pavel Gassan
На всякий случай, вы же в курсе, что монтировать файл - потенциально стрелять себе в ногу?
почему?
источник

PG

Pavel Gassan in Ansible
Если вы захотите его о редактировать на хосте, то будете рассчитывать что файл изменится в контейнере, и тут все зависит от того как работает редактор в котором вы правите файл может создать временный файл и записать новый файл с таким же именем, и докер этого не поймет
источник

M

Maksim Sharov in Ansible
Lamobot
А ошибка иде - похоже на отступы, не видя всей таски/плейбука сложно судить
забавно, перезапустил иде и пропала, видимо, чтоты не завелось с первого раза.

я пытаюсь запустить контейнер с приложением по докам, с отстпами в порядке

- name: install xxx
 docker_container:
   name: xxx
   image: xxx:v2
   state: present
   ports:
     - "80:80"
     - "8080:8080"
   restart: yes
   restart_policy: always
   volumes:
     - "{{ playbook_dir }}/xxx.yml:/etc/xxx.yml"
источник

M

Maksim Sharov in Ansible
Pavel Gassan
Если вы захотите его о редактировать на хосте, то будете рассчитывать что файл изменится в контейнере, и тут все зависит от того как работает редактор в котором вы правите файл может создать временный файл и записать новый файл с таким же именем, и докер этого не поймет
не понял про редактор, точнее что-то слышал про такие фишки у vim, кажется. вы же о них?

я запускаю контейнер с приложением вместо установки и передаю ему конфиг. сам конфиг не буду править, все изменения через пайплайн будут проходить
источник

PG

Pavel Gassan in Ansible
Maksim Sharov
не понял про редактор, точнее что-то слышал про такие фишки у vim, кажется. вы же о них?

я запускаю контейнер с приложением вместо установки и передаю ему конфиг. сам конфиг не буду править, все изменения через пайплайн будут проходить
Не только vim, но не суть. Если не редактировать файл на хосте, то норм
источник

M

Maksim Sharov in Ansible
да, есть ли в ансибл аналог pwd, для директории с запускаемым плейбуком? увидел playbook_dir, который нужно передать и inventory_dir, но может чего-то не понимаю

переменная нужна для монтирования конфига

volumes:
     - "{{ playbook_dir }}/xxx.yml:/etc/xxx.yml"

или будет работаеть так? относительно запускаемого плейбука
volumes:
     - "./xxx.yml:/etc/xxx.yml"
источник

E

Elenhil in Ansible
Лучше playbook_dir
источник

E

Elenhil in Ansible
У вас что, файл не в роли лежит?
источник

M

Maksim Sharov in Ansible
Elenhil
У вас что, файл не в роли лежит?
нет, это кастомный конфиг для настройки программы, которая ставится по роли
источник

M

Maksim Sharov in Ansible
ну, мне уже тут советуют положить в roles/xxx/files и не парится
источник

M

Maksim Sharov in Ansible
поэтому вопрос по бестпрактиз

все каталоги внутри роли подразумевают какие-то дефолтные значения и наполнение, такой фоллбек своеобразный для программы. так?

а если, например, я хочу настроить программу под кастомный конфиг, думаю, ее следует положить в корень или в какую-то другую папку, но не в саму роль.
источник

L

Lamobot in Ansible
Pavel Gassan
Если вы захотите его о редактировать на хосте, то будете рассчитывать что файл изменится в контейнере, и тут все зависит от того как работает редактор в котором вы правите файл может создать временный файл и записать новый файл с таким же именем, и докер этого не поймет
Всё будет намного хуже, если файла на хосте вообще не будет :)))
источник

L

Lamobot in Ansible
Maksim Sharov
да, есть ли в ансибл аналог pwd, для директории с запускаемым плейбуком? увидел playbook_dir, который нужно передать и inventory_dir, но может чего-то не понимаю

переменная нужна для монтирования конфига

volumes:
     - "{{ playbook_dir }}/xxx.yml:/etc/xxx.yml"

или будет работаеть так? относительно запускаемого плейбука
volumes:
     - "./xxx.yml:/etc/xxx.yml"
По-моему, там относительные пути не работают. Только абсолютные
источник

L

Lamobot in Ansible
Maksim Sharov
да, есть ли в ансибл аналог pwd, для директории с запускаемым плейбуком? увидел playbook_dir, который нужно передать и inventory_dir, но может чего-то не понимаю

переменная нужна для монтирования конфига

volumes:
     - "{{ playbook_dir }}/xxx.yml:/etc/xxx.yml"

или будет работаеть так? относительно запускаемого плейбука
volumes:
     - "./xxx.yml:/etc/xxx.yml"
Положите его куда-нибудь в отдельное место на хосте, и запускайте контейнер с полным и известным путём. Как вариант /tmp итд
источник

M

Maksim Sharov in Ansible
Lamobot
По-моему, там относительные пути не работают. Только абсолютные
вот, для  этого искал инфу про pwd в ансибл, нашел про inventory_dir, playbook_dir
источник