ansible管理变量和加解密

本文介绍了Ansible中变量的使用,包括变量的命名规则、定义与范围,以及在playbook中的应用。同时,文章详细阐述了如何通过Ansible Vault进行机密管理,如加密、解密和密码变更,确保敏感数据的安全。
摘要由CSDN通过智能技术生成

ansible管理变量和加解密

ansible变量简介

Ansible支持利用变量来存储值,并在Ansible项目的所有文件中重复使用这些值。这可以简化项目的创建和维护,并减少错误的数量。

例如,变量可能包含下面这些值:

  • 要创建的用户

  • 要安装的软件包

  • 要重新启动的服务

  • 要删除的文件

  • 要从互联网检索的存档

命名变量规则

变量的名称必须以字母开头,并且只能包含字母、数字和下划线。

无效的变量 有效的变量
qqq 123 qqq_123
list 123 abc list_123_abc
QQQ.123 QQQ_123
list @1 list1 或 list_1

定义变量

可以在Ansible项目中的多个位置定义变量。不过,这些变量大致可简化为三个范围级别:

​ 全局变量:从命令行或Ansible配置设置的变量

​ Play范围:在play和相关结构中设置的变量

​ 主机范围:由清单、事实收集或注册的任务,在主机组和个别主机上设置的变量

如果在多个xekl(级别)定义了相同名称的变量,则采用优先级别最高的变量。窄范围优先于更广泛的范围:由清单定义的变量将被playbook定义的变量覆盖,后者将被命令行中定义的变量覆盖。

playbook中的变量

变量在Ansible Playbook中发挥着重要作用,因为它们可以简化playbook中变量数据的管理。

在playbook中定义变量

编写playbook时,可以定义自己的变量,然后在任务中调用这些值。

Playbook变量可以通过多种方式定义。一种常见的方式是将变量放在playbook开头的vars块中:

---
- hosts: server1
  remote_user: tom
  vars:                              //变量模块
    IP: 192.168.56.199              //定义变量
    NAME: node4
  tasks:
    - name: test
      lineinfile:
        path: /etc/hosts
        line: "{
  { IP  }} {
  { NAME  }}"   //如果{
  { IP }}前面有字母就不用打""
        state: present


//查看结果
[root@server1 etc]# cat  hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.130 server1
192.168.56.199 node4

也可以在playbook外部定义变量

也可以在外部文件中定义playbook变量。此时不使用playbook中的vars块,可以改为使用vars_files指令,后面跟上相对于playbook位置的外部变量文件名称列表:

//编写变量文件

[root@control book]# ls
ansible.cfg  node1.yml  playbook  vars
[root@control book]#  cat  vars/time.yml 
IP: 192.168.56.179
NAME: node7

//变量文件必须和清单文件在同一个级别,不然无法找到变量文件

[root@control vars]# tree  /opt/book/vars/
/opt/book/vars/
├── ansible.cfg
├── host_vars
│   ├── 192.168.56.130
│   ├── node1.yml
│   └── time.yml
└── playbook

//修改文件

[root@control vars]# cat  node1.yml 
---
- hosts: server1
  remote_user: tom
  vars_files:           //局外变量模块
    - vars/time.yml     //变量地址
  tasks:
    - name: test
      lineinfile:
        path: /etc/hosts
        line: "{
  { IP  }} {
  { NAM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值