代码之家  ›  专栏  ›  技术社区  ›  Aakash

当我只有只读访问权限时,如何使用Ansible?

  •  1
  • Aakash  · 技术社区  · 7 年前

    “msg”:“身份验证或权限失败。在某些情况下,您可能已经能够进行身份验证,但对远程目录没有权限。请考虑将ansible.cfg中的远程临时路径更改为根目录为“/tmp”的路径。

    当我在Ansible详细模式下运行该命令时,就在该错误之前,我得到了以下输出:

    < echo Cmd exec error./.ansible/tmp/ansible-tmp-1500330345.12-194265391907358 “&echo ansible-tmp-1500330345.12-194265391907358=”

    1) 是否需要将Ansible配置为不在设备上创建任何临时文件?

    2) 是否有其他可能导致我错过的错误的因素?

    2 回复  |  直到 7 年前
        1
  •  2
  •   techraf    7 年前

    这个问题在更广泛的背景下没有意义。Ansible是一种服务器配置自动化工具。没有写访问权限,您无法在目标机器上配置任何内容,因此没有Ansible的用例。

    在更狭窄的上下文中,尽管您没有发布任何代码,但您似乎在尝试ping目标服务器。Ansible公司 ping module 不是一个 ICMP ping

    然而,你似乎想要运行一个定期 command module 并检查状态:

    - hosts: localhost
      vars:
        target_host: 192.168.1.1
      tasks:
        - command: ping {{ target_host }}
    

    你可能想玩 failed_when ignore_errors changed_when Error handling in playbook .

    请注意,我建议在 localhost ,因为在您的配置中,配置您在清单中对其具有有限访问权限的目标机器是没有意义的。


    此外:

    对通过运行命令 raw module

    由于您似乎具有SSH访问权限,因此可以使用它运行命令并检查其结果:

    - hosts: 192.168.1.1
      tasks:
        - raw: echo Hello World
          register: echo
        - debug:
            var: echo.stdout
    
        2
  •  0
  •   sayyyyes    2 年前

    raw 模块,用于在具有raed/write选项的远程节点上重新安装磁盘,这对我很有帮助。

    剧本示例:

    ---
    - hosts: bs
      gather_facts: no
      pre_tasks:
        - name: read/write
          raw: ansible bs -m raw -a "mount -o remount,rw /" -b --vault-password-file=vault.txt
          delegate_to: localhost
      tasks:
        - name: dns
          raw: systemctl restart dnsmasq
        - name: read only
          raw: mount -o remount,ro /