1. Introducción
Cuando escribimos el libro de jugadas, inevitable para realizar algunas acciones repetitivas, como el dedo instalar paquetes, Crear usuarios por lotes, que opera todos los archivos en un directorio y así sucesivamente. Como hemos dicho, ansible un simple lenguaje automático, control de procesos, el reciclaje de los elementos básicos del lenguaje de programación que estas declaraciones son igualmente disponibles.
2. El bucle de edad (antes de la versión 2.5 solamente)
En Ansible anterior 2.5, PlayBook para lograr diferentes ciclo de circulación a través de diferentes estados, que with_ usa como prefijo. La sintaxis sigue siendo compatible, pero en algún momento en el futuro, será abandonado gradualmente.
循环语句关键字 描述
with_items 简单的列表循环
with_nested 嵌套循环
with_dict 循环字典
with_fileglob 循环指定目录中的所有文件
with_lines 循环一个文件中的所有行
with_sequence 生成一个自增的整数序列,可以指定起始值和结束值以及步长。参数以key=value的形式指定,format指定输出的格式。数字可以是十进制、十六进制、八进制
with_subelement 遍历子元素
with_together 遍历数据并行集合
3. with_items
lista circular 4. Personal with_list
5. Pequeño Ejercicio: crear cuatro archivos en el host administrado
(1) antes de que el ciclo no se aprende, escribiremos
---
- hosts: test70
remote_user: root
gather_facts: no
tasks:
- file:
path: "/opt/a"
state: touch
- file:
path: "/opt/b"
state: touch
- file:
path: "/opt/c"
state: touch
- file:
path: "/opt/d"
state: touch
(2) Después de usar un bucle, escribimos
6. Con la función de registro, ciclo de ejecución múltiple de diferentes comandos
7. para traversal bucle
---
- hosts: test70
gather_facts: no
tasks:
- shell: "{{item}}"
with_items:
- "ls /opt"
- "ls /home"
register: returnvalue
- debug:
msg:
"{% for i in returnvalue.results %}
{{ i.stdout }}
{% endfor %}"
8. Definición de lista anidada
(El uso de dos sintaxis with_items combinado)
9. with_list palabra clave
10. with_flattened palabra clave
11. La diferencia entre las tres palabras clave
12. with_together palabra clave
13. with_cartesian palabra clave
1. Podemos mkdir -p {a, b, c} / {test1, test2}
2
14. with_indexed_items palabra clave
Cuando la lista de un solo 14-1
---
- hosts: test70
remote_user: root
gather_facts: no
tasks:
- debug:
msg: "index is : {{ item.0 }} , value is {{ item.1 }}"
with_indexed_items:
- test1
- test2
- test3
resultados de la ejecución son las siguientes:
TASK [debug] **********************************
ok: [test70] => (item=(0, u'test1')) => {
"changed": false,
"item": [
0,
"test1"
],
"msg": [
0,
"test1"
]
}
ok: [test70] => (item=(1, u'test2')) => {
"changed": false,
"item": [
1,
"test2"
],
"msg": [
1,
"test2"
]
}
ok: [test70] => (item=(2, u'test3')) => {
"changed": false,
"item": [
2,
"test3"
],
"msg": [
2,
"test3"
]
}
Cuando dos listas anidadas 14-2
---
- hosts: testA
remote_user: root
gather_facts: no
tasks:
- debug:
msg: "index is : {{ item.0 }} , value is {{ item.1 }}"
with_indexed_items:
- [ test1, test2 ]
- [ test3, test4, test5 ]
- [ test6, test7 ]
Los resultados:
Cuando las multi-capa de listas anidadas 14-3
15. with_sequence palabra clave
contar
---
- hosts: test70
remote_user: root
gather_facts: no
tasks:
- debug:
msg: "{{item}}"
with_sequence: start=2 end=6 stride=2 format="number is %0.2f"
16. with_random_choice palabra clave
17. with_dict palabra clave
18. diccionario de anidación
19. with_subelements palabra clave