George
jfrt_ha_master -> jfrt_ha_master1 и любуйся сломанными шаблонами.
Alex
ну так то да, но можно же и по регулярке делать
NM
Я раньше писал под свои апликухи
George
play, которая шарится по группам - это нормально. У неё и так и так hosts есть. А вот роль - не нормально, если её нельзя с группы на группу перетащить или группу переименовать.
Sergey
Alex
т.е. в моем случае с HA мне роль надо условно разбивать на master и slave?
citius
George
citius
вот так же норм, не?
citius
я эту роль использую в своих проектах, и имя группы успешно переназначается в случае надобности (в моем случае - всегда)
George
@citius, я сильно не вчитывался, но похоже на хороший код.
George
А нет, это же дефолты роли. Не-не-не. Всё настраивать в перменных уровня play.
Timur
Aleksandr
Привет. Подскажите как-то без include покрасивее можно сделать задачу, когда на n серверов надо раскатать m конфигов, при этом в кажом конфиге нужно подставлять из списка LIST значение, создавая на каждый элемент списка копию конфига со своим значением?
Sergey
Timur
Timur
George
@tnt4brain, отлаживать такое, если кто-то забыл что-то указать в play, будет грустно. Роль пошла чёрти куда чёрти что сделала. Лучше уж фейльнутся на отсутствующей переменной.
citius
Sergey
citius
В этой же роли есть preflight checks, которые проверяют кучу всего
Timur
George
А дальше вопрос: помогает тебе роль найти ошибки и помогает поглубже в ногу выстрелить. Молчаливые дефолты на чужие хосты - это так себе идея.
Timur
Кто на ком стоял?
Sergey
Roman
Большой теоретический вопрос - если есть несколько ДЦ, плюс энвайрменты разделены по странам в проде, плюс есть большой DEV энвайрмент, который разделен на stage/test и прочее и тоже по странам. Как бы кто решал инвентори в таком случае? Понятно, что никаких when: dc == ‘DC1’ быть не может в ролях.
Aleksandr
Как связаны элементы списка и хосты?
main.yaml
- name: ensure sec configs
include: sec-configure.yml template_file="{{ sec_file }}"
loop_control:
loop_var: sec_file
with_items:
- CiscoASA
- Fortigate
- PaloAltoLEEF
- pfSense
- suricata
###
sec-configure.yml
- name: upload sec config
template:
src: "{{ template_file + '.sec.j2' }}"
dest: "/etc/sec/{{ template_file }}-{{ item }}.sec"
with_items: "{{ event_processor_ip }}"
###
event_processor_ip:
- ip1
- ip2
###
CiscoAsa (содержимое, урезано)
{{ item }}
Гайрат
Roman
Что значит решать инвентори?
заначит - где и что хранить. Если например DC-related переменные нужны для всех сред, где хранить совсем общие вещи и.т.д.
Sheridan
камрады, а напомните...
ansible_user: user
...
- name: one
copy:
...
vars:
ansible_user: admin
- name: two
debug: msg="{{ ansible_user }}"
В дебаге же останецца user ?
Timur
Timur
Тогда непонятно, что там выше
Roman
Sheridan
Vitaly
Гаспода может кто свежим взглядом глянет в чем косяк
- name: Add ssh keys for "{{ outer_item.name }}"
authorized_key: "user={{ outer_item.name }} key='{{ lookup('file', item) }}' state=present exclusive=yes"
with_first_found:
- files:
- "ssh_{{ env }}_{{ outer_item.name }}_{{ inventory_hostname }}.pub"
- "ssh_{{ env }}_{{ outer_item.name }}.pub"
- "ssh_{{ env }}.pub"
- "ssh_{{ outer_item.name }}_{{ inventory_hostname }}.pub"
- "ssh_{{ outer_item.name }}.pub"
- paths:
- ../../../files
Vitaly
Руками отрабатывает на ура, в aws падает
fatal: [server-02]: FAILED! => {"msg": "No file was found when using first_found. Use errors='ignore' to allow this task to be skipped if no files are found"}
Vitaly
awx как-то по другому пути эксплуатирует? )
Timur
Vitaly
Timur
Строчный синтаксис
Timur
А, и еще момент
Timur
Вы пытаетесь использовать переменную с именем env?
Vitaly
В смысле строчный такого вида?
authorized_key:
user:
key:
Vitaly
Timur
Vitaly
Переделаю сейчас, но я так понимаю на работу это мало влияет
Timur
С таким относительным путем напрашиваетесь на неприятности:
- ../../../files
Timur
Вы уверены, что в том пути, где будет выполняться код, относительно него будет такая директория?
Vitaly
ну да, там обычная структура проэкта
./
files
global_vars
roles
usermanager
tasks
mail.yml
Vitaly
../../../files - относительно корня проэкта
Vitaly
Переписал, как и ожидалось ничего не дало, по сему подниму вопрос.
В AWX как-то по другому отрабатывает patch ?
Vitaly
потому что-то руками роль отрабатывает без проблем
Vitaly
собственно пробовал /files положить рядом с ролью, результат один
Timur
Vitaly
А что происходит-то?
Руками отрабатывает на ура, в aws падает
fatal: [server-02]: FAILED! => {"msg": "No file was found when using first_found. Use errors='ignore' to allow this task to be skipped if no files are found"}
awx как-то по другому пути эксплуатирует? )
Timur
Timur
Значит, путь не правильный
Vitaly
Так в том-то и дело что все верно
Timur
Или с расположением напутали, или одна из переменных у вас не то значение несет
Vitaly
да вот сейчас ковыряю как дебагом вывести что-то по with_first_found
Denis 災 nobody
просто в -vvvv нет инфы?
Vitaly
нет к сожадению
Vitaly
походже оно вообще - patch: игнорирует
Sergey
Vitaly
Пусьб где искать файлы из - files
marantz
Приветсвую. Как сделать, чтобы переход к следующему таску происходил бы даже в случае неудачи текущего таска?
Alex
marantz
marantz
А чтобы при неудаче текущей таски пропускать следующую?
Alex
Timur
Ну, я ж говорил
Vitaly
Правда так и не понял почему руками отрабатывала локально, а на awx падало