Sergey
Cyrill
господа, встала тривиальная задача, ансиблом не разу не пользовался, но если быть коротко то порядок действий такой : останавливаем сервис, редактируем конфиг, удаляем папку с кешом, снимаем адрибут чатр с другого файла, редактируем файл, возвращаем чатр, стартуем сервис.
Cyrill
это надо сделать на полсотни хостов
Cyrill
что то руками не особо хочу везде ковырять, хотел бы попробовать это ансиблу скормить
bebebe
bebebe
все что вы описали возможно.
создайте песочницу над которой можно экспериментировать, пилите плейбку, переодически натравлийавйте на неё ansible-lint, запустите против одной машины, потом против несскольких, потом против всех
aborche
Дяденьки, а как лучше сделать следующую весчь. Есть N машин, нужно сделать на всех ssh-genkey и паблики разлить по соседям
aborche
fetch +copy кмк некошерно
aborche
Эт я понимаю. Но тогда получается нужно сделать кросс цикл
aborche
С исключением самого себя
aborche
А можно output куда-то глобально собрать?
aborche
Не сессионно
aborche
Типа register: global[{{ansible_hostname}}]
aborche
А потом item покрутить
bebebe
вы на N машинах генерите пару приватный, публичный ключ, далее вам нужно с каджой из этих машин забрать публичный ключ и добавить на одну машину, или опять таки на все?
aborche
На все добавить паблик соседей
aborche
Postgresql кластеп
aborche
Кластер
bebebe
окей, вот на вскидку, возможно коллеги предложат более правильный путь:
генерируете ключи на всех машинах и записываете их через register для каждой машины в переменную например ssh_public_key
далее пробегаетесь опять по всем машинам, делаете with_item, но с условием что inventory_hostname != item хостнейм
bebebe
но я бы посмотрел на это с другой стороны, и сгенерировал для psql кластера одну пару приватный публичный ключ и разложил где надо, если это подходит под ваши security policy
bebebe
делать "full mash" из ключей, это такое себе занятие
Vadim
имхо один ключ сделать проще - и юзать его для определенной операции
bebebe
Andrey
Ansible Up & Running 2nd edition появился у кого?
Womchik
не считая авторов?
simplemice.eth
simplemice.eth
Womchik
epub случайно нет?
simplemice.eth
у меня неа, только в пдф хороню... конверторы есть...
Andrey
не. конвертеры не то.
Andrey
когда изначально для epub готовят и проверяют всё качественно получается.
Andrey
спасибо!
simplemice.eth
ну тогда звиняйте, что есть )))
Andrey
а где берёшь?
Womchik
спасибо
simplemice.eth
диллеры хорошие....
simplemice.eth
у китайцев в основном
Andrey
а где у китайцев?
Andrey
а идея хороша! duckduckgo + регион поиска китай
Andrey
спасибо!
Andrey
Andrey
@womchik ^^^
Womchik
спасибо
alexander
всем привет! подскажите, а нормальная ли это практика, в процессе провиженинга через ансибл создавать разделы на жестком диске и шифровать их, чтобы туда уже потом деплоить данные? а-то пока это делается вручную, вот думаю, можно ли автоматизировать малой кровью
Aleksey
The example code in this book was tested against version 2.3.0.0 of Ansible
Sergey
Constantin
Aleksey
Aleksey
с 2.4
Sergey
alexander
Aleksey
а вы про которй ignition?
Gleb
кореосная штука
Gleb
наверное
Gleb
https://coreos.com/ignition/docs/latest/what-is-ignition.html
Aleksey
Andrey
Stas
подскажите как модулем xml вывести чилдренов
Stas
пож
Stas
удалять добавлять можно
Stas
а как посмотреть кто внутри ноды?
Ждун
xpath? (content)
Stas
"matches": [
{
"CamelGW": "\n "
}
Stas
если attribute поставить в контент то он все аттрибуты ноды выведет
Stas
мне то надо то что внутри
Ждун
child::node()
Stas
это что и куда)
Ждун
I can only show you the door. You’re the one that has to walk through it. 🙃
bebebe
а как посмотреть кто внутри ноды?
- name: Parse the lo0 IP
xml:
xmlstring: "{{ result.xml[0] }}"
xpath: "./logical-interface[name='lo0.0']/address-family[address-family-name='inet']/interface-address/ifa-local"
content: 'text'
register: result
failed_when: result['matches'] is not defined
- name: Set the lo0 IP Fact
set_fact:
lo0_ip: "{{ result['matches'][0]['ifa-local'] }}"
- name: Print the lo0 IP
debug:
var: lo0_ipне?
bebebe
прошу прощения, не туда
Nikita
Всем привет, подскажите пожалуйста, выполняю вот такой плейбук
- stat:
path: /usr/lib/systemd/system/zabbix-agent.service
register: zabbix_service
when: ansible_os_family == ‘RedHat’
- name: CentOS | install libzbxpgsql
yum:
name: http://cdn.cavaliercoder.com/libzbxpgsql/yum/zabbix32/rhel/7/x86_64/libzbxpgsql-1.1.0-1.el7.x86_64.rpm
when: ansible_os_family == "RedHat" and zabbix_service.stat.exists == True
notify: restart zabbix-agent
И получаю вот такую ошибку
The conditional check 'ansible_os_family == "RedHat" and zabbix_service.stat.exists == True' failed. The error was: error while evaluating conditional (ansible_os_family == "RedHat" and zabbix_service.stat.exists == True): 'dict object' has no attribute 'stat’
Nikita
Использовать факты и переменные в одном when нельзя?
Aleksey
Tadeusz
LMAO
cent