首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为一次性Ansible play编写ansible清单文件

为一次性Ansible play编写ansible清单文件
EN

Stack Overflow用户
提问于 2016-07-21 07:18:34
回答 1查看 197关注 0票数 0

我正在写一个一次性的剧本来更新我的elasticsearch框上的一些grok规则(我可以手动完成,但我预计会做很多这样的任务,所以我想让它工作起来)。

我只想在8台主机上运行一个lineinfile:

代码语言:javascript
复制
#!/usr/bin/ansible-playbook -i /home/myself/workingdir/hosts
- name: update those lines
  user: myself
  hosts: elasticsearch_hosts
  sudo: true
  tasks:
    - lineinfile:
        dest: /opt/logstash/patterns/stuff
        regexp: STUFF_AND_THINGS
        line: STUFF_AND_THINGS [%{GREEDYDATA:big_h0nking_regex}\] ?.%{37_RANDOM_CHARACTERS:bologna} %{URIPATHPARAM:} %{*#&%$%@&@^$@:expletive}/%{NUMBER:some_more_crap}  %{NUMBER:minutes_wasted} %{[idk,lol]1776}
    - service: name=elasticsearch state=restarted

这是我的hosts文件

代码语言:javascript
复制
192.168.1.98
192.168.2.76
192.168.3.54
192.168.4.32
192.168.5.10
192.168.6.123

[elasticsearch-hosts]
es-1 ansible_host=192.168.1.98
es-2 ansible_host=192.168.2.76
es-3 ansible_host=192.168.3.54
es-4 ansible_host=192.168.4.32
es-5 ansible_host=192.168.5.10
es-6 ansible_host=192.168.6.123

当运行这段代码时,我得到:

代码语言:javascript
复制
PLAY [update them lines] ***************************************************
skipping: no hosts matched

我知道我在清单文件中做了一些不正确的事情,但我不确定是什么,因为我只使用过,例如,rackspace rax模块在运行play时构建清单列表。

注意es-1、6是我在dns上定义的短名称可能也很有用,所以我可以这样做,例如ssh es-1,这样就可以了。它似乎不喜欢文件以前的迭代中的这些名称。

EN

回答 1

Stack Overflow用户

发布于 2016-07-23 02:17:45

问题在于我如何调用ansible-playbook。

代码语言:javascript
复制
#!/usr/bin/ansible-playbook -i /home/myself/workingdir/hosts

这显然不是通过shebang传递参数的适当方式,因此ansible-playbook默认为/etc/ansible/hosts,它是空的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38492398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档