码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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文件

     

     

  • 相关阅读:
    大数据-之LibrA数据库系统告警处理(ALM-12050 网络写吞吐率超过阈值)
    JS 原型的原理
    【vscode提取函数快捷键】提取函数,减少大方法的复杂度
    一文带你了解动态NAT以及NAPT实验配置
    git学习
    Linux高级IO ------ poll ,epoll(重要)
    COMSOL泰森多边形Voronoi图多孔骨架优化模型受力分析
    Vue中计算属性computed与method的区别
    centos常用命令
    具有mDNS功能的串口服务器
  • 原文地址:https://blog.csdn.net/LRJ2034203479/article/details/126021024
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号