sshfs没有使用Ansible Playbook挂载目录

时间:2019-09-09 21:47:16

标签: ansible

我写了sshfs ansible剧本来从服务器挂载远程目录。   当我在shell上手动执行同一命令时,它正在工作(可以看到远程目录内容)。但是,当我尝试使用ansible剧本时,远程目录未按预期装入。

user_allow_other  -> Added this line /etc/fuse.conf

Added the below lines: /etc/ssh/ssh_config
SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
    StrictHostKeyChecking no

即使没有这些添加,也可以手动运行。 但是ansible的剧本没有安装远程目录,而是显示为剧本成功。

**fuse.yml**

---
- hosts: server
  become: yes
  tasks:

    - name: Mount Media Directory
      shell: echo root123 | sshfs -o password_stdin,reconnect,nonempty,allow_other,idmap=user stack@10.1.1.1:/home/stack /mnt/server1


root@stack-VirtualBox:~/playbook# ansible-playbook fusessh.yml -vvv

<10.1.1.1> ESTABLISH SSH CONNECTION FOR USER: stack
<10.1.1.1> SSH: EXEC sshpass -d10 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o 'IdentityFile="/home/stack/.ssh/id_rsa"' -o User=stack -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/88bbb1646b 10.1.1.1 '/bin/sh -c '"'"'rm -f -r /tmp/stack/ansible/ansible-tmp-1568065019.557693-124891815649027/ > /dev/null 2>&1 && sleep 0'"'"''
<10.1.1.1> (0, b'', b'')
changed: [10.1.1.1] => {
    "changed": true,
    "cmd": "echo root123 | sshfs -o password_stdin,reconnect,nonempty,allow_other,idmap=user stack@10.1.1.1:/home/stack /mnt/server1",
    "delta": "0:00:00.548757",
    "end": "2019-09-09 15:37:00.579023",
    "invocation": {
        "module_args": {
            "_raw_params": "echo root123 | sshfs -o password_stdin,reconnect,nonempty,allow_other,idmap=user stack@10.1.1.1:/home/stack /mnt/server1",
            "_uses_shell": true,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "warn": true
        }
    },
    "rc": 0,
    "start": "2019-09-09 15:37:00.030266",
    "stderr": "",
    "stderr_lines": [],
    "stdout": "",
    "stdout_lines": []
}
META: ran handlers
META: ran handlers

PLAY RECAP ************************************************************************************************
10.1.1.1                   : ok=2    changed=1    unreachable=0    failed=0

1 个答案:

答案 0 :(得分:1)

sshfs操作在远程而不是本地执行。之所以手动运行是因为sshs登录操作是在本地外壳程序而不是远程服务器上执行的。我通过添加 local_action 修改了您的剧本。我已经测试过,并且工作正常。

---
- hosts: server
  become: yes
  tasks:

    - name: Mount Media Directory
      local_action: shell echo root123 | sshfs -o password_stdin,reconnect,nonempty,allow_other,idmap=user stack@10.1.1.1:/home/stack /mnt/server1