ansible debugger 模块
在搞TF(tungstenfabric)时遇到了一些错误,TF通过ansible playbook 来部署的。通常情况下遇到错误都是通过ansibale xxxx –vvv 来详细输出一下。出错的类型如果使某个命令或者代码 还是比较好处理的。如果错误是一个运行中获取的变量就比较麻烦,因为你也不知道应该是什么或者当前的值是什么如果可以动态调试就好好办了。debugger模块就是干这个事情的
debugger模块参数值
always:
无论结果如何,始终调用调试器
never:
无论结果如何,都不要调用调试器
on_failed:
仅在任务失败时才调用调试器
on_unreachable:
仅当主机不可访问时才调用调试器
on_skipped:
仅当跳过任务时才调用调试器
调试测试
1 ---
2 - name: Ensuring config directories exist
3 debugger: always #debugger关键字:出发debug条件
4 file:
5 path: "{{ node_config_directory }}/{{ item }}"
6 state: "directory"
7 owner: "{{ config_owner_user }}"
8 group: "{{ config_owner_group }}"
9 mode: "0770"
10 become: true
11 with_items:
12 - "memcached"
开始跑playbook
查看当前执行的TASK任务
TASK [memcached : include_tasks] *******************************************************************
included: /root/deploy/contrail-kolla-ansible/ansible/roles/memcached/tasks/config.yml for 10.49.252.201
TASK [memcached : Ensuring config directories exist] ***********************************************
ok: [10.49.252.201] => (item=memcached)
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> task
TASK: memcached : Ensuring config directories exist
查看当前TASK需要的变量
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> p task.args
{u'group': u'{{ config_owner_group }}',
u'mode': u'0770',
u'owner': u'{{ config_owner_user }}',
u'path': u'{{ node_config_directory }}/{{ item }}',
u'state': u'directory'}
红色的就是动态获取的变量
获取指定变量(p task_vars['config_own er_group'])
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> p task_vars['config_own er_group']
u'root'
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> p task_vars['node_confi g_directory']
u'/etc/kolla/{{ project }}'
获取所有的动态变量,我这里会有很多只截取部分
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> p task_vars
{u'TSN_EVPN_MODE': False,
u'action': u'deploy',
u'admin_protocol': u'http',
u'analytics_api_ssl_enable': False,
u'ansible_all_ipv4_addresses': [u'10.49.252.201',
u'192.168.100.1',
u'172.17.0.1'],
………………………………………………….
获取当前task运行结果
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> p result._result
{'changed': False,
'msg': u'All items completed',
'results': [{'_ansible_ignore_errors': None,
'_ansible_item_result': True,
'_ansible_no_log': False,
'_ansible_parsed': True,
u'changed': False,
u'diff': {u'after': {u'path': u'/etc/kolla//memcached'},
u'before': {u'path': u'/etc/kolla//memcached'}},
'failed': False,
u'gid': 0,
u'group': u'root',
u'invocation': {u'module_args': {u'attributes': None,
u'backup': None,
u'content': None,
u'delimiter': None,
u'diff_peek': None,
u'directory_mode': None,
u'follow': True,
u'force': False,
u'group': u'root',
u'mode': u'0770',
u'original_basename': None,
u'owner': u'root',
u'path': u'/etc/kolla//memcached',
u'recurse': False,
u'regexp': None,
u'remote_src': None,
u'selevel': None,
u'serole': None,
u'setype': None,
u'seuser': None,
u'src': None,
u'state': u'directory',
u'unsafe_writes': None,
u'validate': None}},
'item': u'memcached',
u'mode': u'0770',
u'owner': u'root',
u'path': u'/etc/kolla//memcached',
u'secontext': u'unconfined_u:object_r:etc_t:s0',
u'size': 6,
u'state': u'directory',
u'uid': 0}]}
修改key对应的值
修改变量赋值
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> task_vars['path'] = '/etc/kolla//memcached1'
我们再次查看值是否改变
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> p task_vars['path']
'/etc/kolla//memcached1
重新redo即可
[10.49.252.201] TASK: memcached : Ensuring config directories exist (debug)> redo
ok: [10.49.252.201] => (item=memcached)
ansible debugger 模块的更多相关文章
- ansible服务模块和组模块使用
本篇文章主要是介绍ansible服务模块和组模块的使用. 主要模块为ansible service module和ansible group moudle,下面的内容均是通过实践得到,可以直接运行相关 ...
- ansible常用模块用法
ansible常用模块用法 2015-07-21 10:25 24458人阅读 评论(1) 收藏 举报 分类: Linux(44) ansible 版权声明:本文为博主原创文章,未经博主允许不得 ...
- Linux之ansible 常用模块
目的 代码发布系统 代码发布:把本地的代码通过某些方式弄到线上,可以供别人访问 部署 前戏 ansible 批量在远程主机上执行命令 puppet ruby ansible saltstack pyt ...
- Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken
Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...
- Ansible常用模块命令
Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...
- ansible 常用模块的使用
安装 yum -y install ansible 配置文件/etc/ansible/hosts 模块介绍与使用 ping模块 [root@node1 config]# ansible k8s -m ...
- Ansible 常见模块介绍
目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...
- Ansible 常用模块(一)
一.Ansible简介 Ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet(ruby).cfengine.chef.func.fabric.)的优点,实现了 ...
- ansible核心模块playbook介绍
ansible的playbook采用yaml语法,它简单地实现了json格式的事件描述.yaml之于json就像markdown之于html一样,极度简化了json的书写.在学习ansible pla ...
随机推荐
- MSSQL复制表数据及表结构
目标表存在: insert into 目标表 select * from 原表 目标表不存在: select * into 目标表 from 原表 复制表结构 select * into 目标表 fr ...
- Linux里使用rz和sz命令
lrzsz是一个unix通信套件提供的X,Y,和ZModem文件传输协议,官网:http://freecode.com/projects/lrzsz/ windows 需要向centos服务器上传文件 ...
- Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解
Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解 题目地址:https://codingcompetitions.withgoogle.com/kickstar ...
- Hyper-V中安装CentOS7设置静态ip并且可以连接外网
https://blog.csdn.net/xj19940904/article/details/89165002 https://blog.csdn.net/u011598235/article/d ...
- mysql 排序长度限制之max_length_for_sort_data以及mysql两种排序算法
SET max_length_for_sort_data = 1024 SHOW VARIABLES LIKE '%max_length_for_sort_data%'; 查询:SELECT * FR ...
- JS实现统一社会信用代码的效验(组织机构代码效验)
参考原文https://blog.csdn.net/hdhxby/article/details/56015370 部分错误,修改整合了下 想查询数据的,请点击:统一信用代码查询地址 查看效验规则点击 ...
- AWS研究热点:BMXNet – 基于MXNet的开源二进神经网络实现
http://www.atyun.com/9625.html 最近提出的二进神经网络(BNN)可以通过应用逐位运算替代标准算术运算来大大减少存储器大小和存取率.通过显着提高运行时的效率并降低能耗,让最 ...
- [转]Vue中用props给data赋初始值遇到的问题解决
原文地址:https://segmentfault.com/a/1190000017149162 2018-11-28更:文章发布后因为存在理解错误,经@Kim09AI同学提醒后做了调整,在此深表感谢 ...
- BGP MPLS IP V匹N基本概念
BGP/MPLS IP VPN基本概念 Site 在介绍VPN时经常会提到"Site",Site(站点)的含义可以从下述几个方面理解: · Site是指相互之间具备IP连通性的一组 ...
- SpringBoot入门-JPA(三)
什么是JPA JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. pom.xml <par ...