1. 变量注册Register

register 关键字可以将某个 task 任务结果存储至变量中,最后使用 debug模块 输出变量内容,可以用于后续排障;

  • 示例一:register的基本使用:

    #playbook文件:
    [root@xuzhichao ansible_var]# cat test7.yml
    ---
    - hosts: 192.168.20.23
    remote_user: root tasks:
    - name: Shell Command
    shell: netstat -ntlp
    register: port_status - name: Get Port Status
    debug: msg={{ port_status.stdout_lines }} <==stdout_lines作用是只输出命令的内容。
    #运行playbook:
    [root@xuzhichao ansible_var]# ansible-playbook test7.yml PLAY [192.168.20.23] ***************************************************************************************************************************************** TASK [Gathering Facts] ***************************************************************************************************************************************
    ok: [192.168.20.23] TASK [Shell Command] *****************************************************************************************************************************************
    changed: [192.168.20.23] TASK [Get Port Status] ***************************************************************************************************************************************
    ok: [192.168.20.23] => {
    "msg": [
    "Active Internet connections (only servers)",
    "Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ",
    "tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 668/rpcbind ",
    "tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 15615/rpc.mountd ",
    "tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8981/nginx: master ",
    "tcp 0 0 0.0.0.0:40372 0.0.0.0:* LISTEN - ",
    "tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1112/sshd ",
    "tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1288/master ",
    "tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 8981/nginx: master ",
    "tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - ",
    "tcp 0 0 0.0.0.0:55651 0.0.0.0:* LISTEN 1122/rpc.statd ",
    "tcp6 0 0 :::111 :::* LISTEN 668/rpcbind ",
    "tcp6 0 0 :::40688 :::* LISTEN - ",
    "tcp6 0 0 :::20048 :::* LISTEN 15615/rpc.mountd ",
    "tcp6 0 0 :::56211 :::* LISTEN 1122/rpc.statd ",
    "tcp6 0 0 :::22 :::* LISTEN 1112/sshd ",
    "tcp6 0 0 ::1:25 :::* LISTEN 1288/master ",
    "tcp6 0 0 :::2049 :::* LISTEN - "
    ]
    } PLAY RECAP ***************************************************************************************************************************************************
    192.168.20.23 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  • 示例二:使用 register 关键字完成 jumpserver key 的创建;

    [root@xuzhichao ansible_var]# cat test8.yaml
    - hosts: webservers
    tasks: - name: Run Shell Command Random string
    shell:
    cmd: 'if ! grep "SECRET_KEY" ~/.bashrc; then
    SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`;
    echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc;
    echo $SECRET_KEY;
    else
    echo $SECRET_KEY;
    fi'
    register: SECRET_KEY - name: Run Shell Command BOOTSTRAP_TOKEN
    shell:
    cmd: 'if ! grep "BOOTSTRAP_TOKEN" ~/.bashrc; then
    BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za- z0-9 | head -c 16`;
    echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc;
    echo $BOOTSTRAP_TOKEN;
    else
    echo $BOOTSTRAP_TOKEN;
    fi'
    register: BOOTSTRAP_TOKEN - name: Copy Jms Configure
    template:
    src: ./j-config.yml
    dest: /tmp/jms_config.yml - name: Copy Koko Configure
    template:
    src: ./k-config.yml
    dest: /tmp/koko_config.yml # 配置文件中:
    SECRET_KEY: {{ SECRET_KEY.stdout.split('=')[1] }}
    BOOTSTRAP_TOKEN: {{ BOOTSTRAP_TOKEN.stdout.split('=')[1] }}

ansible系列(21)--ansible的变量注册Register的更多相关文章

  1. Ansible系列(六):各种变量定义方式和变量引用

    本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设 ...

  2. Ansible系列(五):各种变量定义方式和变量引用

    Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.1 ansible facts facts组件是用来收集被管理节点信息的 ...

  3. Ansible系列(六):循环和条件判断

    本文目录:1. 循环 1.1 with_items迭代列表 1.2 with_dict迭代字典项 1.3 with_fileglob迭代文件 1.4 with_lines迭代行 1.5 with_ne ...

  4. Ansible系列(五):playbook应用和roles自动化批量安装示例

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  5. Ansible系列(三):YAML语法和playbook写法

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  6. Ansible系列(七):执行过程分析、异步模式和速度优化

    本文目录:1.1 ansible执行过程分析1.2 ansible并发和异步1.3 ansible的-t选项妙用1.4 优化ansible速度 1.4.1 设置ansible开启ssh长连接 1.4. ...

  7. Ansible系列(四):playbook应用和roles自动化批量安装示例

    Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html playbook是ansible实现批量自动化最重要的手段.在其中可以使用变 ...

  8. Ansible系列(二):选项和常用模块

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  9. Ansible系列(一):基本配置和使用

    本文目录:1.1 安装Ansible1.2 配置Ansible 1.2.1 环境配置 1.2.2 SSH互信配置 1.2.3 简单测试1.3 inventory Ansible是一种批量.自动部署工具 ...

  10. SpringBoot系列教程web篇Servlet 注册的四种姿势

    原文: 191122-SpringBoot系列教程web篇Servlet 注册的四种姿势 前面介绍了 java web 三要素中 filter 的使用指南与常见的易错事项,接下来我们来看一下 Serv ...

随机推荐

  1. #倍增,LCA,Kruskal#JZOJ 1092 洛谷 4180 [BJOI 2010] 次小生成树

    题目 给出一个无向图,问它的严格次小生成树(数据保证有解) 分析 首先先找一棵最小生成树,然后对于每条非树边\((x,y,w)\)可以找到最小生成树上\(x,y\)路径上略小于\(w\),首先如果能找 ...

  2. .NET 8使用日志功能以及自定义日志提供程序

    .NET 8使用日志功能以及自定义日志提供程序 日志级别 下表列出了 LogLevel 值.方便的 Log{LogLevel} 扩展方法以及建议的用法: 展开表 LogLevel "值&qu ...

  3. OpenHarmony技术日全面解读3.1 Release版本,系统基础能力再升级

    4 月 25 日,OpenAtom OpenHarmony(以下简称"OpenHarmony")技术日在深圳举办,对 OpenHarmony 3.1 Release 版本核心技术进 ...

  4. OpenCV一句话将彩色图片(Mat)转换为灰度

    auto in_gray=cv::imdecode(in, cv::IMREAD_GRAYSCALE);

  5. Python基于Excel数据加以反距离加权空间插值并掩膜图层

      本文介绍基于Python中ArcPy模块,实现Excel数据读取并生成矢量图层,同时进行IDW插值与批量掩膜的方法. 1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有一个记录有 ...

  6. 实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking

    实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking 论文url https://arxiv.org/abs/2003.11753 论文简述: ...

  7. github仓库开始启用Token认证,用户名密码模式将在2021年8月停止使用

    提交代码到github原本使用github的登录账号和密码即可.现在github出于安全的考虑,将在2021年8月停止使用账号和密码的方式访问github仓库,改为token认证的方式. 创建步骤 点 ...

  8. 低成本FPGA的MIPI测试GOWIN和LATTICE CROSSLINK

    本次实验MIPI屏,2.0寸,分辨率是240*320 RGB888, 接口如下: 接上IO就是RST和MIPI的时钟和数据接口,另外就是电源和地. 一:GOWIN的测试方案 Gowin的案例中,首先是 ...

  9. 使用EPLAN做项目的收获点

    收获点如下: 1.消息检查功能. 最具有代表性的EPLAN软件的辅助检查功能.通过自带检查可以发现设计的错误和警告. 2.导线表导出功能. 使用导入模版.宏设置,导出对应线号表. 此类接线通过一个导线 ...

  10. Linux下的权限(角色,文件权限)

    目录 1.什么是权限 2.文件类型及权限 ①Linux文件类型: ②剩余9个字符对应的含义: ③文件权限值的表示方法(进制法) 3.如何操作权限 3.1改变权限的命令操作 chmod #change ...