ansible的lookup
lookup路径: /usr/lib/python2.7/site-packages/ansible/plugins/lookup
所有的lookup插件列表
cartesian.py
dnstxt.py
hashi_vault.py
lastpass.py
random_choice.py
chef_databag.py
env.py
hiera.py
lines.py
redis_kv.py
consul_kv.py
etcd.py
indexed_items.py
list.py
sequence.py
credstash.py
fileglob.py
ini.py
mongodb.py
shelvefile.py
csvfile.py
file.py
nested.py
subelements.py
cyberarkpassword.py
filetree.py
inventory_hostnames.py
password.py
template.py
dict.py
first_found.py
items.py
passwordstore.py
together.py
dig.py
flattened.py
keyring.py
pipe.py
url.py
list.py DOCUMENTATION = """
lookup: list
author: Ansible core team
version_added: "2.0"
short_description: simply returns what it is given.
description:
- this is mostly a noop, to be used as a with_list loop when you dont want the content transformed in any way.
"""
EXAMPLES = """
---
- hosts: localhost
tasks:
- name: unlike with_items you will get 3 items from this loop, the 2nd one being a list
debug: var=item
with_list:
- 1
- [2,3]
- 4
...
输出如下:
[root@node-1 test_plays]# ansible-playbook test.yml PLAY [localhost] ******************************************************************************* TASK [unlike with_items you will get 3 items from this loop, the 2nd one being a list] *********
ok: [localhost] => (item=1) => {
"changed": false,
"item": 1
}
ok: [localhost] => (item=[2, 3]) => {
"changed": false,
"item": [
2,
3
]
}
ok: [localhost] => (item=4) => {
"changed": false,
"item": 4
} PLAY RECAP *************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
random_choice.py DOCUMENTATION = """
lookup: random_choice
author: Michael DeHaan <michael.dehaan@gmail.com>
version_added: "1.1"
short_description: return random element from list
description:
- The 'random_choice' feature can be used to pick something at random. While it's not a load balancer (there are modules for those),
it can somewhat be used as a poor man's load balancer in a MacGyver like situation.
- At a more basic level, they can be used to add chaos and excitement to otherwise predictable automation environments.
"""
EXAMPLES = """
- name: Magic 8 ball for MUDs
debug:
msg: "{{ item }}"
with_random_choice:
- "go through the door"
- "drink from the goblet"
- "press the red button"
- "do nothing"
"""
脚本输出
[root@node-1 test_plays]# ansible-playbook test.yml PLAY [localhost] ******************************************************************************* TASK [Magic 8 ball for MUDs] *******************************************************************
ok: [localhost] => (item=go through the door) => {
"changed": false,
"item": "go through the door",
"msg": "go through the door"
} PLAY RECAP *************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
env.py DOCUMENTATION = """
lookup: env
author: Jan-Piet Mens (@jpmens) <jpmens(at)gmail.com>
version_added: "0.9"
short_description: read the value of environment variables
requirements:
- dns/dns.resolver (python library)
description:
- Allows you to query the environment variables available on the controller when you invoked Ansible.
options:
_terms:
description: Environment variable or list of them to lookup the values for
required: True
""" EXAMPLES = """
- debug: msg="{{ lookup('env','HOME') }} is an environment variable"
"""
[root@node-1 test_plays]# ansible-playbook test.yml PLAY [localhost] ******************************************************************************* TASK [debug] ***********************************************************************************
ok: [localhost] => {
"msg": "/root is an environment variable"
} PLAY RECAP *************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
hiera.py DOCUMENTATION = '''
author:
- Juan Manuel Parrilla (@jparrill)
lookup: hiera
version_added: "2.4"
short_description: get info from hiera data
requirements:
- hiera (command line utility)
description:
- Retrieves data from an Puppetmaster node using Hiera as ENC
options:
_hiera_key:
description:
- The list of keys to lookup on the Puppetmaster
type: list
element_type: string
required: True
_bin_file:
description:
- Binary file to execute Hiera
default: '/usr/bin/hiera'
env:
- name: ANSIBLE_HIERA_BIN
_hierarchy_file:
description:
- File that describes the hierarchy of Hiera
default: '/etc/hiera.yaml'
env:
- name: ANSIBLE_HIERA_CFG
FIXME:
description: incomplete options .. _terms? environment/fqdn? ANSIBLE_HIERA_CFG, ANSIBLE_HIERA_BIN
''' EXAMPLES = """
# All this examples depends on hiera.yml that describes the hierarchy - name: "a value from Hiera 'DB'"
debug: msg={{ lookup('hiera', 'foo') }}
- name: "a value from a Hiera 'DB' on other environment"
debug: msg={{ lookup('hiera', 'foo environment=production') }} - name: "a value from a Hiera 'DB' for a concrete node"
debug: msg={{ lookup('hiera', 'foo fqdn=puppet01.localdomain') }}
"""
脚本输出
[root@node-1 test_plays]# ansible-playbook test.yml PLAY [localhost] ******************************************************************************* TASK [a value from Hiera 'DB'] *****************************************************************
ok: [localhost] => {
"msg": "nil"
} TASK [a value from a Hiera 'DB' on other environment] ******************************************
ok: [localhost] => {
"msg": "nil"
} TASK [a value from a Hiera 'DB' for a concrete node] *******************************************
ok: [localhost] => {
"msg": "nil"
} PLAY RECAP *************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0
lines.py
DOCUMENTATION = """
lookup: file
author: Daniel Hokka Zakrisson <daniel@hozac.com>
version_added: "0.9"
short_description: read lines from command
description:
- Run a commandi or more and split the output into lines returning them as a list
options:
_terms:
description: command(s) to run
required: True
notes:
- Like all lookups this runs on the Ansible controller and is unaffected by other keywords, such as become,
so if you need to different permissions you must change the command or run Ansible as another user.
- Alternatively you can use a shell/command task that runs against localhost and registers the result.
"""
EXAMPLES = """
- name: we could use file direclty, but this shows output from command
debug: msg="{{ item }} is a line running cat on /etc/motd"
with_lines: cat /etc/motd - name: More useful example of looping over a command result
shell: "/usr/bin/frobnicate {{ item }}"
with_lines:
- "/usr/bin/frobnications_per_host --param {{ inventory_hostname }}"
"""
indexed_items.py DOCUMENTATION = """
lookup: indexed_items
author: Michael DeHaan <michael.dehaan@gmail.com>
version_added: "1.3"
short_description: rewrites lists to return 'indexed items'
description:
- use this lookup if you want to loop over an array and also get the numeric index of where you are in the array as you go
- any list given will be transformed with each resulting element having the it's previous position in item.0 and its value in item.1
options:
_terms:
description: list of items
required: True
""" EXAMPLES = """
- name: indexed loop demo
debug:
msg: "at array position {{ item.0 }} there is a value {{ item.1 }}"
with_indexed_items:
- "{{ some_list }}"
"""
sequence.py DOCUMENTATION = """
lookup: sequence
author: Jayson Vantuyl <jayson@aggressive.ly>
version_added: "1.0"
short_description: generate a list based on a number sequence
description:
- generates a sequence of items. You can specify a start value, an end value, an optional "stride" value that specifies the number of steps
to increment the sequence, and an optional printf-style format string.
- 'Arguments can be specified as key=value pair strings or as a shortcut form of the arguments string is also accepted: [start-]end[/stride][:format].'
- 'Numerical values can be specified in decimal, hexadecimal (0x3f8) or octal (0600).'
- Starting at version 1.9.2, negative strides are allowed.
options:
start:
description: number at which to start the sequence
default: 0
type: number
end:
description: number at which to end the sequence, dont use this with count
type: number
default: 0
count:
description: number of elements in the sequence, this is not to be used with end
type: number
default: 0
stride:
description: increments between sequence numbers, the default is 1 unless the end is less than the start, then it is -1.
type: number
format:
description: return a string with the generated number formated in
""" EXAMPLES = """
- name: create some test users
user:
name: "{{ item }}"
state: present
groups: "evens"
with_sequence: start=0 end=32 format=testuser%02x
- name: create a series of directories with even numbers for some reason
file:
dest: "/var/stuff/{{ item }}"
state: directory
with_sequence: start=4 end=16 stride=2 - name: a simpler way to use the sequence plugin create 4 groups
group:
name: "group{{ item }}"
state: present
with_sequence: count=4 - name: the final countdown
debug: msg={{item}} seconds to detonation
with_sequence: end=0 start=10
"""
ansible的lookup的更多相关文章
- 007.Ansible变量Fact,魔法变量和lookup生成变量
一 fact变量 1.1 fact简介 ansible有一个模块叫setup,用于获取远程主机的相关信息,并可以将这些信息作为变量在playbook里进行调用.而setup模块获取这些信息的方法就是 ...
- ansible配置文件详解
# ansible配置文件配置 配置项介绍 , 配置文件ansible.cfg, 运行playbook时,默认时在yaml文件所在路径寻找,然后再去/etc/ansible/下寻找 [defaults ...
- 初探ansible
Ansible 基于ssh的自动化运维工具 ansible 配置文件详解 ansible.cfg 文件 文件默认放置在/etc/ansible下,ansible读取配置文件的顺序是: 当前命令执行目录 ...
- 002. Ansible部署及配置介绍
一 Ansible的安装部署 1.1 PIP方式 安装PIP 略,可参考<001.Pip简介及使用>. 提示:建议将PIP升级到最新:pip install --upgrade pip. ...
- Ansible配置文件
官方配置文件文档 Ansible安装完成之后默认配置文件为:/etc/asnible/ansible.cfg Ansible配置文件内容: cat ansible.cfg # config file ...
- ansible Developing Plugins
Action plugins是模块的前端,可以在调用模块本身之前对控制器执行操作. Cache plugins用于保存“facts”的缓存,以避免代价高昂的fact-gathering操作. Call ...
- Ansible 小手册系列 四(详解配置文件)
[root@host-172-20-6-120 ansible]# ansible --version ansible 2.2.0.0 config file = /etc/ansible/ansib ...
- ansible 入门学习(一)
一,ansible 目录结构 (来自于ansible权威指南) 二,ansible.cfg 配置项说明 /etc/ansible/ansible.cfg --> ———————————————— ...
- ansible 2.1.0 api 编程
pdf文档 https://media.readthedocs.org/pdf/ansible/latest/ansible.pdf api介绍 http://blog.csdn.net/python ...
随机推荐
- HTTP简明学习
前面的话 本文将详细介绍HTTP主要内容 概述 Web 的诞生,源于三大技术的诞生,它们都是当年 Web 之父 Tim Berners-Lee 自己 开发的,世界上第一个网站诞生的时间是 1991 年 ...
- js基础-字符串常用属性合集
/* * * 实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法 * 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调 ...
- 雷军微博拧螺丝,CFO为粉丝数发愁
导读 小米集团联合创始人.品牌战略官黎万强4年前写的书<参与感>,估计又要热卖了. 3月24日,小米CFO周受资发微博,“我刚接受了同事的挑战,要在一定时间内在微博上有更多的粉丝”,并向粉 ...
- React Native——react-navigation的使用
在 React Native 中,官方已经推荐使用 react-navigation 来实现各个界面的跳转和不同板块的切换. react-navigation 主要包括三个组件: StackNavig ...
- dubbo接口demo开发
接口需求 客户端输入uncleyong(当然,也可以输入其它字符串),服务端返回hello uncleyong 开发环境 jdk + idea + maven + zookeeper jdk安装 id ...
- django restframework permission
与 authentication 和 throttling 一起,permission 决定是应该接受还是拒绝访问请求.权限检查总是在视图的最开始处运行,在任何其他代码被允许进行之前.权限检查通常会使 ...
- 一文读懂ES6(附PY3对比)
Ⅰ.ES6~POP¶ 代码示例:https://github.com/lotapp/BaseCode/tree/master/javascript/1.ES6 在线演示:https://githu ...
- secureCRT自动断开的解决方法
转: secureCRT自动断开的解决方法 secureCRT自动断开的解决方法 在secureCRT上登录时,一段时间不用的话会自动断开,必须重新连接,有点麻烦. 有时候服务器端的 /etc/pro ...
- JSON三种数据解析方法(转)
原 JSON三种数据解析方法 2018年01月15日 13:05:01 zhoujiang2012 阅读数:7896 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- SEO总结
学习了这么久了seo,对学过的知识进行一下总结. 服务器和域名 首先的一个就是对服务器和域名的选择,服务器最好能是独立的,因为如果不是独立服务器很容易被别人放在服务器上的网站所影响,然后就是域名,需要 ...