ansible变量简介
Ansible支持利用变量来存储值,并在Ansible项目的所有文件中重复使用这些值;这可以简化项目的创建和维护,并减少错误的数量
通过变量,管理员可以轻松地Ansible项目中管理给定环境的动态值;变量可能包含下面这些值
要创建的用户
要安装的软件包
要重启的服务
要删除的文件
要从互联网检素的存档
命名变量:
变量的名称必须以字母开头,并且只能含有字母、数字和下划线
定义变量:
全局范围、play范围、主机范围
如果在多个级别上定义了相同名称的变量,则采用优先级别最高的变量;窄范围优先于更广泛的范围:
由清单定义的变量将被playbook定义的变量覆盖,后者将被命令行中定义的变量覆盖
从命令行覆盖变量(额外变量):
清单变量可被playbook中设置的变量覆盖,playbook中设置的变量又可被额外变量给覆盖因此,当需要覆盖―次性运行的 playbook的已定义的变量值时,额外变量非常有用
ansible-playbook main.yml -e "package=apache"
使用数组作为变量:
除了将与同—元素相关的配置数据(软件包列表、服务列表和用户列表等)分配到多个变量外管理员也可以使用数组;这种做法的一个好处在于数组是可以浏览的。
运行环境:RH294
步骤一:以student用户身份并使用student作为密码登录workstation
[kiosk@foundation0 ~]$ ssh student@workstation
步骤二:在workstation上,运行lab data-variables start命令,此命令会创建data-variables工作目录并为它填充Ansible配置文件和主机清单
[ student@workstation ~]$ lab data-variables start
步骤三:查看 /home/student/data-variables/目录下的文件
[ student@workstation ~]$ cd /home/student/
[student@workstation ~]$ cd /home/student/data-variables/
[ student@workstation data-variables]$ ls
[student@workstation data-variables]s cat ansible.cfg
[student@workstation data-variables]s cat inventory
步骤四:编辑playbook.yml文件
[student@workstation data-variables]$ vim playbook.yml
步骤五:验证playbook.yml文件内的语法是否正确
[student@workstation data-variables]$ ansible-playbook --syntax-check playbook.yml
步骤六:模拟运行
[student@workstation data-variables]$ ansible-playbppk -Cv playbook.yml
补充错误示例:
示例一:
大致意思就是说,我在第21行第6列出现了错误,行数没对齐,看了一下,确实是没有和上列对齐
示例二:
大致意思是在说,出现了重复的name,我进行了‘’name:‘’名称修改,作用不大,好吧,是没起作用,然后最后发现是这样的
我之前没有空格。。。
示例三:
大致意思就是说,出现了一个未定义的变量firewalld_service,然后我发现
我把firewall_service写成了firewalld_service以上就是我在实验时遇到的错误,欢迎补充哦~