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. C++设计模式 - 模板方法(Template Method)

    组件协作模式: 现代软件专业分工之后的第一个结果是"框架与应用程序的划分","组件协作"模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用 ...

  2. #Manacher,并查集#洛谷 3279 [SCOI2013]密码

    题目 分析 这些回文长度可以提供相等或者不等的信息, 不等的直接连边强制不等,相等用并查集合并连通块, 但是这样判断是\(O(n^2)\),考虑这些回文长度当用Manacher求时, 所有的回文长度都 ...

  3. 使用OHOS SDK构建flac

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/xiph/flac 进入 ...

  4. [洛谷P3961,TJOI2013]黄金矿工题解

    这无疑是一个分组背包问题,斜率是分组的依据,组内物品则是这个斜率下金块的价值与重量的前缀和. 发现很多人的都是用的double储存斜率,其实我们可以用分数的方法保存,这就需要一个gcd. 然后我们用m ...

  5. [易语言软件开源] [分享源码] 易语言D2D实现彩虹跑马灯

    注意使用了D2D1.1,部分win7用户可能用不了(win7以下也用不了) 不是单纯的一个彩虹条,是可以变幻的 其实也可以封装成GDI+的,但是GDI+占用比较大,就没有用 点击下载点击下载

  6. C++ 用户输入与数据类型详解:建立基本计算器及变量类型

    C++ 用户输入 你已经学习了 cout 用于输出(打印)值.现在我们将使用 cin 来获取用户输入. cin 是一个预定义变量,它使用提取运算符(>>)从键盘读取数据. 在下面的示例中, ...

  7. SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用

    SQL DELETE 语句 SQL DELETE 语句用于删除表中的现有记录. DELETE 语法 DELETE FROM 表名 WHERE 条件; 注意:在删除表中的记录时要小心!请注意DELETE ...

  8. IDEA快捷键快速补齐类和对象名

    CTRL+ALT+V  ----------快速补齐 类和对象名 如:   new String("123") 光标放到最后 按下快捷键补齐为红色部分  String s = ne ...

  9. HDC2021技术分论坛:鸿蒙智联设备开发,这五大法宝你应该拥有

    作者:zhaowenguang,dinglu, 华为高级工程师 Huawei LiteOS是轻量级的开源物联网操作系统.智能硬件使能平台,可广泛应用于智能家居.穿戴式.车联网.制造业等领域,使物联网终 ...

  10. 抓包整理————tcp 传输数据的基础概念[十一]

    前言 简单介绍一下tcp 数据传输. 正文 tcp 数据传输是怎么样子的呢? 比如我们在代码中写好了,connection 去连接. 然后我们用 write 去读取数据,这个时候呢,到底我们的操作系统 ...