我想配置我的Ansible手册,将我/etc/hosts
文件中的某些行复制到临时文件中。这应该很容易做到:
---
hosts: 127.0.0.1
gather_facts: False
tasks:
- command: grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup
with_items:
- web
- database
我认为这会有效,但我收到了错误:
TypeError:字符串指示必须是整数,而不是str
我知道Ansible对于不带引号的大括号很挑剔所以我在整个命令行中加了双引号,但我仍然得到错误。
- command: "grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup"
答案 0 :(得分:4)
我不知道你为什么会得到你声称得到的错误(如果你的系统向Ansible返回一个奇怪的错误信息,那么这可能与操作系统有关。)
有一点可以肯定,您无法使用command
模块进行文件重定向。相反,您需要使用shell
模块,因此请将操作替换为:
- shell: grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup
除此之外,您的任务中with_items
没有问题。但是这个剧本没有-
。
以下代码有效:
---
- hosts: 127.0.0.1
gather_facts: False
tasks:
- shell: grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup
with_items:
- web
- database