ansible的变量及JINJA2模板、加密控制

本文深入探讨Ansible的变量使用,包括在playbook、文件、主机清单、目录和命令中设定变量,以及JINJA2模板的介绍、循环与条件判断的应用。同时,文章详细阐述了Ansible中的加密控制,涵盖从创建到执行加密文件的全过程。
摘要由CSDN通过智能技术生成

一、变量的设定

1、变量的命名规则:
(1)只能包含数字,下划线,字母;
(2)只能用下划线或字母开头;
(3)ansible内置的关键字不能作为变量名。
2、变量的级别:

全局 从命令行或配置文件中设定的
play play和相关结构中设定
主机 由清单,事实收集或注册的任务

3、变量优先级:
全局 > play > 主机

二、变量的使用方式

  • 这里使用循环定义的方式,使用loopitem实现循环执行

1、在playbook中直接定义变量

定义变量,为远程主机添加用户

vim skk.yml

---
- name: test
  hosts: server2
  vars:  ##定义变量
    user:
      - aaa
      - bbb
  tasks:
    - name: useradd
      user:
        name: "{
   { item }}"  ##循环每一个变量
        state: present
      loop:  ##与 user同一级别
        "{
   { user }}"  ##定义循环的变量

在这里插入图片描述在这里插入图片描述

2、在文件中定义变量

定义变量

vim userdel.yml

---
user:  ##定义变量名称
  - aaa
  - bbb
  - lee

使用变量删除远程主机的多个用户

vim skk.yml

---
- name: test
  hosts: server2
  vars_files:  ##定义变量文件
    - ./userdel.yml  ##定义变量文件位置
  tasks:
    - name: userdel
      user:
        name: "{
   { item }}"  ##循环每一个变量
        state: absent
        remove: yes
      loop:  
        "{
   { user }}"  ##定义循环的变量

在这里插入图片描述远程主机查看,用户已被删除
在这里插入图片描述

3、设定主机变量和清单变量

清单:定义demo组的USER变量为devops

vim inventory

[demo]
server2
172.25.36.2

[demo:vars]  ##定义清单组的变量
USER=devops

编写playbook,输出USER变量

vim debug.yml

---
- name: test
  hosts: server2
  tasks:
    - name: debug
      debug:
        msg: "{
   { USER }}"

在这里插入图片描述

4、目录设定变量

group_vars 清单变量,目录中的文件名称与主机清单名称一致
host_vars 主机变量,目录中的文件名称与主机名称一致
cat inventory

[demo]
server2
172.25.36.2

在这里插入图片描述执行上面编写的debug.yml,使输出变化
在这里插入图片描述

5、用命令覆盖变量

改变输出为linux

ansible-playbook debug.yml -e "USER=linux"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值