8.ansible自定义变量

本文介绍了Ansible中自定义变量的方法,包括在Inventory中定义主机和主机组变量,以及在Playbook中通过vars、vars_files、host_vars、group_vars、register和命令行设置变量。详细阐述了变量的引用、调试输出以及使用场景,帮助读者掌握如何高效地管理和使用Ansible变量。
摘要由CSDN通过智能技术生成

简单说明

ansible支持变量,用于存储会在整个项目中重复使用到的一些值。以简化项目的创建与维护,降低出错的机率。

变量的定义:

●变量名应该由字母、数字下划数组成

●变量名必须以字母开头

●ansible内置关键字不能作为变量名

1.在Inventory中定义变量

1.1. 定义主机变量

1.1.1. 内置主机变量

所谓内置变量其实就是ansible.cfg配置文件中的选项,在其前加上 ansible_ 即成为内置变量。当然内置变拥有比

ansible.cfg中选项更高的优先级,而且针对不同的主机,可以定义不同的值。


# 一般连接

ansible_ssh_host #用于指定被管理的主机的真实IP
ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22
ansible_ssh_user #ssh连接时默认使用的用户名

# 特定ssh连接
ansible_connection #SSH连接的类型:local, ssh, paramiko,在ansible 1.2 之前默认是paramiko,

ansible_ssh_pass #ssh连接时的密码
ansible_ssh_private_key_file #秘钥文件路径,如果不想使用ssh-agent管理秘钥文件时可以使用此选项

ansible_ssh_executable #如果ssh指令不在默认路径当中,可以使用该变量来定义其路径

# 特权升级
ansible_become #相当于ansible_sudo或者ansible_su,允许强制特权升级
ansible_become_user #通过特权升级到的用户,相当于ansible_sudo_user或者ansible_su_user
ansible_become_pass # 提升特权时,如果需要密码的话,可以通过该变量指定,相当于ansible_sudo_pass或

ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径

# 远程主机环境参数

ansible_shell_executable # 设置目标机上使用的shell,默认为/bin/sh

ansible_python_interpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定r
ansible_*_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里"*"可以是r

下面是一个简单的示例:

# 指定了三台主机,三台主机的用密码分别是P@ssw0rd、123456、45789,指定的ssh连接的用户名分别为root、 [test]
192.168.1.1 ansible_ssh_user=root ansible_ssh_pass='P@ssw0rd'
192.168.1.2 ansible_ssh_user=breeze ansible_ssh_pass='123456'
192.168.1.3 ansible_ssh_user=bernie ansible_ssh_port=3055 ansible_ssh_pass='456789'

1.2. 定义主机组变量

变量也可以通过组名,应用到组内的所有成员:

# test组中包含两台主机,通过对test组指定vars变更,相应的host1和host2相当于相应的指定了ntp_server和 [test]
host1
host2
[test:vars]
ntp_server=192.168.1.10
proxy=192.168.1.2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值