. :: РЕШЕНИЕ ОБНОВЛЕНИЯ ::.
С обязательной формой помощи @wirap теперь она работает. Я связал каталог сценария с /etc/salt/states/scripts
и используя это test.sls
конфигурация теперь работает.
/root/bin/updater/scripts/pam-setup-access:
file.managed:
- name: /tmp/pam-setup-access
- source: salt://scripts/pam-setup-access
- mode: 0700
run_script:
cmd.run:
- name: /tmp/pam-setup-access
file.absent:
- name: /tmp/pam-setup-access
Я новичок в salt-ssh и ищу информацию Вот относительно того, как запустить сценарий, который находится в моем административном ящике (/root/bin/updater/scripts/pam-setup-access
) на удаленном узле, к которому у меня тоже есть root-доступ.
Я создал state
файл (ниже), но не знаю, где его разместить. Соль-SSH документы только упомянуть /etc/salt/master
поэтому я посмотрел это, но эти документы кажутся специфичными для установки бродяг и пакетов.
add script:
file.managed:
- name: pam-setup-access
- source: /root/bin/updater/scripts/pam-setup-access
run script:
cmd.run:
- name: pam-setup-access
Наконец, я попытался просто запустить файл состояния из текущего каталога, как показано в первой ссылке, но меня это только раздражало. Что мне не хватает?
# salt-ssh '*' state.apply test.sls
nod0:
[CRITICAL] Unable to import msgpack or msgpack_pure python modules
Function state.apply is not available
nod1:
[CRITICAL] Unable to import msgpack or msgpack_pure python modules
Function state.apply is not available
.:: ОБНОВИТЬ ::.
Мне нужно использовать salt-ssh, поскольку несколько «миньонов» находятся в сети отдельно от мастера (DMZ). Насколько я понимаю, традиционная настройка соли требует, чтобы миньоны подключились к мастеру соли.
С момента публикации я установил salt-ssh из репо солончак который, кажется, избавился от msgpack
ошибка выше. Я также изменил некоторые примеры из указанной выше ссылки на бродягу, добавив master
файл и states
каталог под /etc/salt
. Я поместил файл состояния (см. Выше) в /etc/salt/states/test.sls
. Результаты ниже.
Я добавил подчеркивания между add script
и run script
, как было предложено @wirap. Это продвинуло меня дальше, как показано ниже. Похоже, есть ошибка, связанная с путем сценария на клиенте или сервере. Пока не уверен. Кажется мне нужно позвонить state.apply
с именем .sls
только файл (без расширения .sls).
/ и т.д. / соль / мастер:
file_roots:
base:
- /etc/salt/states
Теперь, когда я запускаю salt-ssh, я получаю:
# salt-ssh '*' state.apply test
nod0:
----------
ID: add_script
Function: file.managed
Name: pam-setup-access
Result: False
Comment: Specified file pam-setup-access is not an absolute path
Started: 11:53:50.237379
Duration: 0.602 ms
Changes:
----------
ID: run_script
Function: cmd.run
Name: pam-setup-access
Result: False
Comment: Command "pam-setup-access" run
Started: 11:53:50.238629
Duration: 8.297 ms
Changes:
----------
pid:
1037
retcode:
127
stderr:
/bin/bash: pam-setup-access: command not found
stdout:
Summary for nod0
------------
Succeeded: 0 (changed=1)
Failed: 2
------------
Total states run: 2
Total run time: 8.899 ms
nod1:
----------
ID: add_script
Function: file.managed
Name: pam-setup-access
Result: False
Comment: Specified file pam-setup-access is not an absolute path
Started: 11:53:50.476743
Duration: 0.555 ms
Changes:
----------
ID: run_script
Function: cmd.run
Name: pam-setup-access
Result: False
Comment: Command "pam-setup-access" run
Started: 11:53:50.477906
Duration: 7.5 ms
Changes:
----------
pid:
30772
retcode:
127
stderr:
/bin/bash: pam-setup-access: command not found
stdout:
Summary for nod1
------------
Succeeded: 0 (changed=1)
Failed: 2
------------
Total states run: 2
Total run time: 8.055 ms
add script:
).Дополнительные подсказки:
Обновить: Когда вы используете file.managed:
source
из file.managed
- это путь к вашему мастеру (относительно вашего пути состояния), а не цель. Пример:
/root/bin/updater/scripts/pam-setup-access
file.managed:
- source: salt://files/pam-setup-access
такой же как:
some-arbitrary-id
file.managed:
- name: /root/bin/updater/scripts/pam-setup-access
- source: salt://files/pam-setup-access
https://docs.saltstack.com/en/develop/ref/states/all/salt.states.file.html#module-salt.states.file
То же самое и с cmd.run.
Прочтите Общее Учебник SaltStack. При разработке состояний не имеет значения, используете ли вы salt-ssh или salt. Пусть это вас не смущает.