Victor
Сап гайз, мне нужно менять значение переменной в зависимости от того запускается ли плейбук в чек моде или без него.
Из очевидного это сделать set_fact используя магическую переменную ansible_check_mode. Но может есть более каноничные варианты?
Gleb
when: ansible_check_mode ?
Victor
Combot
Alex has been banned! Reason: CAS ban.
Anonymous
Привет, может кто сталкивался с этим:
Anonymous
{
"by": "vyos",
"comment": "configured by vyos_config\u001b[m",
"datetime": "2020-02-17 15:59:10 ",
"revision": "1",
"via": "cli\u001b[m"
},
{
"by": "vyos",
"comment": null,
"datetime": "2020-02-17 15:56:20 ",
"revision": "2",
"via": "cli\u001b[m"
},
Anonymous
\u001b[m на каждом str ответе vyos_facts
Oleg
{
"by": "vyos",
"comment": "configured by vyos_config\u001b[m",
"datetime": "2020-02-17 15:59:10 ",
"revision": "1",
"via": "cli\u001b[m"
},
{
"by": "vyos",
"comment": null,
"datetime": "2020-02-17 15:56:20 ",
"revision": "2",
"via": "cli\u001b[m"
},
подозреваю это виндовые окончания строк приложение так принтует
Anonymous
Виндовса нет и не было
Anonymous
Это так же есть в тестах у ансибла
Anonymous
https://logs.zuul.ansible.com/75/59175/9e6166cf228123bc0311e2642d1a2c7222bf1937/third-party-check/ansible-test-network-integration-vyos-python27/c0b5123/controller/ansible-debug.html
Anonymous
@tnt4brain @gecube @freeseacher как правильнее решить это, какие есть варианты, пока только регес замена приходит на ум, но уверен есть более правильный подход
Alexey
done
George
Aleksey
надо заметить что предложением для починки является регексп.
Denis
Всем привет! Подскажите пожалуйста. Вот у меня в templates есть конфиги, которые используют синтаксиси похожий как у jinja, к примеру {{device_name}}. Подскажите, как быть в этих случаях? У меня таска падает из-за этого.
Отделение Bereke Bank
и даже не называет тебя "крестный отец"
Отделение Bereke Bank
Отделение Bereke Bank
Denis
пасибо, буду знать
Gunnery
привет всем
нужен совет из области настройки сети на линуксе:
Мне надо создать бридж на удаленной машине (на единственном интерфейсе)
модулем shell передаются команды из набора iproute2
ip a add name {{ v_bridge }} type bridge
ip link set {{ v_bridge }} up
и далее.
в целом, таск отрабатывает, но
на одном из этапов интерфейс отваливается и поднимается сразу, но выполнение плейбука прерывается - линк рвется, и если этот плейбук выполнить снова, то все ок
network manager установить, чтобы использовать подходящий модуль, по некоторым причинам, нельзя.
как можно выкрутиться?
-
Gunnery
а где там добавление слейва в бридж?
ip link add name {{ vnet_bridge }} type bridge
ip link set {{ vnet_bridge }} up
ip link set {{ ifdev }} master {{ vnet_bridge }}
ip a add 192.168.10.2/24 dev {{ vnet_bridge }}
ip link set dev {{ vnet_bridge }} address {{ br_mac }}
ip link set dev {{ ifdev }} down
ip link set dev {{ ifdev }} up
-
Gunnery
хм... я не уверен сейчас, что ранее этого не пробовал
Gunnery
может для модуля shell какие параметры (саб модули, хз как правильно, типа delay или retries) передать? только в доках мало чего написано (или я еще плохо искал)
Николай
привет всем
нужен совет из области настройки сети на линуксе:
Мне надо создать бридж на удаленной машине (на единственном интерфейсе)
модулем shell передаются команды из набора iproute2
ip a add name {{ v_bridge }} type bridge
ip link set {{ v_bridge }} up
и далее.
в целом, таск отрабатывает, но
на одном из этапов интерфейс отваливается и поднимается сразу, но выполнение плейбука прерывается - линк рвется, и если этот плейбук выполнить снова, то все ок
network manager установить, чтобы использовать подходящий модуль, по некоторым причинам, нельзя.
как можно выкрутиться?
Вот вам роль для создания моста, в которой ничего не отваливается, можно взять за основу https://github.com/nbw74/roles/tree/trunk/net/bridge
Gunnery
Гайрат
Rasim
Коллеги, приветствую!
не могу разобраться с nested loop.
конструкция такая
- name: extend partitions
win_partition:
partition_size: -1
partition_number: "{{item.1.number}}"
disk_number: "{{item.0.number}}"
loop: "{{ansible_facts.disks|product(???)|list}}"
помогите, пожалуйста, что писать в фильтр product
George
У тебя в disks какой джисон прилетает ?
Rasim
сейчас приведу пример
Rasim
массив дисков, внутри каждого диска - массив из partitions
Rasim
ну и хотел reusable роль для расширения всех partitions
Radik
используй сервисы для вставки кода
не мучай глаза людей
Radik
https://lifehacker.ru/formatirovanie-teksta-v-telegram/
или так
Rasim
https://pastebin.com/wU9u11p5
Radik
у тебя json кривой
Rasim
я убрал лишнее, это не копипаст. вопрос в том, что есть массив в массиве, и как это корерктно обработать через nested loop
Evgenii
Хай всем. Подскажите пример использования openstack inventory plugin example
Evgenii
може есть кто selectel юзает
Rasim
Jungo
Гайрат
Evgenii
фак
Rasim
Evgenii
а вот завести динамик инвентори, чёт не могу
Evgenii
Evgenii
я то про https://docs.ansible.com/ansible/latest/plugins/inventory.html
Jungo
Evgenii
Evgenii
Evgenii
вот такая структура
Evgenii
$ cat inventory/openstack.yml
plugin: openstack
expand_hostvars: yes
fail_on_errors: yes
clouds_yaml_path: ./clouds.yaml
$ cat inventory/clouds.yaml
clouds:
selectel:
auth:
auth_url: "https://api.selvpc.ru/identity/v3"
project_name: "111111" #
username: "admin"
password: ""
identity_api_version: 3
volume_api_version: 3
Evgenii
запускаю:
$ ansible-inventory -i inventory/openstack.yml --graph
[WARNING]: * Failed to parse ansible/inventory/openstack.yml with openstack plugin: coercing to Unicode: need string or buffer, list found
[WARNING]: Unable to parse ansible/inventory/openstack.yml as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
@all:
|--@ungrouped:
Jungo
а через curl пробовал посмотреть?
Jungo
что-то не так с данными они не могут подружиться видимо
Evgenii
Jungo
а как через курл ?
не знаю) я бы смотрел в модуле ансибла что он запрашивает
а не может быть дело в версии питона например?
Evgenii
пробовал ещё через инвентори скрипт
https://docs.ansible.com/ansible/latest/user_guide/intro_dynamic_inventory.html#inventory-script-example-openstack
но он падает
keystoneauth1.exceptions.http.BadRequest: Expecting to find domain in project. The server could not comply with the request since it is either malformed or otherwise incorrect. The client is assumed to be in error. (HTTP 400) (Request-ID: req-bedd529e-a7e5-4831-9461-9334c5b14d98)
Evgenii
может я какие то креды не верно указал
Jungo
400 обычно говорит о неверной запросе , а на креды было бы 403
Tadeusz
на креды и 401 идет (auth)
Evgenii
400 обычно говорит о неверной запросе , а на креды было бы 403
так, с скриптом завёл
https://docs.ansible.com/ansible/latest/user_guide/intro_dynamic_inventory.html#inventory-script-example-openstack
в скрипте путь к clouds.yaml захардкожен, по этому в файл
/etc/ansible/openstack.yaml
пишешь
clouds:
selectel:
auth:
auth_url: "https://api.selvpc.ru/identity/v3"
project_domain_name: ""
project_id: ""
user_domain_name: ""
username: ""
password: ""
identity_api_version: 3
volume_api_version: 3
Evgenii
креды все бедёшь из rc.sh, который в панельке можно скачать
Evgenii
но чёт хочется с нативным плагином... ) Ковыряю дальше )
Александр
при том к примеру такая консрукция у меня нормально работает
- name: create db users
mysql_user:
name: "{{ item[1].name }}"
password: "{{ item[1].password }}"
host: "{{ item[0] }}"
priv: "{{ item[1].priv }}"
login_unix_socket: /var/run/mysqld/mysqld.sock
with_nested:
- "{{ cluster + ['127.0.0.1', '172.17.%'] }}"
- "{{ mysql_users }}"
loop_control:
label: "'{{ item[1].name }}'@'{{ item[0] }}'
marantz
Коллеги, приветствую. Как лучше реализовать поднятие нескольких gitlab-runners? Какую конструкцию лучше использовать?
Александр
manefesto
Можно ли как-то обратится к интерфейку по номеру ?
Например у меня на одних хостах eth0, eth1, на других enp0s3, enp0s8
Pavel
коллеги вопрос по lookup, loop и словарям
есть json я хочу к нему обратиться как словарю через конструкцию -
loop: "{{ lookup('dict', users) }}"
т.к. это словарь не в переменных а в файле, то вместо users должен быть еще один lookup
или я как то не правильно все понимаю?