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
Как мне тут сказали теги от лукавого
Vadim
Mikhail
Никак не скипнуть это?
matt
gather_facts: no
Anonymous
Я тестил, если теги стартовать из ролей то ситуация как у тебя. Если стартовать из строки --tags "qwerty" то тег отрабатывает
Mikhail
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
т.е. локальный он прочитать не сможет
Sergey
Vyacheslav
Сможет, если запустить его на localhost, скормив каталог ансибла с update:no
Nikolay
какая задача решается?
хочу передать в приложение, которое стартует ансибл, текущую ветку, текуший коммит и время коммита
Sergey
я здесь просто юзкейса для ансибла вообще не вижу - это всё можно стандартными вызовами гита узнать
Nikolay
приложение и ансилб скрипт в одном репозитории лежат
Nikolay
м, это вариант
Nikolay
да, норм решение
Nikolay
спасибо
Sergey
всегда пожалуйста
Vadim
Aleksey
Aleksey
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 }} ?
Vadim
Nikolay
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
я не понял
Nikolay
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
не прокатило
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 }}"
Nikolay
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
и какую ошибку возвращает