169 похожих чатов

Всем привет! Хочу поставить node_exporter для Прометея и Графаны в

свои VPS'ки.

Нашел пару ролей под эту тему: geerlingguy.node_exporter и cloudalchemy.node_exporter.

Мой ямлик, как пример:

---
- name: Install node_exporter
hosts: local
vars_files:
- "{{ inventory_dir }}/vars/vars.yaml"
become: true

roles:
- role: geerlingguy.node_exporter


Как видите, я храню переменные по пути {{ inventory_dir }}/vars/vars.yaml. Файл зашифрован и при запуске любого плейбука расшифровывается с помощью пароля в .vault_password.txt, так что переменные точно доступны любой таске в любом плейбуке.

Но есть проблема: в обоих ролях, отмеченных выше, выходит ошибка на одном и том же (у обоих ролей) этапе чтения чего-то с Гитхаба:


TASK [geerlingguy.node_exporter : Configure latest version] **************************************
task path: /home/<SOME USER>/.ansible/roles/geerlingguy.node_exporter/tasks/main.yml:8
Read vars_file '{{ inventory_dir }}/vars/vars.yaml'
included: /home/<SOME USER>/.ansible/roles/geerlingguy.node_exporter/tasks/config-version.yaml for <SOME IP ADDRESS>
skipping vars_file '{{ inventory_dir }}/vars/vars.yaml' due to an undefined variable
Read vars_file '{{ inventory_dir }}/vars/vars.yaml'
skipping vars_file '{{ inventory_dir }}/vars/vars.yaml' due to an undefined variable

TASK [geerlingguy.node_exporter : Determine latest GitHub release (local)] ***********************
task path: /home/<SOME USER>/.ansible/roles/geerlingguy.node_exporter/tasks/config-version.yaml:2
fatal: [<SOME IP ADDRESS> -> localhost]: FAILED! => {
"msg": "'root_password' is undefined"
}


или


TASK [cloudalchemy.node_exporter : Get checksum list from github] **************************************
task path: /home/kenyawest/.ansible/roles/cloudalchemy.node_exporter/tasks/preflight.yml:99
fatal: [192.168.31.203 -> localhost]: FAILED! => {
"msg": "'root_password' is undefined"
}


Зашел, блин, в этот preflight.yml, на который ссылается ошибка:


- block:
- name: Get checksum list from github
set_fact:
_checksums: "{{ lookup('url', 'https://github.com/prometheus/node_exporter/releases/download/v' + node_exporter_version + '/sha256sums.txt', wantlist=True) | list }}"
run_once: true

- name: "Get checksum for {{ go_arch }} architecture"
set_fact:
node_exporter_checksum: "{{ item.split(' ')[0] }}"
with_items: "{{ _checksums }}"
when:
- "('linux-' + go_arch + '.tar.gz') in item"
delegate_to: localhost
when: node_exporter_binary_local_dir | length == 0


и что, где там использование переменной root_password??? Она вообще-то у меня определена! И зачем она понадобилась этой роли тогда?

В чём вообще проблема?

Если что, issue создал.

5 ответов

51 просмотр

Лучше в плэйбуке использовать переменную, значение которой определять из vault encrypted file. Ну и убедитесь что пароль от vault вы передаёте каким-то образом в плейбук.

Kenya-West-️ Автор вопроса
Dennis C
Лучше в плэйбуке использовать переменную, значение...

Вроде бы у меня всё как вы сказали. Переменные в vars.yaml (это видно из первого отрывка кода), зашифрованные. Расшифровываются из .vault_password.txt при запуске любого плейбука. Продебажил - переменная root_password, которая у меня в vars.yaml объявлена, которая действительно есть во время выполнения плейбука и которая почему-то так нужна ролям geerlingguy.node_exporter и cloudalchemy.node_exporter, действительно существует, но почему внутрь ролей не прокидывается. -vvv не помогает. Собственно, логи из моего сообщения выше сделаны из тройного вербоза.

Kenya-West ️
Вроде бы у меня всё как вы сказали. Переменные в v...

А зачем вообще переменная root_password? в роли она не используется и это не "волшебная" переменная. Сделайте минимальный тестовый пример развертывания на тестовый хост. Возможно на упрощённом примере старнет понятнее где проблема. Да и показать ваш vars.yml будет не жалко тогда. Да там и не должно быть ничего роль минимум парамтетров обрабатывает.

Kenya-West-️ Автор вопроса
Mikhail
А зачем вообще переменная root_password? в роли он...

Она используется в hosts.ini в поле become_pass

Kenya-West-️ Автор вопроса

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта