ansible变量

ansible变量

在实际的应用场景中, 我们希望一些任务,配置根据设备性能的不同而产生差异,比如使用本机cpu核数动态配置nginx的worker_processes参数,可能有一组主机的应用配置文件几乎相同,但略有不同的配置项可以引用变量。

Jinja2过滤器

---

- hosts: 192.168.1.21

vars:

filename: /etc/profile

tasks:

- name: "shell1"

shell: echo {{ filename | basename}} >> /tmp/testshell

 

本地Facts

我们可通过Facts来获取目标主机的系统信息

 

注册变量,是将一条命令的运行结果保存到变量中,供后面的playbook使用。

tasks:

- command: /bin/false

register: result

ignore_errors: True

 

条件语句

有时候一个playbook的结果取决于一个变量,或者取决于上一个任务(task)的执行结果值,在某些情况下,一个变量的值可以依赖于其他变量的值,当然也会影响Ansible的执行过程。

tasks:

- name: "shutdown Debian flavored system"

command: /sbin/shutdown -t now

when: ansible_os_family == "Debian"

 

循环

通常一个任务会做很多事情,如创建大量的用户、安装很多包,或重复轮询特定的步骤,直到某种结果条件为止,ansible为我们提供了此支持。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: