Ansible中的变量及加密

目录

1.变量命名

2.变量级别

3.变量设定和使用方式

1.在playbook中直接定义变量

2.在文件中定义变量

3.使用变量

4.设定主机变量和清单变量

5.目录设定变量

 6.用命令覆盖变量

7.使用数组设定变量 

8.注册变量 

9.事实变量

 10.魔法便变量

JINJA2模板

j2模板书写规则

Ansible的加密控制

1.创建加密文件

2. vim key创建密钥

3.加密现有文件

4.查看加密文件

  5.编辑加密文件

 6.解密文件

7.更改密码


1.变量命名

       和大多数编程语言一样,包含数字,下划线,字母 ,只能用下划线或字母开头 ansible内置的关键字不能作为变量名

2.变量级别

全局: 从命令行或配置文件中设定的

paly: 在play和相关结构中设定的

主机: 由清单,事实收集或注册的任务

变量优先级设定: 狭窄范围有限与广域范围

3.变量设定和使用方式

1.在playbook中直接定义变量

2.在文件中定义变量

 编辑westos.yml文件,指定变量linuxfile,在编辑test.yml文件,如下

 运行后即可在/mnt/中创建linuxfile

3.使用变量

- name: tesk play

  hosts: westos

tasks:

- name: create filef

file:

path: "{{ file }}"

state: touch

4.设定主机变量和清单变量

在定义主机变量和清单变量时使用

编辑inventory如下,编辑test.yml如下,运行test.yml即可在受控主机中创建filewestoslinux

5.目录设定变量

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

host_vars                     主机变量,目录中的文件名称与主机名称一致

测试如下

vim inventory

添加主机IP

[list]

192.168.43.204

vim test.yml

 

 接着需写:group_vars清单变量,host_vars 主机变量

内容如下:

 测试如下:

运行test.yml:执行成功。并查看受控机192.168.43.204中的用户user1如下:删除用户成功!

 6.用命令覆盖变量

 ansible-playbook westos.yml -e "name=linux"

7.使用数组设定变量 

8.注册变量 

9.事实变量

事实变量是ansible在受控主机中自动检测出的变量,事实变量中还有与主机相关的信息

当需要使用主机相关信息时不需要采集赋值,直接调用即可

因为变量信息为系统信息所以不能随意设定仅为采集信息,故被成为事实变量

我们不知道系统参数的时候,可以直接去查看系统中的参数

ansible westos all –m, setup | less

 

例如:查看主机名(ansible_fqdn) 

 10.魔法便变量

hostvars:       ansible软件的内部信息

eg:ansible westost -m debug -a "var=hostvars"

group_names:   当前受管主机所在组

eg: ansible westos -m debug -a "var=group_names"

 

 groups:                列出清单中所有的组和主机

eg: ansible localhost -m debug -a "var=groups"

 inventory_hostname:          包含清单中配置的当前授管主机的名称

eg: ansible westos -m debug -a "var=inventory_hostname"

JINJA2模板

介绍 Jinja2是Python下一个被广泛应用的模版引擎 他的设计思想来源于Django的模板引擎, 并扩展了其语法和一系列强大的功能。 其中最显著的一个是增加了沙箱执行功能和可选的自动转义功能

j2模板书写规则

编写循环内容

vim number.yml

NUMBER:

- 1

- 2

- 3

for循环和if判断

vim test.j2

{% for N in NUMBER %}

{%if N == 2%}

luck

{%endfor%}

{%if not N == 2%}

{{N}}

{%end%}

{%endfor%}

loop.index   循环迭代记数从1开始

loop.index0 循环迭代计数从0开始

vim testj2.yml

- name: test j2

  hosts: westos

  vars_files: number.yml

  tasks:

    - name: create /mnt/file

      template:

        src: test.j2

        dest: /mnt/file

 

 

 

Ansible的加密控制

1.创建加密文件

1. ansible-vault create linux       创建加密文件linux

 

2. vim key创建密钥

westos

ansible-vault create linuxfile --vault-password-file=key

对新建文件linuxfile进行加密(linuxfile文件密码为key文件中的内容westos)

 

3.加密现有文件

ansible-vault encrypt vsftpd.yml     对已经存在的vsftp.yml文件进行加密

 

ansible-vault encrypt linuxfile --vault-password-file=key  

对现有文件linuxfile文件进行加密,并指定密钥为key文件

 

4.查看加密文件

ansible-vault view vsftpd.yml        查看加密文件vsftpd.yml

 

ansible-vault view linuxfile --vault-password-file=key

查看已经加密的文件Linuxfile,密钥为key文件

 

  5.编辑加密文件

ansible-vault edit linux        编辑加密文件linux

ansible-vault edit linuxfile --vault-password-file=key

编辑加密的文件linuxfile,密钥为key文件

       

 6.解密文件

ansible-vault decrypt linux                linux文件永久解密

ansible-vault decrypt linuxfile --output=linuxfile   

linuxfile文件解密保存为linuxfile

7.更改密码

ansible-vault rekey linux   对linux文件进行更改密码

ansible-vault rekey linuxfile --new-vault-password-file=key1

对linuxfile文件进行更改密码,更改后的密码为key1文件

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值