Gordon
Как изначальная задача выглядит?
Есть баш скрипт, если запускать его не из директории в которой он находится он не корректно работает
Sergey
Всегда есть варианты: 1. Переписать на Ансибл без использования башсибла, как вариант. 2. Использовать параметры модуля shell.
Андрей
А зачем?
Sergey
Т.е. в shell можно передать cd /dir/ && ./scrypt.sh ?
Можно. Тебя п.1 вообще не заинтересовал, да?
Gordon
Можно. Тебя п.1 вообще не заинтересовал, да?
Да ( не я скрипт поставляю, вдруг он изменится и тогда все перестанет работать, мне не до конца понятна его логика, этот скрипт должен быть пакетом по хорошему, но он скрипт (
Sergey
В общем, да, модулю shell ты можешь передавать любые странные bash-строки.
dmitry
Как установить с помощью ansible обновы винды kb*, пишут вроде что через winrm нельзя?
Андрей
через WSUS :D
Dr. L.S.Dee
Можно дернуть wusa на каждой машине, справка по синтаксису прилагается.
Dr. L.S.Dee
Но вообще WSUS, да.
dmitry
а можно скачать и запустить. Поднимать сервак ради двух обнов так себе идея
Dr. L.S.Dee
Думаете, это последние?
Dr. L.S.Dee
Ну если скачать и запустить, то дергаете wusa.exe.
Dr. L.S.Dee
Я вам даже справочку принес.
dmitry
да. я же не просто так спрашинаю на канале ansible, значит мне нужно через ansible установить. Сейчас у меня связка powershell скриптов и ansible playbook. Охота все на ansible перенести
dmitry
интересно, а более легкого пути нет?
dmitry
типо https://docs.ansible.com/ansible/latest/modules/win_hotfix_module.html
Dr. L.S.Dee
Ну а в чем тогда вопрос?
Dr. L.S.Dee
* сам только что загуглил и нашел)
Dr. L.S.Dee
И этот еще https://docs.ansible.com/ansible/latest/modules/win_updates_module.html
dmitry
Приходится 2 шага делать, закачивать и запускать. При установки у меня падает virtualbox-iso: The offending line appears to be: virtualbox-iso: virtualbox-iso: tasks: virtualbox-iso: - name: Install hotfix KB3035131 virtualbox-iso: ^ here tasks: - name: Get hotfix win_url: url: https://download.microsoft.com/download/3/D/F/3DF6B0B1-D849-4272-AA98-3AA8BB456CCC/Windows6.1-KB3035131-x64.msu dest: C:\Temp\KBXXXXXX.msu - name: Install hotfix win_hotfix: source: C:\temp\KBXXXXXX.msu state: present
Dr. L.S.Dee
Отступы посчитать? Извиняюсь за дурацкое предположение.
dmitry
проверял http://www.yamllint.com/
dmitry
хотя... dest: C:\Temp\KBXXXXXX.msu с одним слешем или двумя должен быть. Валидатор 2 делает
dmitry
надо попробовать с двумя
Alexander
dmitry посчитай пробелы :)
dmitry
валидатор бы ругался, если бы что-то не так было
Alexander
dmitry
я 2 пробела делаю win_url и url
Alexander
я скопировал то, что ты написал)
dmitry
тогда что не так с пробелами?
Alexander
url, dest, source и state не хватает пробела, из скрина видно же
dmitry
попробую
dmitry
ошибка та же virtualbox-iso: tasks: virtualbox-iso: - name: Get hotfix virtualbox-iso: ^ here - name: Get hotfix win_url: url: https://download.microsoft.com/download/3/D/F/3DF6B0B1-D849-4272-AA98-3AA8BB456CCC/Windows6.1-KB3035131-x64.msu dest: C:\\Windows\\Temp\\Windows6.1-KB3035131-x64.msu - name: Install hotfix win_hotfix: source: C:\\Windows\\temp\\Windows6.1-KB3035131-x64.msu state: present
dmitry
https://pastebin.com/pdyQ1e46
dmitry
так?
Sergey
заметно лучше
Сергей
Доброго дня, подскажите как переписать shell/сurl на uri: shell: 'curl -s --request PUT --data-binary "@{{ item.path }}" {{ consul_kv_url }}' C src, не выходит: uri: url: "{{ consul_kv_url }}" method: PUT src: "{{ item.path }}" # body: "{{ lookup('file', item.path) }}"
Сергей
Что именно не работает?
приходит пустой файл, содержимое не отправляется
Sergey
Формат либо заголовок о типе контента не высталвены (я этого не вижу в приведённом таске).
Сергей
Формат либо заголовок о типе контента не высталвены (я этого не вижу в приведённом таске).
Спасибо за совет, оказалось версия ansible старовата, а src поддерживается только с версии 2.7
Vladislav
Всем Привет. Помогите побороть ошибку)
Vladislav
https://pastebin.com/H1pxNfP1
Dmitry
Всем Привет. Помогите побороть ошибку)
на первый взгляд отступы не досыпал. всё содержимое блока должно быть на 1 отступ больше
Tema
Всем привет! Есть необходимость выполнить команду на 30 хостах с задержкой для каждого хоста. То есть, выполняем команду на первом хосте, ждем минуту, запускаем на втором хосте, ждем минуту и т.д. Может кто-нибудь сталкивался с таким и направит меня на путь истинный? Если конечно такое вообще возможно 😢
Nikus
Возможно. Плейбук - Команда + ожидание. Все
Tema
Видимо я совсем запутался, пошел пробовать 👍
Tema
https://pastebin.com/J5R7szy8
Tema
пытаюсь на примере копирования файла разобраться, в taps у меня 6 хостов
Tema
Мой плейбук не отрабатывает с задержкой, сразу копирует на все хосты
Nikus
Pause - отдельный таск
Nikus
И да, выше указали правильно - надо делать через луп. Я ща не за компом, но примерно так - эти две таски выделить в инклюд и по инклюду через with_items. И в них передать хосты
Tema
Идею понял, но пробовать буду уже завтра, спасибо
Alexander
как это не существует? :) - https://docs.ansible.com/ansible/latest/modules/docker_container_module.html
А какой параметр? ) Я уже третий раз перечитываю список, не могу найти как сделать docker exec.
Oleksandr
Саша, ты троллишь?
Oleksandr
модуль и есть аналог docker exec. само его использование является альтернативой docker exec
Alexander
Саша, ты троллишь?
Я бы хотел, но нет )
Oleksandr
не похоже. такое ощущение что ты именно здесь ради потроллить
Alexander
не похоже. такое ощущение что ты именно здесь ради потроллить
Ни разу, не переживай. Я просто не знаю, поэтому спрашиваю.
Alexander
Серьёзно. Можно прям пример на пальцах как в уже работающем контейнере выполнить какую-нибудь команду с помощью этого модуля?
Oleksandr
сорри, я как-то по диагонали прочитал сперва. тебе нужно заранить команду на уже созданном контейнере
Alexander
Не мне. ) Изначально вопрос @matveev_alexey задал.
Oleksandr
тебе нужен параметр command все того же модуля docker_container
Alexander
Ок, я читал по ней пояснение. Command to execute when the container starts Это запуск команды при старте контейнера. Я думал, что-то вроде CMD.
Oleksandr
попробуй, должно подойти. если нет, то есть - hosts: target connection: docker tasks: - package: name: git state: latest
Oleksandr
указав connection: docker ты можешь выполнять команды напрямую в контейнере
Oleksandr
либо создав подключение к докер контейнеру через add_host - name: make a host add_host: name: playbook-container ansible_connection: docker ansible_ssh_user: root - name: install things raw: dnf install -y python-dnf delegate_to: playbook-container
Alexander
Aleksey
Я реализовал docker exec cmd через shell, пробовал через аргументы как у https://t.me/pro_ansible/134404, но чет не прокатило