【发布时间】:2015-10-08 16:46:15
【问题描述】:
Error Msg我正在尝试使用角色执行 ansible 剧本。我有一些变量,我在 vars 部分的 main.yaml 中定义。我正在从另一台远程机器复制这些变量(main.yaml)。 我的问题是,我的剧本第一次抛出错误,即使它复制了我的 vars 部分中的 main.yaml 文件。当我第二次运行时,它很好地执行了剧本。我理解,虽然文件是第一次被复制,但它并没有读取它,因为它在剧本运行之前不存在。有没有办法让我第一次成功运行它而不会出错。
图像角色将提供有关角色和子文件的清晰概念。 Roles
site.yaml
---
- name: Testing the Mini project
hosts: all
roles:
- test
tasks/main.yaml
---
- name: Converting Mysql to CSV file
command: mysqldump -u root -padmin -T/tmp charan test --fields-terminated-by=,
when: inventory_hostname == "ravi"
- name: Converting CSV file to yaml format
shell: python /tmp/test.py > /tmp/main.yaml
when: inventory_hostname == "ravi"
- name:Copying yaml file from remote node to vars
shell: sshpass -p admin scp -r root@192.168.56.101:/tmp/main.yaml /etc/ansible/Test/roles/vars/main.yaml
when: inventory_hostname == "charan"
- name:Install Application as per the table
apt: name={{ item.Application }} state=present
when: inventory_hostname == {{ item.Username }}
with_items: user_app
/vars/main.yaml这将从远程机器复制。
---
user_app:
- {Username: '"ravi"' , Application: curl}
- {Username: '"charan"' , Application: git}
【问题讨论】:
-
能否请您向我们展示您的剧本(尤其是引发错误的任务)
-
我附上了错误信息的截图,请检查。
-
我们确实需要查看您的剧本的相关部分,以准确了解您在做什么。仅堆栈跟踪是不够的。
标签: yaml jinja2 ansible ansible-playbook