使用localhost

时间:2017-09-01 12:31:53

标签: ansible intershop

我使用VM和 Intershop 7.8 来运行 ansible-playbook (使用this tutorial)。安装 Ansible 后,复制存储库的内容并对其进行配置(如“快速安装指南”中所示),我尝试运行ansible-playbook “setupci.yml”使用命令ansible-playbook setupci.yml。第一次发生错误provided hosts list is empty, only localhost available时对此进行测试。通过创建“hosts.yml”文件来解决这个问题,我在其中声明了主机名并使用其他命令来运行该剧本,发生了两个新错误。

我在ci-set-ansible-playbook目录中尝试了以下命令:

$ --limit @[…]/ci-setup-ansible-playbook/setupci

我也尝试过:

$ ansible-playbook setupci.yml –connection=local

但两者都导致错误:

  

致命:[127.0.0.1]:失败! => {“已更改”:false,“连接”:“关闭”,“内容”:“\ n \ n 404 - 未找到

     

致命:[127.0.0.1]:失败! => {“failed”:true,“msg”:“字段'args'的值无效,似乎包含未定义的变量。

1 个答案:

答案 0 :(得分:0)

我想ansible无法为您的主机加载主机变量,因为您在hosts.yml中定义的主机名与/ etc / ansible / host_vars /目录中的文件名不匹配。也许你没有重命名sample.yml文件,它需要匹配主机名。

请参阅 http://docs.ansible.com/ansible/latest/intro_inventory.html

[更新]

我在docker centos 7图像上尝试了这个ansible playbook。我也有一些问题,让它正常运行。但是,我确实得到了一个连接。确保将git repo的内容复制到/ etc / ansible

/etc/ansible
-rw-r--r--. 1 root root  9191 Sep  7 12:22 LICENSE.md
-rw-r--r--. 1 root root  5672 Sep  7 12:22 README.asciidoc
-rw-r--r--. 1 root root   555 Sep  7 12:22 Vagrantfile
-rw-r--r--. 1 root root 18066 Jun  1 21:49 ansible.cfg
drwxr-xr-x. 2 root root    42 Sep  7 12:26 group_vars
-rw-r--r--. 1 root root  1050 Sep  7 12:31 hosts
-rw-r--r--. 1 root root    97 Sep  7 12:22 ishsystem.yml
-rw-r--r--. 1 root root  9191 Sep  7 12:22 license-2.0.txt
drwxr-xr-x. 9 root root  4096 Sep  7 12:22 roles
-rw-r--r--. 1 root root   138 Sep  7 12:39 setupci.ym

编辑主机文件

##content of hosts
ciserver ansible_connection=local

检查ansible是否可以连接到主机

ansible all -m ping
ciserver | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

将group_var中的sample.yml复制到ciserver.yml(与hosts中的名称相同)文件并进行编辑。

/etc/ansible/group_vars 
-rw-r--r--. 1 root root 1882 Sep  7 12:26 ciserver.yml
-rw-r--r--. 1 root root 1873 Sep  7 12:22 sample.yml

运行剧本

ansible-playbook setupci.yml

我的脚本在尝试启动/停止防火墙时停止。该服务并不存在于centos上,因此它失败了。看看你能不能做到这一点。

fatal: [ciserver]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find the requested service firewalld.service: host"}