Lamobot
В доке, скорее всего, имеeтся ввиду разница между фактами о хосте, которые получаются через gather_facts и registered переменными. А не разница между set_fact и registered
Lamobot
Ну кроме отдельного случая - у set_fact есть параметр cacheable
Grek 🇺🇦
тогда совсем неоднозначно выходит
Lamobot
Что именно?
Простой set_fact как и register: var будет доступен только в плейбуке, в котором его запустили.
Lamobot
Однако если set_fact с опцией cacheable: yes - этот факт уедет в факты хоста, и его можно будет использовать в других плейбуках
Lamobot
Вернее даже не в факты хоста, а в кеш фактов :)
Отделение Bereke Bank
буду_проституткой.jpg
Sergey
set_fact - глобально, можно обратиться через host_vars.
register - так, баловство до конца плейбука, никаких тебе host_vars.
Lamobot
Самый лучший способ заснуть - читать доку перед сном :)))
Отделение Bereke Bank
Lamobot
Работает
Anton
https://docs.ansible.com/ansible/latest/ лежит?
Sergey
Sergey
Lamobot
Росен
Привет :>
Nikita
ребят а как из плейбука сходить на дгой хост по ssh и выпронить там команду ?
по апи системы виртулизации создаю исо домен и тд
в конце мне надо сходить на хост который host: "{{ node_name }}" и там примонтирвать шару , надо ипользовать delegare_to но как через него сходить на хост используя пароль и что то выполнить?
vars_files:
- ovirt-engine-vars.yml
pre_tasks:
- name: Log in
ovirt_auth:
url: "{{ engine_url }}"
username: "{{ username }}"
password: "{{ password }}"
# ca_file: "{{ engine_cafile }}"
tags:
- always
tasks:
- name: ensure Datacenter "{{ datacenter }}" is existing
ovirt_datacenter:
auth: "{{ ovirt_auth }}"
name: "{{ datacenter }}"
comment: "auto add"
compatibility_version: 4.2
quota_mode: disabled
local: True
- name: Ensure Cluster "{{ cluster }}" is existing
ovirt_cluster:
auth: "{{ ovirt_auth }}"
name: "{{ cluster }}"
data_center: "{{ datacenter }}"
description: "bw cluster"
cpu_type: Intel Broadwell Family
description: bwcluster
compatibility_version: 4.2
external_network_providers:
- name: ovirt-provider-ovn
- name: ensure host node is joined
ovirt_host:
auth: "{{ ovirt_auth }}"
cluster: "{{ cluster }}"
name: "{{ node_name }}"
address: "{{ node_ip }}"
password: "{{ node_pass }}"
- name: Create VM datastore
ovirt_storage_domain:
auth: "{{ ovirt_auth }}"
name: "{{ domain_name }}"
host: "{{ node_name }}"
data_center: "{{ datacenter }}"
localfs:
path: /data
- name: Create ISO NFS storage domain
ovirt_storage_domain:
auth: "{{ ovirt_auth }}"
name: "{{ iso_domain_name }}"
host: "{{ node_name }}"
domain_function: iso
data_center: "{{ datacenter }}"
localfs:
path: /iso
Grek 🇺🇦
после создания ВМ есть возмодность получить ее ip?
потом делаете add_host
и следующим плеем по добавленному хосту уже делаете все что вам там нужно
Grek 🇺🇦
Grek 🇺🇦
ну, по ссш сходить и примонтировать?
Max
Скажите, а можно ли для запуска плейбука указать лимит, в котором используется range. Т.е. есть hosts файл, в котором одна группа и в ней куча серверов ser-1, ser-2…
Можно ли как-то вызвать плейбук с примерно таким синтаксисом: ansible-playbook playbook.yml —limit ser-[7:17]
?
Fire
Fire
Grek 🇺🇦
так же как и для обычных linux хостов?
Svyatoslav
Ребят, подскажите, как синхронизировать файлы с удаленного хоста на мастер хост? В документации найти не могу. Ансибл 2.3.0
Fire
Svyatoslav
Есть каталог с 100500 csv файлами, мне их надо качнуть. По одному копировать через модуль fetch долго. Я думал проще через синхронизацию каталогов, к примеру модулем synchronize
Svyatoslav
@PavelGassan @firemdkfighter спасибо, это я невнимательный!
Василий
Всем привет, кто кастомные модули на python писал, подскажите пожалуйста как в целях дебага выводить данные во время выполнения таски. Например по старой доброй традиции в лоб дебаг средством print(), а как ансибл заставить выводить то что мне нужно. Простой print() в скрипте игнорируется, пробовал print(json.dump({'msg': 'test'})) вываливается с ошибкой.
Sergey
🎱𝕷𝖙𝖍𝖒🌙
Pavel
Василий Курамшин, [23.09.20 13:43]
[In reply to Sergey Pechenkó]
надеялся на чудо)) Пытаюсь задебажить модуль, отдельно скрипт отрабатывает как нужно, а при подключении в модуль одна функция работает не правильно.
А разве библиотека для логирования не работает? (logging)
Василий
Pavel
да
Василий
Забыл что-то про это, спасибо
Iwan
Всем привет, подскажите пожалуйста или тыкните ссылкой по Ansible 2.10
У меня используется модуль - docker_container_module
А как теперь правильно использовать его в 2.10.1? (последний релиз).
Fire
Iwan
Iwan
А может-быть у кого-то есть пример роли с использованием коллекции?...
Или может тут есть скидывали уже какой-то пример роли с использованием Коллекции?
Aleksandr
Привет. Подскажите пожалуйста как из словаря извлечь одновременно несколько значений? или точнее у меня есть pipe, на выходе словарь. я хотел бы склеить в нужном порядке элементы словаря в строку через пробел.
Alex
Aleksandr
а потом?
Nikita
но мне туда надо авторизоваться например , не использовтаь же шелл модуль чтобы команду передать
Grek 🇺🇦
а потом?
что-то типа
| join (' ')
Grek 🇺🇦
Nikita
да, это ip
Nikita
node_ip: 8.8.8.8
node_pass: sjdhbasjbd
Nikita
получается надо туда авторизоваться и получить uptime
Grek 🇺🇦
ну, добавь через add_host его в инвентарь и потом сделай новый плей указав в hosts этот хост
Aleksandr
что-то типа
| join (' ')
Дано(для простоты оставлены только нужные для селекта ключи):
user_list:
- name: core
ssh_keys:
- name: main
type: "ecdsa-sha2-nistp256"
value: "AAAA..."
Нужно получить:
pubkey: "ecdsa-sha2-nistp256 AAAA....."
Как это сделал я:
pubkey: "{% set core_main_ssh_params =
user_list |
selectattr('name', 'equalto', 'core') |
sum(attribute='ssh_keys', start=[]) |
selectattr('name', 'equalto', 'main') |
list | first -%}
{{ core_main_ssh_params.type }} {{ core_main_ssh_params.value }}"
Как это сделать правильно?....
Aleksandr
а @tnt4brain в отпуске чтоли?) обычно первый человек на критику)
Lamobot
Aleksandr
проблема в том что я думаю что это коряво. и хотел бы узнать у сообщества есть ли способ проще
Lamobot
Вы хотите сразу один фильтр что ли? user_list | make_me_what_i_want_now :)
Aleksandr
в идеале)))) но писать целый питон фильтр для такой задачи наверное перебор)
Aleksandr
user_list | zdelat_zaebis
Iwan
Aleksandr
нет, мне нужно выцепить конкретный ключ конкретного юзверя
Lamobot
Просто здесь проблема в том, что вытащить два ключа словаря за один проход не получится. Ну или какими-то ещё более экзотическими способами типа to_json и фильтрами для джсона :))
Отделение Bereke Bank
Aleksandr
Lamobot
Так что ваш способ норм
Aleksandr
Aleksandr
Aleksandr
кстати я вполне хорошо ту задачу по мержу параметров решил
Lamobot
с жсоном было бы проще, но для него надо ставить библиотеку) а это уже не из коробки
Я немного неправ, можно вытащить за один проход, но выглядит криво:
"{{ ['type', 'value'] | map ('extract', (user_list |
selectattr('name', 'equalto', 'core') |
sum(attribute='ssh_keys', start=[]) |
selectattr('name', 'equalto', 'main') |
list | first)) | list | join(' ')}}"
Alex
Fire
Artur
checkdiff
Alex
/usr/local/lib/python3.5/dist-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 3.5 support will be dropped in the next release of cryptography. Please upgrade your Python.
from cryptography.hazmat.backends import default_backend
а кто как решает пробему в 16й убунте или pyenv наше все?