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 же.
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
и проблем с директориями не будет
bebebe
вообще это можно разрулить через ansible.cfg, который находится на одном уровне с плейбукой
eucariot отпуск (MSK+4)
вообще это можно разрулить через ansible.cfg, который находится на одном уровне с плейбукой
В ansible.cfg у меня прописан путь до модуля. Пробовал и дефолтный модуль и тот, который сам ставил (закоменнченный) # library = /home/eucariot/ansible/library/CloudEngine-Ansible library = /usr/local/lib/python2.7/dist-packages/ansible/modules
eucariot отпуск (MSK+4)
Оба варианта не сработали.
Sergey
потмоу что не надо так - есть же дефолт!
Sergey
Структура проекта
Sergey
вот в "library" положишь свой модуль - всё будет пучком
Sergey
если канеш у тебя структура проекта из best practices
eucariot отпуск (MSK+4)
вот в "library" положишь свой модуль - всё будет пучком
Ну вот эта строка, кажется именно это и означает: # library = /home/eucariot/ansible/library/CloudEngine-Ansible
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
Maksim
я это варинт использовал для настройки ibm mq. у меня был список менеджеров в который мог наращиваться и был список очередей внутри менеджер который тоже мог меняться. и проблем не было
I know
Кажется, при повторном join'е бот не спрашивает ничего (если в первый раз нажать I'll be back)
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
я тоже
Nklya
bebebe
Долго и счастливо надеюсь?
bebebe
Конечно пора сделать ликбез о бесплатных стораджах автору этого бота
Nklya
что для юнит, а что для интеграционного то?
Womchik
Долго и счастливо надеюсь?
мне больше интересно "зачем?"
bebebe
мне больше интересно "зачем?"
Ну это вы в корень зрите
bebebe
Тут чатик о том как бы ансибл шмансибл драма в трёх действиях и Jinja темплейты
Alexander
что для юнит, а что для интеграционного то?
А что для вас применимо к ansible является интеграционным?
Alexander
Логично сказать плейбуки, но те же инструменты отлично с этим справляются (молекула например)
Nklya
интеграционные тесты - это тестинфра и разные *spec юнит тестов в ансибле нет, а в шефе или папете - есть
Nklya
молекула и китчен - это фреймворк для управления жизненным циклом инстансов и запуска теста в нужных местах
Nklya
Nklya
Все смешалось в доме Обломских.. Пусть будет по Вашему :)
Просветите же нас гуру. А то так и умрем в серости и незнании))
Nikita Dwarf
Всем привет.. Народ, нужна помощь с ролькой.. хочу регистрировать дженкинс слейв через ансибл рольку, использую курл.. но ответ мне что тело не передано
Nikita Dwarf
пробовал и описывать и через джину передавать