
.::업데이트 해결됨::.
@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
루트 액세스 권한이 있는 원격 노드의 관리 상자( )에 있는 스크립트를 실행하는 방법에 대해 설명합니다 .
파일(아래) 을 만들었지 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
.:: 업데이트 ::.
여러 "하수인"이 마스터(DMZ)와 별도의 네트워크에 상주하므로 salt-ssh를 사용해야 합니다. 내가 이해한 대로, 전통적인 솔트 설정에서는 미니언이 솔트 마스터에 연결되어야 합니다.
게시 이후 다음에서 salt-ssh를 설치했습니다.솔트스택 레포위의 오류를 제거한 것 같습니다 msgpack
. 또한 위 의 vagrant 특정 링크에서 일부 예제 master
를 수정하여 . 아래에 상태 파일(위)을 배치했습니다 . 결과는 아래와 같습니다.states
/etc/salt
/etc/salt/states/test.sls
@wirap이 제안한 대로 add script
와 사이에 밑줄을 추가했습니다 . run script
이것은 아래와 같이 나를 더욱 발전시켰습니다. 클라이언트나 서버의 스크립트 경로와 관련된 오류가 있는 것 같습니다. 아직 확실하지 않습니다. .sls 확장자 없이 파일 state.apply
이름만 사용 하여 호출해야 하는 것 같습니다 ..sls
/etc/salt/마스터:
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
답변1
- 정말로 salt-ssh("salt-minion을 설치하지 않고 ssh를 통해 salt 명령 및 상태를 실행하십시오.")를 사용하시겠습니까? 미니언에 salt-minion을 설치할 수 없는 경우에만 이 방법으로 수행하면 됩니다.
- 상태를 어디에 두었나요? 일반적으로 /etc/salt/master 구성에서 다음을 작성합니다.상태 파일이 있어야 하는 경로
- 예제에 제공된 상태를 그대로 사용하지 마십시오. 나는 당신이 공간을 가질 수 없다고 확신합니다아이디 선언(
add script:
). - 귀하의 오류 메시지는 나에게 알려지지 않았습니다. 이 스레드여기다음과 같은 제안을 합니다."msgpack 오류는 전혀 관련이 없기 때문에 매우 오해의 소지가 있습니다. server.conf 파일 중 하나가 한 미니언에 잘못된 utf-8을 가지고 있고 다른 미니언에는 파일이 존재하지 않는 것 같습니다."나는 귀하의 주 ID에 공백 (' ')이 있다고 강력히 의심합니다. 내 경험에 따르면 상태 파일이나 기둥에 잘못된 문자가 있는 경우 SaltStack은 오해의 소지가 있는 오류 메시지를 내보낼 수 있습니다.
추가 힌트:
- 바라보다여기상태 트리를 설정하는 방법에 대한 자세한 내용은
- 어쩌면 작동 방식을 배우기 위해 이미 작동하고 있는 사전 설치된 SaltStack(docker, Vagrant ?)을 사용할 수도 있습니다. UtahDave는 SaltStack에서 꽤 활발하게 활동하고 있으므로 저는 그의데모(면책조항: 직접 테스트하지 않았습니다!)
업데이트: file.managed를 사용하는 경우:
- 매개변수
source
는file.managed
대상이 아닌 마스터의 경로(상태 경로에 상대적)입니다. - 대상에 경로를 지정해야 하기 때문에 오류가 발생합니다."지정된 파일 pam-setup-access는 절대 경로가 아닙니다."
예:
/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도 마찬가지입니다.
읽기일반적인솔트스택 튜토리얼. 상태를 디자인할 때 salt-ssh를 사용하든지 salt를 사용하든 상관없습니다. 이것이 당신을 혼란스럽게 하지 않도록 하세요.