Andrew
AWX разве из коробки такое умеет ?
да умеет если делать awx-manager provision_instance --hostname=<name used in inventory file> но не понятно какой именно inventory_file если добавить инстанс то можно выбирать какой инвентари какой темплейт какая организация относится к тому или иному инстансу
manefesto
магия
Andrew
сейчас я смог сделать чтоб любой запущенный AWX мог запускать мастер AWX но не могу сделать чтоб любой запускал с любого другого потому-что добавляя инстансы он их не может найти :\
Andrew
магия
почему
manefesto
это с какой версии появилось ?
manefesto
у меня стоит 1.0.1
Andrew
с версии 3.2.5 Ansible Tower но ансибл AWX version != Ansible Tower version
manefesto
да я в курсе
Andrew
у меня стоит 1.0.1
я думаю у тебя уже доступно
manefesto
увы, я уже этого не узнаю, я ушел в другую компанию, awx оставил там же
manefesto
здесь будет исключительно jenkins + ansible
Sergey
здесь будет исключительно jenkins + ansible
Если приделаешь к этому всему Rundeck для запуска плейбуков - будет тоже годно, кстати.
manefesto
у меня будет цель создать CI/CD, поэтому jenkins
Nklya
ага, настоящий сиайсиди только на женкинсе))
Ruslan
а если failed_when: false?
Работает так же, как и ignore_errors
Evgenii
ио ио всем
Evgenii
господа подскажите, почему ансибл меняет кавычки и как этого избежать?
Evgenii
передаю env при деплое докер контейнера
Evgenii
и ансибл меняет " " на ' '
Evgenii
вход: - name: Install consul in docker include_role: name: consul vars: consul_container_options: recreate: "yes" env: CONSUL_BIND_INTERFACE: "eth1" CONSUL_LOCAL_CONFIG: { "skip_leave_on_interrupt": true } command: ["agent", "-server", "-bootstrap-expect=3", "-client=0.0.0.0"] tags: ["consul"]
Evgenii
выход : docker inspect -f '{{ .Config.Env }}' consul [CONSUL_LOCAL_CONFIG={'skip_leave_on_interrupt': True} CONSUL_BIND_INTERFACE=eth1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CONSUL_VERSION=1.2.0 HASHICORP_RELEASES=https://releases.hashicorp.com]
Evgenii
так как по сути это JSON парсер ругается на не валидность и консул собственно не стартует
Sergey
господа подскажите, почему ансибл меняет кавычки и как этого избежать?
Только потому, что ты НЕ передаёшь ему никаких кавычек. Ты передашь список (квадартные скобки), закавычивая элементы списка. В сами элементы списка кавычки, естественно, не входят.
Sergey
Так же, как и в названия ключей в словарях (фигурные скобки).
Evgenii
так а как правильно то сделать ?
Evgenii
что бы это CONSUL_LOCAL_CONFIG: { "skip_leave_on_interrupt": true } не превращалось в это [CONSUL_LOCAL_CONFIG={'skip_leave_on_interrupt': True}
Sergey
тебе нужен JSON - так об этом и скажи ансиблу, там же у Jinja есть фильтр специальный to_json
ShadoWalkeR
Господа, нужна помощь. Ансиблом раскатывают хост. Часть пакетов ставится, часть нет через модуль apt. Ошибка всегда: "dpkg: warning: 'ldconfig' not found in PATH or not executable", "dpkg: warning: 'start-stop-daemon' not found in PATH or not executable", "dpkg: error: 2 expected programs not found in PATH or not executable", "Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin" Сделал echo PATH там /sbin нет, но если я залогинюсь под собой и сделаю sudo - $PATH нормальный. Плейбук вызываю с ключом —become
ShadoWalkeR
https://help.ubuntu.com/community/EnvironmentVariables
Это не объясняет почему он часть пакетов поставил
cent
Это не объясняет почему он часть пакетов поставил
Ставится от разных юзверей? Где-то become=root, а где-то другой пользователь?
ShadoWalkeR
Все установки в рамках одного плейбука выполняются
Sergey
Это не объясняет почему он часть пакетов поставил
Объясняет. У тебя же в выхлопе написано, что части пакетов требуется всякая фигня в скриптах, которую система нифига не находит.
ShadoWalkeR
В том то и дело, что они есть
ShadoWalkeR
И ldconfig и start-stop-daemon которые он найти не может
Sergey
для того сочетания uid/gid/переменных окружения, которые получаются в момент установки пакета - не может.
Pavel
для того сочетания uid/gid/переменных окружения, которые получаются в момент установки пакета - не может.
... еще и параметры подключения к удаленному хосту могут свое накладывать
Alexander
Как описать джинжа шаблон,4 надо чтобы он вхял все файлы из директории, и в шаблон подставить первым словом имя этого файла, и чернз пробел содержимое файла. Список файлов я получаю и имя вывожу, не могу понять как рядом содержимое подставить
Alexander
https://docs.ansible.com/ansible/2.5/plugins/lookup/file.html
Я это видел. Но он когда проходит по файлам, каждый раз конечный файл перезаписывсет
eucariot отпуск (MSK+4)
Привет. Подскажите, в новом ansible 2.6 для коннекта к huawei какой использовать Connection? network_cli требует указания OS, но Huawei там нет. Local - пытается подконнектиться, как я понимаю, к хосту, но точно не лезе по ssh.
Sergey
Я это видел. Но он когда проходит по файлам, каждый раз конечный файл перезаписывсет
Это фильтр лукапа - он не может перезаписывать ничего, он только читает.
eucariot отпуск (MSK+4)
Привет. Подскажите, в новом ansible 2.6 для коннекта к huawei какой использовать Connection? network_cli требует указания OS, но Huawei там нет. Local - пытается подконнектиться, как я понимаю, к хосту, но точно не лезе по ssh.
Хотя вопрос, наверно, другой. При попытке поставить ssh/paramiko_ssh он все свои дела выполняет, но сессию не закрывает - так и висит. Как заставить?
Vladimir
привет, народ помогите понять, как быть с шаблоном? уменя используются хостварсы в которых параметры домена один из параметров webroot чтобы указать нестандартный home для vhost-а соответственно логика в шаблоне vhost-а {% if "{{ item.webroot }}" %} DocumentRoot /var/www/html/{{ item.webroot }} {% else %} DocumentRoot /var/www/html/default {% endif %} но не работает. всегда отрабатывается первый вариант в шаблонизатор отдается дикт (item={u'webroot': None, u'email': u'alex@alch.com', u'name': u'lve'}) перепробованs варианты: {% if "{{ item.webroot }}" is defined %} {% if "{{ item.webroot }}" != '' %} {% if "{{ item.webroot }}" != None %} понятно что is defined проверяет переден ли такой параметр и предохраняет от отсутствия его, а как быть если он есть, но пустой?
Sergey
не стоит заниматься странным: {{ item.webroot | default('default') }} вывозит
Vladimir
и правдв странным )) спасибо )
Sergey
Vladimir
а где подробно можно прочитать? кажется оно считает что значение есть - подставляет пустое значение
Sergey
Ну и да - у тебя не просто значение, а значение, хранящееся по ключу в словаре.
Sergey
а, всё верно, туплю уже к вечеру.
Vladimir
Не нашел подходящего ((
Alex
https://github.com/ansible/ansible/issues/7984
Vladimir
все равно не работает предлагается делать так: {% if foo is defined and foo %} но вот так не работает {% if "{{ item.webroot }}" is defined and "{{ item.webroot }}" %} (без кавычек вылетает с руганью на синтаксис)
Vladimir
fck.... убрал фигурные скобки из проверки, сработало
Vladimir
рабочий варик {% if item.webroot is defined and item.webroot %} DocumentRoot /var/www/html/{{ item.webroot }} {% else %} DocumentRoot /var/www/html/default {% endif %}
Alexander
Хотя вопрос, наверно, другой. При попытке поставить ssh/paramiko_ssh он все свои дела выполняет, но сессию не закрывает - так и висит. Как заставить?
Если включен ssh multiplexing - это нормально. Надо смотреть в значения ControlPersist либо руками закрывать мастер: ssh -O stop hostname
Vladimir
в продолжение темы с отдельным web root folder в шаблон запихано, отрабатывает т.е. у меня для хоста есть хоствар sites: - email: mail.server.com name: domain.name webroot: web_folder в таске проверяется так: - name: Creating subdomain folders file: path=/var/www/html/{{ item.webroot }} state=directory with_items: - "{{ sites }}" when: item.webroot is defined отрабатывает норм даже если вебрут есть, но пустой создает только те у которых есть значение
ShadoWalkeR
Господа, а как в переменной забэкслэшить спецсимволы?
Alexander
обратным слешем )
Alexander
не понятен до конца вопрос
ShadoWalkeR
Ну у меня есть переменная, в которую попадает символ !. Как мне его забэкслешить?
Alexander
одинарные кавычки?
ShadoWalkeR
Пробовал - не очень работает
ShadoWalkeR
Если добавляю \! то ансибл превращает это в \\!
eucariot отпуск (MSK+4)
eucariot отпуск (MSK+4)
А что делать, когда ансибл ргуается так: "msg": "Could not find imported module support code for ce_command. Looked for either ComplexList.py or utils.py"
ShadoWalkeR
Вот это дичь. Если на диске есть уже гит репозиторий то модуль гит с —check опцией падает с ошибкой. Если нет репозитория, то он отрабатывается ок. Без —check он отрабатывается независимо от наличия репозитория. Логичный вывод что в режиме —check он не может делать update вместо clone...
inqfen
всем привет
inqfen
Глупый вопрос
inqfen
Как в with_items list засунуть?
Albert
А ты ман по loop читал?
inqfen
Типа list: ['1', '2'] - name: test shell: echo {{ item }} with_items: {{ list }}
Mikhail
with_items: - {{ list }}
inqfen
о, внезапно
inqfen
Спасибо
inqfen
Это я от балды написал