Ansible 脚本模块 - 控制套接字权限被拒绝
Ansible script module - Control socket permission denied
我是 Ansible 的新手,正在尝试 运行 使用脚本模块在远程节点上创建本地脚本。我的任务定义如下:
- name: Initial setup
script: ../../../initial_setup.sh
become: yes
当我 运行 剧本时,我收到以下错误,但我不清楚实际问题是什么。这是否表明连接到节点时出现问题或传输脚本时出现问题?
fatal: [default]: FAILED! => {
"changed": true,
"failed": true,
"invocation": {
"module_args": {
"_raw_params": "../../../initial_setup.sh"
},
"module_name": "script"
},
"rc": 127,
"stderr": "Control socket connect(/tmp): Permission denied\r\nControlSocket /tmp already exists, disabling multiplexing\r\nConnection to 127.0.0.1 closed.\r\n",
"stdout": "/bin/sh: 1: /home/ubuntu/.ansible/tmp/ansible-tmp-1482161914.64-107588947758469/initial_setup.sh: not found\r\n",
"stdout_lines": [
"/bin/sh: 1: /home/ubuntu/.ansible/tmp/ansible-tmp-1482161914.64-107588947758469/initial_setup.sh: not found"
]
}
tl;博士
确保 -o ControlMaster=auto
在 Ansible ssh_args
中定义 in ansible.cfg
:
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
以下错误与 SSH 连接多路复用有关:
Control socket connect(/tmp): Permission denied
ControlSocket /tmp already exists, disabling multiplexing
Connection to 127.0.0.1 closed
它试图直接在 /tmp
上创建一个套接字,而不是在 /tmp
内...为 SSH 在某处定义的一些其他参数可以在这里发挥作用。
将 ControlMaster
的值设置为 auto
会导致 SSH 创建一个新的主连接,如果现有主连接不存在(或者有问题,就像这里?)。
我是 Ansible 的新手,正在尝试 运行 使用脚本模块在远程节点上创建本地脚本。我的任务定义如下:
- name: Initial setup
script: ../../../initial_setup.sh
become: yes
当我 运行 剧本时,我收到以下错误,但我不清楚实际问题是什么。这是否表明连接到节点时出现问题或传输脚本时出现问题?
fatal: [default]: FAILED! => {
"changed": true,
"failed": true,
"invocation": {
"module_args": {
"_raw_params": "../../../initial_setup.sh"
},
"module_name": "script"
},
"rc": 127,
"stderr": "Control socket connect(/tmp): Permission denied\r\nControlSocket /tmp already exists, disabling multiplexing\r\nConnection to 127.0.0.1 closed.\r\n",
"stdout": "/bin/sh: 1: /home/ubuntu/.ansible/tmp/ansible-tmp-1482161914.64-107588947758469/initial_setup.sh: not found\r\n",
"stdout_lines": [
"/bin/sh: 1: /home/ubuntu/.ansible/tmp/ansible-tmp-1482161914.64-107588947758469/initial_setup.sh: not found"
]
}
tl;博士
确保 -o ControlMaster=auto
在 Ansible ssh_args
中定义 in ansible.cfg
:
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
以下错误与 SSH 连接多路复用有关:
Control socket connect(/tmp): Permission denied
ControlSocket /tmp already exists, disabling multiplexing
Connection to 127.0.0.1 closed
它试图直接在 /tmp
上创建一个套接字,而不是在 /tmp
内...为 SSH 在某处定义的一些其他参数可以在这里发挥作用。
将 ControlMaster
的值设置为 auto
会导致 SSH 创建一个新的主连接,如果现有主连接不存在(或者有问题,就像这里?)。