我在用分子来测试我的角色。在重新启动之前,我的服务器正常工作。但是,之后,当我运行molecule create
它跳过了创建过程:跳过,实例已经创建。然而,没有任何东西在运行:
(myenv)[root]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
当运行molecule converge时。我得到了这个错误:
TASK [Gathering F
我遇到的问题是,我的默认值通常存储在defaults/main.yml中,以便运行ansible脚本,但我没有找到一种方法来覆盖它们。我正在使用分子进行测试,我想要一种将变量传递到我的molecule/default/molecule.yml或molecule/default/playbook.yml中的方法,这样我就可以动态地设置phpVersion。
下面是用默认值静态地设置变量的位置
# defaults/main.yml
phpVersion: 7.0
下面是使用变量的位置
#tasks/main.yml
---
- name: Check if OS is U
我想要为攻略执行收敛测试。收敛测试检查同一剧本的第二次运行是否没有任何更改。
有没有办法说Ansible“如果有一个任务处于‘已更改’状态,则使退出代码非零?”。我可以解析stdout,但它很难看。
示例:
set -e
ansible-playbook -i inventory.yaml site.yaml # normal run
ansible-playbook --help-me-here -i inventory.yaml site.yaml # should return non-zero if anything changed.
我正在为我现有的使用分子的不可接受角色添加测试。我现有的Ansible剧本使用这样的变量级别:
file: playbook_dir/group_vars/all
contents: global variables, applicable to all everything (hosts, inventories etc.)
file: playbook_dir/inventories/<inventory>/group_vars/all
contents: variables applicable to all hosts in this inventory.
file:
TASK [Test: Install Test Authentication] ***********************************
fatal: [ubuntu2004]: FAILED! => {"reason": "Could not find or access '/home/test/test.playbook/molecule/default/test.yaml' on the Ansible Controller."}
相对于.roles folder...why,分子可以很好地处理文件和模板当通过incl
我有一个简单的脚本:
#!/bin/bash
for server in $(~/.ansible/ansible_hosts)
do
ssh $server "hostname; readlink /opt/mydir/mylink;"
done
它工作得很好--程序返回正确的主机名和链接--但我在一些服务器(但不是所有服务器)上得到以下错误:
shell-init:检索当前目录时出错: getcwd:无法访问父目录:没有这样的文件或目录
所有的目录都存在。最常见的建议之一是添加cd、cd -或cd /。当添加该步骤时,所发生的一切都是附加的:
chdir:检索当前目