Alex
Тогда и плейбук не надо, ансибл консоль самое то для одноразовых команд
Alex
Там шелл норм
Александр
В шеле больше 40 строчек получилось 😄
Александр
Эт плохо(
Aleksandr
Добрые люди, подскажите как правильно сделать , выполняю "ansible edge -m raw -a " copy tftp://x.x.x.x/config/sw_lan startup-config" -u username —ask-pass" но как сделать чтоб он вошел перед этим в enabled config
Mikhail
Посоны, если я запускаю плэйбук с тегом, у меня все равно таски с другим тэгом делают Gathering Facts. Это норма, насколько понимаю?
Anonymous
Да
Anonymous
Как мне тут сказали теги от лукавого
Mikhail
Никак не скипнуть это?
matt
gather_facts: no
Anonymous
Я тестил, если теги стартовать из ролей то ситуация как у тебя. Если стартовать из строки --tags "qwerty" то тег отрабатывает
Mikhail
gather_facts: no
Ага, нагуглил уже, спасибо.
Mikhail
Т.е. все работает, мне просто сбор фактов с других хостов не нужен. Я лучше в каждую роль setup вхуячу перед началом.
Vadim
Тогда gather_facts: false
Mikhail
gather_facts: no pre_tasks: - setup:
Mikhail
Вот так у меня получилось
Mikhail
Грязный ход, но работоспособный.
Nikolay
плейбуки ансибла лежат в гит репозитории ансибл может прочитать из этого репозитория текущую ветку, текуший коммит и время коммита?
Nikolay
http://docs.ansible.com/ansible/latest/git_module.html это на сколько я понимаю, только для того, чтобы выкачать новый репозиторий
Nikolay
т.е. локальный он прочитать не сможет
Vyacheslav
Сможет, если запустить его на localhost, скормив каталог ансибла с update:no
Nikolay
какая задача решается?
хочу передать в приложение, которое стартует ансибл, текущую ветку, текуший коммит и время коммита
Sergey
я здесь просто юзкейса для ансибла вообще не вижу - это всё можно стандартными вызовами гита узнать
Nikolay
приложение и ансилб скрипт в одном репозитории лежат
Nikolay
м, это вариант
Nikolay
да, норм решение
Nikolay
спасибо
Sergey
всегда пожалуйста
Aleksey
idea, pycharm, для них есть плагин под ansible
Он есть но его нет. Сломан полностью
matt
жаль что в виме нет точно такого же
Tadeusz
чем такое не устраивает?
Vadim
я уверен где-то есть, юникоидными символами что угодно можно нарисовать (и это меня пугает)
Vadim
https://i.imgur.com/vmB4fF5.png - Атом с автодополнением
Nikolay
есть vars app1: port:8080 app2: port:9090 каким именно app нужно обновлять узнаю через - command: "cat {{ app.idle_service_name }}" register: idle idle.stdout - вернет допустим app1 как дальше получить порт из переменных? что-то вроде {{ idle.stdout }}{{ .port }} ?
Nikolay
- debug: msg="{{ hostvars }}"
manefesto
я только что проклял модуль unarchive
Nikolay
нет нужных пропертей в логе
manefesto
"msg": "Failed to find handler for \"/srv/crm.tgz\". Make sure the required command to extract the file is installed. Command \"/bin/tar\" could not handle archive. Command \"/usr/bin/unzip\" could not handle archive."
Nikolay
vars сейчас объявлены так
Nikolay
manefesto
ну а что не так ?
manefesto
что хочешь обьясни
manefesto
я не понял
Vyacheslav
hostvars не нужно использовать, если переменные не от другого хоста хочешь получать
Vyacheslav
В твоей задаче нельзя переделать vars на: vars: app: instances: green: 8081 blue: 8082 ?
Nikolay
возможно)
Nikolay
name потом используется так
Nikolay
- name: Create services template: src: "file" dest: "/path/{{ app.name }}-{{ item.name }}" mode: 0755 with_items: "{{ app.instances }}"
Vyacheslav
тогда будет {{ app.instances[idle.stdout] }}
Nikolay
как можно тогда этот кусок переделать?
Vyacheslav
попробуй dest: "/path/{{ item }}-{{ app.instances[item] }}"
Nikolay
попробуй dest: "/path/{{ item }}-{{ app.instances[item] }}"
The task includes an option with an undefined variable. The error was: 'list object' has no attribute u'green'\n\nThe error appears to have been in
Nikolay
не прокатило
Nikolay
а вообще, если с другой стороны зайти, может тут другой подход нужен?
Vyacheslav
Ага, убери символы "-" перед green и blue.
Vyacheslav
hosts: localhost vars: app: instances: green: 8080 blue: 8081 tasks: - set_fact: type: "green" - debug: msg="{{ app.instances[type] }}" - debug: msg="{{ item }}-{{ app.instances[item] }}" with_items: "{{ app.instances }}"
Vyacheslav
Другой подход (если нужны будут более развесистые деревья), то фильтр json_query: https://stackoverflow.com/questions/41581273/search-dictionary-values-in-ansible
Nikolay
понятно, спасибо
Andrew
Коллеги, помогите плз пробить тему. Делаю файнд файликов, получаю лист result.files . Как по нему в следующей таске пробежаться? With_items и этот лист дают просто стринг.
Nazar
out
Andrew
Nazar
result.files.stdout
Nazar
вот так попробуй
Nazar
хотя погоди, покажи дебаг
Andrew
Не, так не будет работать
Andrew
Мне нужен path
Vladimir
- shell: /usr/bin/foo register: foo_result foo_result.stdout
Andrew
Это не то
Vladimir
покажи что ты делаешь код
Andrew
Не все модули такой резалт регают
Vladimir
и какую ошибку возвращает