Павел П.
В файле
в каком виде? - - - шаблон1 - пакет1=1.2 - пакет2=2.3 шаблон2 - пакет1=2.4 - пакет3=3.6 ?
Павел П.
и как потом в роли ставить условия и обращения к элементам дикта?
V
Добрый день, коллеги. А подскажите где именно можно сделать файлик yml с переменными group_vars/all.yml для модулей Ансибл.. но должен лежать только в /etc/ansible... Или есть возможность его положить в папке с проектом?
Игорь
у меня лежит /etc/ansible/windows/
V
Да вот как-то хотелось чтобы все вместе лежало.. а в инвентарный файл переменные записывать вроде как некрасиво..
Павел П.
А в чем проблема? Я не понимаю )
в синтаксисе. что в apt: name писать?
George
{{ здесь имя переменной }}
George
так умеешь?
George
типичная джинджа
V
амн.. относительно плейбука group_vars получается просто папку с таким названием создаю и в корне где плейбук находится? Так?
Alex
амн.. относительно плейбука group_vars получается просто папку с таким названием создаю и в корне где плейбук находится? Так?
да $ tree . . ├── ansible.cfg ├── inventory │ └── hosts.ini ├── playbooks │ ├── group_vars │ │ └── all │ └── jfmc.yml └── roles
V
Спасибо.
V
да $ tree . . ├── ansible.cfg ├── inventory │ └── hosts.ini ├── playbooks │ ├── group_vars │ │ └── all │ └── jfmc.yml └── roles
А запускаешь плейбук получается именно из деректории где ансибл кфг? Так? Он же вроде смотрит сначала в в текущий каталог.. а каталогом наверх конфигурационный файл не ищет..
V
Ага.. спасибо..
Alex
вообще вот https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#directory-layout
Павел П.
в каком виде? - - - шаблон1 - пакет1=1.2 - пакет2=2.3 шаблон2 - пакет1=2.4 - пакет3=3.6 ?
Нет, 1 файл - один шаблон. Название файла - переменная
ShadoWalkeR
Господа, я опять к вам с необычной задачей
ShadoWalkeR
Есть dict из ямла. В котором нужны определенные вложенные параметры в шаблоне jinja2 к примеру пусть будет так: - A: server: {host: 127.0.0.1, port 5555}, descr: "Foo" - B: server: {host: 127.0.0.1, port 5556}, descr: "Bar" В шаблоне мне нужно из пар host-port сгенерировать определенные строки для статистики. С ээтим проблем нет. НО! Иногда сочетание host-port может дублироваться и как мне в шаблоне j2 обработать эту ситуацию?
ShadoWalkeR
Я так понимаю проще всего сначала их сложить в list, а потом дропнуть из листа дубли?
ShadoWalkeR
И да - делать это надо непосредственно в j2
xXxSPYxXx
Кто пользовался awx, подскажите, у вас тоже плейбукки запускаются только с третьего раза?
Timur
И да - делать это надо непосредственно в j2
Можно в j2, можно в предварительно отфильтрованном списке отдельной переменной. Без разницы
ShadoWalkeR
Так, а как это делается? А то чтото не хочет генерироваться список - вроде по документации джинджи делаю {% set targets = [] %} {% for bnode in BNODES %} {{ targets.append(bnode.destination.host~"-"~bnode.destination.port|default(5060)) }} {% endfor %}
ShadoWalkeR
Каких именно?
Timur
Что значит "не хочет генерироваться"?
ShadoWalkeR
А, похоже нужно было вот так список дополнять значениями {% set targets = [] %} {% for bnode in BNODES %} {% set targets = targets.append(bnode.destination.host~"-"~bnode.destination.port|default(5060)) %} {% endfor %}
ShadoWalkeR
Все - вопросов больше нет
Timur
в синтаксисе. что в apt: name писать?
- name: Install filebeat apt: name: '{{ fb_package_name }}' state: present register: installed_package until: installed_package is succeeded Как вариант. При подкладывании новых переменных должно меняться значение fb_package_name
Павел П.
точнее сказать вся связка не понятна была, щас вся картина улеглась
xXxSPYxXx
Нет
А если через API создать инвентори, так пробовали?
Alex
а есть какое то универсальное решение по запуску сервисов на sysvinit/systemd системах. Чтобы автоматом определять и использовать соответствующий модуль service/systemd ?
Sergey
Доку не читай @ в чат пиши
Alex
а в чем тогда отличие модуля service от systemd?
Sergey
а в чем тогда отличие модуля service от systemd?
https://docs.ansible.com/ansible/latest/modules/systemd_module.html#parameters Поддерживает systemd-специфичные вещи.
Artem
ребят, подскажите как сделать так что бы ansible прописаывал hostname (hostname должен подхватываться с самого сервера) виндового сервера в определнном конф файле?
Artem
окей, как сложить тогда собранный факт уже в шаблон ?
Leonid
Ребят, подскажите пожалуйста как мне в pass вместо com подставить переменную? Как ни пробовал - не получается. com это один из словарей, мне нужно его в зависимости от площадки получать динамически users: - name: ‘username’ dest: '/home/username/‘ pass: "{{ com[‘username’] }}"
Leonid
Для каждой площадки типа: com: username1: ‘password’ username2: ‘password’ …
Leonid
Вот в таком виде все работает, он идет в словарь сom и берет пароль
Leonid
Мне нужно вместо com подставлять имена словарей
Leonid
hostvars[ansible_hostname][dictname]
Не понял, но покурю )
Павел П.
Всем причастным большое спасибо за подсказки, всё прекрасно ставится нужными версиями!
George
красота
Sergey
У тебя минута есть. Прочитай правила, пожалуйста.
Sergey
А я не про гугл. Как выглядит изначальная задача, что делал, что получил (это вроде на пастбине), что ожидал, что нагуглил.
kaidxen
Ок задача очень простая скопировать файл на сервер. Но при выполненнии задчи система выдает выхлоп (на пастебине) жалуется что файла нет. При этом я проверяю, у меня этот файл лежит как положено, пути заменил на полные.....гуглил, там все стандарно, проверьте пути и т.д https://pastebin.com/8yvhV6y9
kaidxen
и из доки
Sergey
Попробуй переписать в том же формате, в каком в примерах. Без всяких равно, с норальными отступами.
kaidxen
секунду выхлоп покажу
Sergey
у тебя name должен быть в одном уровне с copy
Egor
dest же, а не dst.
Sergey
слушай, ну вот мне дико хочется матом ругаться, ты не читаешь же, что тебе ансибл пишет, да?
Sergey
^^^^^^
Sergey
Sergey
поэтому в правилах так подробно - чтобы он чаще срабатывал.
Anonymous
Подскажите пожалуйста, можно как-то заставить ансибл начинать прокатку плейбука с конкретного хоста? У меня в плее развертывание кластера и есть бутстрап сервер, на который завязаны остальные члены групп. Думал вынести его в отдельную группу и отдельным плеем катить с таргетом только на этот хост, но у меня есть операция set_fact, которая через delegate_to распостраняется на всех хосты, поэтому нужно сделать в пределах одного плея. Или я не с той стороны захожу?
Timur
Но вообще подробностей мало
Timur
Если бы задачу более детально описали - можно было бы предметнее путь решения посоветовать
Alex
а lineinfile не идемпотентный по природе?
Roman
Есть такой таск: - name: Download Grav CMS and unpack unarchive: src: https://getgrav.org/download/core/grav-admin/1.6.15 dest: /var/www/test.ru remote_src: yes owner: nginx никто не скажет как распаковать zip архив в директорию /var/www/test.ru? Сейчас после распаковки внутри диры test.ru создаётся дира grav-adm внутри которой файлы. Нужно чтобы все файлы распаковались именно в test.ru. Если добавить extra_opts: [--strip-components=1], то это не помогает, т.к. вероятно работает только с tar архивами
Kane
как вариант можно просто распаковывать в /var/www и следующим таском делать mv grav-admin test.ru
Kane
имхо -d это просто каталог назначения -d extract files into exdir
Kane
у меня чет сходу не получилось сделать как вы хотите
Kolya
Всем привет. Бэкаплю сеть через routeros_command и asa_command, может быть натолкнет кто то на мысль как прикрутить в zabbix мониторинг этого дела?