ansible系列(21)--ansible的变量注册Register
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的更多相关文章
- Ansible系列(六):各种变量定义方式和变量引用
本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设 ...
- Ansible系列(五):各种变量定义方式和变量引用
Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.1 ansible facts facts组件是用来收集被管理节点信息的 ...
- Ansible系列(六):循环和条件判断
本文目录:1. 循环 1.1 with_items迭代列表 1.2 with_dict迭代字典项 1.3 with_fileglob迭代文件 1.4 with_lines迭代行 1.5 with_ne ...
- Ansible系列(五):playbook应用和roles自动化批量安装示例
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Ansible系列(三):YAML语法和playbook写法
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Ansible系列(七):执行过程分析、异步模式和速度优化
本文目录:1.1 ansible执行过程分析1.2 ansible并发和异步1.3 ansible的-t选项妙用1.4 优化ansible速度 1.4.1 设置ansible开启ssh长连接 1.4. ...
- Ansible系列(四):playbook应用和roles自动化批量安装示例
Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html playbook是ansible实现批量自动化最重要的手段.在其中可以使用变 ...
- Ansible系列(二):选项和常用模块
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Ansible系列(一):基本配置和使用
本文目录:1.1 安装Ansible1.2 配置Ansible 1.2.1 环境配置 1.2.2 SSH互信配置 1.2.3 简单测试1.3 inventory Ansible是一种批量.自动部署工具 ...
- SpringBoot系列教程web篇Servlet 注册的四种姿势
原文: 191122-SpringBoot系列教程web篇Servlet 注册的四种姿势 前面介绍了 java web 三要素中 filter 的使用指南与常见的易错事项,接下来我们来看一下 Serv ...
随机推荐
- #倍增,LCA,Kruskal#JZOJ 1092 洛谷 4180 [BJOI 2010] 次小生成树
题目 给出一个无向图,问它的严格次小生成树(数据保证有解) 分析 首先先找一棵最小生成树,然后对于每条非树边\((x,y,w)\)可以找到最小生成树上\(x,y\)路径上略小于\(w\),首先如果能找 ...
- .NET 8使用日志功能以及自定义日志提供程序
.NET 8使用日志功能以及自定义日志提供程序 日志级别 下表列出了 LogLevel 值.方便的 Log{LogLevel} 扩展方法以及建议的用法: 展开表 LogLevel "值&qu ...
- OpenHarmony技术日全面解读3.1 Release版本,系统基础能力再升级
4 月 25 日,OpenAtom OpenHarmony(以下简称"OpenHarmony")技术日在深圳举办,对 OpenHarmony 3.1 Release 版本核心技术进 ...
- OpenCV一句话将彩色图片(Mat)转换为灰度
auto in_gray=cv::imdecode(in, cv::IMREAD_GRAYSCALE);
- Python基于Excel数据加以反距离加权空间插值并掩膜图层
本文介绍基于Python中ArcPy模块,实现Excel数据读取并生成矢量图层,同时进行IDW插值与批量掩膜的方法. 1 任务需求 首先,我们来明确一下本文所需实现的需求. 现有一个记录有 ...
- 实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking
实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking 论文url https://arxiv.org/abs/2003.11753 论文简述: ...
- github仓库开始启用Token认证,用户名密码模式将在2021年8月停止使用
提交代码到github原本使用github的登录账号和密码即可.现在github出于安全的考虑,将在2021年8月停止使用账号和密码的方式访问github仓库,改为token认证的方式. 创建步骤 点 ...
- 低成本FPGA的MIPI测试GOWIN和LATTICE CROSSLINK
本次实验MIPI屏,2.0寸,分辨率是240*320 RGB888, 接口如下: 接上IO就是RST和MIPI的时钟和数据接口,另外就是电源和地. 一:GOWIN的测试方案 Gowin的案例中,首先是 ...
- 使用EPLAN做项目的收获点
收获点如下: 1.消息检查功能. 最具有代表性的EPLAN软件的辅助检查功能.通过自带检查可以发现设计的错误和警告. 2.导线表导出功能. 使用导入模版.宏设置,导出对应线号表. 此类接线通过一个导线 ...
- Linux下的权限(角色,文件权限)
目录 1.什么是权限 2.文件类型及权限 ①Linux文件类型: ②剩余9个字符对应的含义: ③文件权限值的表示方法(进制法) 3.如何操作权限 3.1改变权限的命令操作 chmod #change ...