Timur
О каких скобках речь?
Dok
А можно поподробнее?
{{ ansible_all_ipv4_addresses | ipv4('192.168.15.0/24') }} Делает вывод [u'192.168.15.169']
Dok
Собсно, [u' '] надо грамотно отсечь
Dok
Ну, или есть другое стандартное решение выявления конкретного ip-адреса из нескольких?
Dok
{{ ansible_all_ipv4_addresses | ipv4('192.168.15.0/24') }} Делает вывод [u'192.168.15.169']
{{ ansible_all_ipv4_addresses | ipv4('192.168.15.0/24') | first }} Нашёл
Me
Кто-то с виндой работает? Видели такую проблему? WindowsServer | UNREACHABLE! => { "changed": false, "msg": "ssl: 500 WinRMTransport. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)", "unreachable": true }
Me
Нет
Me
Это Вагрант
Me
Как выглядит конфиг подключения? Без пароля разумеется :)
Вопрос решился установкой свежего virtualenv и последнего ансибла 2.7.5
Me
Спасибо
Михаил
Дратути. Подскажите пожалуйста по ansible-vault Есть ли он в виде модуля? Потому что вот так - name: test hosts: localhost tasks: - name: vault var command: ansible-vault encrypt_string "{{ password }}" register: var мне не хочется его использовать
Михаил
а гугл не помог
Egor
а гугл не помог
А зачем так делать? Достаточно держать переменную в vault и ссылаться на нее из плейбука
Михаил
мне надо расшифровывать N файлов
Aleksei
мне надо расшифровывать N файлов
ансибл волт для таких кейсов не оч
Aleksei
если локально, то я бы в баш форлуп просто запихал
NS 🇷🇺
Всем привет.
NS 🇷🇺
подскажите, пытаюсь скопировать рекурсивно директории
NS 🇷🇺
- name: Create directories file: path: "/opt/warp-disks/{{ item.path }}" state: directory with_filetree: modules/ when: item.state == 'directory' - name: copy main file file: path: "{{item.src}}" dest: "/opt/warp-disks/{{item.path}}" owner: root with_filetree: modules/ when: item.state == 'file'
NS 🇷🇺
первый таск отрабатывает на ура, а вот копирование файлов начинает кидать какую то дичь
NS 🇷🇺
(item={'root': '/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/', 'path': 'consul_crud/ConsulCRUD.py', 'state': 'file', 'src': '/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/consul_crud/ConsulCRUD.py', 'uid': 1000, 'gid': 100, 'owner': 'desperate', 'group': 'users', 'mode': '0644', 'size': 2367, 'mtime': 1545046905.4898436, 'ctime': 1545046961.6419306}) => {"changed": false, "item": {"ctime": 1545046961.6419306, "gid": 100, "group": "users", "mode": "0644", "mtime": 1545046905.4898436, "owner": "desperate", "path": "consul_crud/ConsulCRUD.py", "root": "/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/", "size": 2367, "src": "/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/consul_crud/ConsulCRUD.py", "state": "file", "uid": 1000}, "msg": "file (/opt/warp-disks/consul_crud/ConsulCRUD.py) is absent, cannot continue", "path": "/opt/warp-disks/consul_crud/ConsulCRUD.py", "state": "absent"}
Timur
Без этой дичи
NS 🇷🇺
Без этой дичи
без дичи не нашел вариантов рекурсивно прогнать
Timur
(item={'root': '/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/', 'path': 'consul_crud/ConsulCRUD.py', 'state': 'file', 'src': '/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/consul_crud/ConsulCRUD.py', 'uid': 1000, 'gid': 100, 'owner': 'desperate', 'group': 'users', 'mode': '0644', 'size': 2367, 'mtime': 1545046905.4898436, 'ctime': 1545046961.6419306}) => {"changed": false, "item": {"ctime": 1545046961.6419306, "gid": 100, "group": "users", "mode": "0644", "mtime": 1545046905.4898436, "owner": "desperate", "path": "consul_crud/ConsulCRUD.py", "root": "/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/", "size": 2367, "src": "/home/desperate/full_time/whip/roles/openstack/os_limiter/compute/files/modules/consul_crud/ConsulCRUD.py", "state": "file", "uid": 1000}, "msg": "file (/opt/warp-disks/consul_crud/ConsulCRUD.py) is absent, cannot continue", "path": "/opt/warp-disks/consul_crud/ConsulCRUD.py", "state": "absent"}
Ошибка, судя по всему, связана с тем, что юзеру, из-под которого вызывается таск, не хватает прав рута для выставления нужных пермишенов
NS 🇷🇺
Timur
да
Это читали? https://docs.ansible.com/ansible/2.5/modules/copy_module.html#copy-module
NS 🇷🇺
Ошибка, судя по всему, связана с тем, что юзеру, из-под которого вызывается таск, не хватает прав рута для выставления нужных пермишенов
вроде become: yes стоит и все остальное выполняется... если во второй таск поставить state: touch то файлы он создаст с правильными именами вместо копирования
Timur
А только создает их и меняет нужные права и прочие атрибуты
Timur
Для копирования есть модуль copy
Timur
Используйте его
Timur
Это для специфических случаев скорее
NS 🇷🇺
Используйте его
да я оладушек, извиняюсь ... file на copy сменил и оно поехало
Timur
synchronize копирует по умолчанию только с исходного хоста на удаленный
Timur
Для других целей приходится извращаться
Timur
да я оладушек, извиняюсь ... file на copy сменил и оно поехало
Там даже цикл не нужен. Достаточно в src и dest правильные пути указать со слешем на конце, и он рекурсивно всю директорию скопирует
NS 🇷🇺
Timur
If path is a directory, it is copied recursively. In this case, if path ends with "/", only inside contents of that directory are copied to destination. Otherwise, if it does not end with "/", the directory itself with all contents is copied.
Timur
Достаточно в src и dest просто указать пути к директориям
Timur
copy делает аналогично rsync
Vladislav 👻
Vladislav 👻
Vladislav 👻
кто подскажет, в чем прикол?
Vladislav 👻
Михаил
не делай так
Хочу и делаю
Vladislav 👻
Так что, нет идей, почему ансибл превращает значения в ахтунг?
Timur
Это что за файл?
Timur
Дефолты?
Vladislav 👻
да
Vladislav 👻
перезапись дефолта нет
Timur
Так что, нет идей, почему ансибл превращает значения в ахтунг?
А в чем ахтунг? Из текста не очень понятно
Vladislav 👻
темплейт создает лишнию папку
Vladislav 👻
вот тут видно
Vladislav 👻
Timur
А в самом темплейте эти переменные не встречаются случайно?
Vladislav 👻
нет
Vladislav 👻
уникальное названия в рамках всего проекта
Vladislav 👻
Vladislav 👻
дальше только потом волум для докера
Timur
Может, путь представляет собой линк?
Vladislav 👻
в плане?
Timur
В плане - может, там как-то хитро структура каталогов смонтирована
Timur
А переменная tableau_dashboard_config_path еще где-то задается?
Timur
Докер же монтирует в похожий путь
Vladislav 👻
нет, в другой, но проблема не в докере, у меня темплейт не может лечь по нормальному пути
Timur
Не видно полной картины
Timur
Роль можете целиком показать?
Vladislav 👻
что именно показать?
Vladislav 👻