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
да я в курсе
manefesto
увы, я уже этого не узнаю, я ушел в другую компанию, awx оставил там же
manefesto
здесь будет исключительно jenkins + ansible
manefesto
у меня будет цель создать CI/CD, поэтому jenkins
Nklya
ага, настоящий сиайсиди только на женкинсе))
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
Так же, как и в названия ключей в словарях (фигурные скобки).
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
cent
ShadoWalkeR
ShadoWalkeR
Все установки в рамках одного плейбука выполняются
ShadoWalkeR
В том то и дело, что они есть
Sergey
ShadoWalkeR
И ldconfig и start-stop-daemon которые он найти не может
Sergey
для того сочетания uid/gid/переменных окружения, которые получаются в момент установки пакета - не может.
Pavel
Alexander
Как описать джинжа шаблон,4 надо чтобы он вхял все файлы из директории, и в шаблон подставить первым словом имя этого файла, и чернз пробел содержимое файла. Список файлов я получаю и имя вывожу, не могу понять как рядом содержимое подставить
Sergey
eucariot отпуск (MSK+4)
Привет.
Подскажите, в новом ansible 2.6 для коннекта к huawei какой использовать Connection?
network_cli требует указания OS, но Huawei там нет.
Local - пытается подконнектиться, как я понимаю, к хосту, но точно не лезе по ssh.
Sergey
eucariot отпуск (MSK+4)
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
Ну и да - у тебя не просто значение, а значение, хранящееся по ключу в словаре.
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 %}
Dmitry
Alexander
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 }}
Albert
inqfen
о, внезапно
inqfen
Спасибо
inqfen
Это я от балды написал