ep4sh
ЧЯДНТ?)
залогинлся на гитхаб успешно, репозиторий залит
Artem
Товарищи, подскажите что я делаю не так
Имеем
- name: Add symlinks from the new release to the shared folder
file:
path: '{{ deploy_helper.new_release_path }}/{{ item.path }}'
src: '{{ deploy_helper.shared_path }}/{{ item.src }}'
state: link
force: True
with_items:
- path: public/images
src: images
- path: public/uploads
src: uploads
- path: storage/
src: storage
Получаем ошибку
(item={u'path': u'storage/', u'src': u'storage'}) => {"changed": false, "gid": 0, "group": "root", "item": {"path": "storage/", "src": "storage"}, "mode": "0755", "msg": "the directory /var/www/dev.example.com/releases/20180902205117/storage/ is not empty, refusing to convert it", "owner": "root", "path":
гугл говорит, что надо добавить force, но в моем случае это не помогло
что я упустил?
Sergey
Как вариант - у тебя совпадает имя создаваемой ссылки и исходного каталога, на который ссылка указывает. Ну и pastebin же.
Artem
Sergey
эмммммм
Sergey
ну ты вот сам прикинь: в каталоге при этом лежат файлы. что должен, на твой взгляд, модуль сделать?
Sergey
если всё прибить - так на то есть "absent"
Sergey
если что-то другое - то и пиши что-то другое
Artem
надеялся, что он шаг удаления можно пропустить и он сам удалит )
значит будет удалять, спасибо Сергей
Sergey
пожалуйста
Sergey
дело в том, что модель использования Ansible - приведение системы к явным образом описанному состоянию, без догадок и двусмысленностей
Artem
я сам себе придумал, что тут будет такое поведение как при маунте диска в существующую директорию
в общем то уже не важно )
Sergey
а, ясн 😊
ничего, бывает
eucariot отпуск (MSK+4)
Коллеги, привет.
Простите мою серость, но подскажите, где объяснить ансиблу абсолютные пути (видимо, для плагинов)?
Если запускаю от себя - ок, работает.
Если по крону, то ошибка:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 2] No such file or directory
fatal: [test-switch]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
bebebe
запускайте так: crontab_expression sh -c 'cd playbook && ansible-playbook ...'
советую все завернуть в докер и запускать примерно так:
58 12,15,18,23 * * * mnt docker run --rm --entrypoint /bin/bash ob0:5443/infra/gearman-worker:latest -c /usr/lib/nagios/plugins/notify_alco.sh
bebebe
и проблем с директориями не будет
Riv
Коллеги, привет.
Простите мою серость, но подскажите, где объяснить ансиблу абсолютные пути (видимо, для плагинов)?
Если запускаю от себя - ок, работает.
Если по крону, то ошибка:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 2] No such file or directory
fatal: [test-switch]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
Если правильно помню, в случае когда плагины установлены прямо в деррикторию с плейбуками, то они будут автоматический подтягиваться при исполнении
Sergey
bebebe
вообще это можно разрулить через ansible.cfg, который находится на одном уровне с плейбукой
eucariot отпуск (MSK+4)
Оба варианта не сработали.
Sergey
потмоу что не надо так - есть же дефолт!
Sergey
Sergey
вот в "library" положишь свой модуль - всё будет пучком
Sergey
если канеш у тебя структура проекта из best practices
Sergey
да, но нет - судя по тому, что не работает
eucariot отпуск (MSK+4)
Ни относительный, ни асболютный путь в ansible.cfg, ни прямое указание в crontab перейти в каталог не помогает. Ошибка всё та же.
22 13 * * * sh -c 'cd /Users/eucariot/ansible/ && ./config2git.sh'
Результат:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 2] No such file or directory
fatal: [test-switch]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
Konstantin
Всем привет. Немного дурцкий вопрос, за циклы в jinja. В vars есть вот такой блок
OneStepAuth:
AllowedRedirectUrls:
service1-dev:
- site1
- site2
- site3
service2-dev:
- site1
- site2
- site3
....
serviceN-dev:
- site1
- site2
- site3
PhoneCodeLifeTime: 60,
EmailCodeLifeTime: 180,
EmailLinkLifeTime: 3600,
LoginLifeTimeDays: 7
Как в jinja цикле разрулить секцию AllowedRedirectUrls? КОличество сервисов может меняться.
Maksim
{% for (key, value) in OneStepAuth.iteritems() -%}
{% for (key1, value1) in value.AllowedRedirectUrls.iteritems() -%}
{{ value1.service1-dev }}
{% endfor -%}
{% endfor -%}
но не уверен что тебе не придется еще заклыдвать один for
Sergey
Вроде есть with_subelements
Konstantin
Maksim
я это варинт использовал для настройки ibm mq. у меня был список менеджеров в который мог наращиваться и был список очередей внутри менеджер который тоже мог меняться. и проблем не было
I know
Кажется, при повторном join'е бот не спрашивает ничего (если в первый раз нажать I'll be back)
Aleksey
I know
Так меня не спросил сейчас
Aleksey
может валяется ?
Никита
Дык так и должно быть, вроде.
Никита
Там фишка в нажатой кнопочке.
Никита
Странно, правда, что боты до сих пор не научились обходить такую простую проверку.
I know
I know
Aleksey
Первая кикает
Aleksey
Вторая авторизует
Aleksey
автора ответ
I know
Первая кикает
Только первый раз. Повторно бот не реагирует.
Aleksey
ой всё
Denis
всем привет, есть ли возможность вернуть сервер в состояние до отработки плейбука ансибл?
Udjin
только если сам напишеш таски по удалению чего ты там ставил и на тег повесишь
simplemice.eth
надо было делать бекап (ц)
Denis
при тестах бывает приходится убивать сервак целеком и поднимать новый, не очень удобно
Danila
так в том и вопрос
Danila
смотря какие таски
Danila
если таски идемпотентные то прогоняешь грубо говоря прошлый релиз версию
Denis
понятно что можно составить плейбук и запускать сразными тэгами "install" and "remove" но это немного что хотелось
Danila
если делал что то что не обратимое, то ни как. Если не делал бекап ВМ или что то подобное
Denis
Ок
Denis
спасибо
Nklya
Для ансибла есть молекула и тест китчен. Они умеют поднимать новый инстанс и тестировать.
Это правильный способ.
Делать таски для удаления моветон
Gleb
А что за особенность с vault string в плейбуках, как заставить парсить?
Aleksey
Aleksey
я тоже
Nklya
bebebe
Долго и счастливо надеюсь?
bebebe
Конечно пора сделать ликбез о бесплатных стораджах автору этого бота
Vadim
Nklya
что для юнит, а что для интеграционного то?
bebebe
bebebe
Тут чатик о том как бы ансибл шмансибл драма в трёх действиях и Jinja темплейты
Alexander
Логично сказать плейбуки, но те же инструменты отлично с этим справляются (молекула например)
Nklya
интеграционные тесты - это тестинфра и разные *spec
юнит тестов в ансибле нет, а в шефе или папете - есть
Nklya
молекула и китчен - это фреймворк для управления жизненным циклом инстансов и запуска теста в нужных местах
Alexander
Nklya
Nikita Dwarf
Всем привет.. Народ, нужна помощь с ролькой.. хочу регистрировать дженкинс слейв через ансибл рольку, использую курл.. но ответ мне что тело не передано
Nikita Dwarf
пробовал и описывать и через джину передавать