2017-02-16 33 views
1

正如我们所知道的,通过ssh连接远程机器,然后ansible将运行安装任务,在这个任务中,有一个步骤将创建一个temp目录在$ HOME/.ansible/tmp文件夹(默认设置在$ HOME/.ansible/tmp下,我们可以在ansible.cfg文件中对其进行修改)。如何修改默认的不可达测试方法

如果创建临时文件夹失败,ansible会报告可信的身份验证或权限失败,远程主机无法访问。

但是,我有一个问题,我的远程机器是通过局域网串行控制台访问的,它不能创建临时文件夹,我可以修改默认的可达测试方法吗?

还是有人请给我建议如何通过LAN管理串口控制台中的远程主机。

谢谢。

+0

如果ansible甚至无法创建的临时目录,那么它将很难为它做任何有意义的任务:例如,如果你使用原始的TCP连接,让您的串行控制台连接,你可以做这样的事情机器。你能告诉我们你的库存是如何设置为通过LAN使用串行控制台的吗? – SztupY

+0

@SztupY,谢谢你的提醒。是的,我知道这对于绝对权力会有很多限制,我只是想运行一些基本的命令,比如设置主机名,设置业务IP地址,在此之后,我可以通过正常的方法访问。 – zhaorong

+0

@SztupY,在我看来,我希望使用expect模块来测试串口控制台是否被登录,如果已经登录,直接返回,如果没有,则在已配置的控制台用户名和密码中登录。 – zhaorong

回答

0

如果您需要准备由Ansible来管理你的遥控盒,有两种方式:

1)raw模块,如果有问题的盒子是通过ssh访问,能够执行任意命令。例如,此方法用于在Ubuntu 16映像上安装Python2以允许Ansible执行setup和其他模块。

2)首先使用控制机器的命令/脚本。在

- hosts: box 
    gather_facts: no 
    tasks: 
    - expect: 
     command: nc box 1234 
     responses: 
      login: user 
      password: password 
      user: /path/to/bootstrap_script.sh && exit 
     delegate_to: localhost 
    - setup: 
    - other_ansible_module: 
+0

非常感谢。让我稍后尝试,我几乎放弃。 – zhaorong