热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

8.0Ansible配置文件

概览控制Ansible行为的方式有很多,基本分为如下4种:配置文件命令行参数playbook关键词变量比如主机清单位置,默认是etc

概览

控制Ansible行为的方式有很多,基本分为如下4种:

  1. 配置文件
  2. 命令行参数
  3. playbook关键词
  4. 变量

比如主机清单位置,默认是/etc/ansible/hosts,也可以通过命令行参数- i更改,也可以通过修改配置文件更换默认主机清单位置;playbook里可以控制执行用户,在主机变量里也可以控制

上面4种配置方法,优先级从低到高,简单来说就是后面定义的内容会覆盖前面的,配置文件的优先级是最低的,本篇文章重点说一说Ansible常用的一些配置项

配置文件路径

Ansible按照下面的顺序寻找配置文件,首先找到的被使用,不再进行后续查找(即被忽略)

  1. ANSIBLE_CONFIG 环境变量
  2. ansible.cfg 当前路径
  3. ~/.ansible.cfg 家目录
  4. /etc/ansible/ansible.cfg

如果我们希望测试一份配置文件,而不想影响其它配置文件,可以像下面这样

ANSIBLE_CONFIG=/tmp/ansible.cfg ansible all -m ping
#这种情况变量 ANSIBLE_CONFIG ,仅仅对当前这一行命令生效

配置文件注释

分为两种情况

1 注释书写在开头部分(顶格写或者前面是空格),使用 #;

# cat /etc/ansible/ansible.cfg
# config file for ansible -- https://ansible.com/
# ===============================================# nearly all parameters can be overridden in ansible-playbook
...

2 注释在中间,只能使用; (不太常用)

cat /etc/ansible/ansible.cfg
...
inventory = /etc/ansible/hosts ; This points to the file that lists your hosts
...

配置的基本格式

如果是全新安装,可以参考cat /etc/ansible/ansible.cfg;该配置文件的线上地址是https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg,其基本格式如下

# 注释
# 注释
# 下面这个 [defaults] 是分组名称
[defaults]
inventory = /etc/ansible/hosts
#library = ~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules[inventory]
# List of enabled inventory plugins and the order in which they are used.
#enable_plugins = host_list, script, auto, yaml, ini, toml

ansible-config

ansible的配置项有很多,不同ansible版本配置项略有不同,绝大多数无需关注,不用更改。最方便的得知我们当前安装的ansible版本有哪些可用的配置项,是使用ansible-config命令

  • 查看帮助

[root@192_168_31_106 ~]# ansible-config -h
usage: ansible-config [-h] [--version] [-v] {list,dump,view} ...View ansible configuration.positional arguments:{list,dump,view}list Print all config optionsdump Dump configurationview View configuration fileoptional arguments:--version show program's version number, config file location,configured module search path, module location, executablelocation and exit-h, --help show this help message and exit-v, --verbose verbose mode (-vvv for more, -vvvv to enable connectiondebugging)

  • 查看全部可用配置项

ansible-config list

比如我们想要更改默认主机清单的位置,可以搜索inventory关键词,查看帮助,示例如下
在这里插入图片描述

  • 导出当前配置文件(如果需要进行必要的合并)

ansible-config dump[root@192_168_31_106 ~]# ansible-config dump > /tmp/tmp.txt && fgrep '/etc/ansible' /tmp/tmp.txt
DEFAULT_FORKS(/etc/ansible/ansible.cfg) = 20
DEFAULT_HOST_LIST(default) = [u'/etc/ansible/hosts']
DEFAULT_ROLES_PATH(default) = [u'/root/.ansible/roles', u'/usr/share/ansible/roles', u'/etc/ansible/roles']

参考常用配置项

全部配置项可以使用上文ansible-config命令得到,也可以直接到官方文档里查看(见文章最后的参考资料),下面介绍一下常用的配置项

  • defaults 分组下常用配置

一个示例
在这里插入图片描述

#1 主机清单的位置,还可以设置成目录,此时目录里的文件名不关键,主要是文件里内容中括号的部分,作为机器分组的名称
inventory = /etc/ansible/hosts
比如说,我们可以有下面的目录结构
# tree inventory
├── web
├── golang
├── griddns
├── group_vars
│   ├── admin5_php-fpm_bx.yml
│   ├── admin5_php-fpm_yf3.yml
│   ├── all.yml
│   ├── bt_ctorrent_bx.yml
│   ├── bt_hwraid_bx.yml
│   ├── ceph_bx.yml
│   ├── ceph_dbl.yml
├── host_vars
│   ├── 10.13.32.100.yml
│   ├── 10.13.32.101.yml
│   ├── 10.13.32.102.yml
│   ├── 10.13.32.103.yml
│   ├── 10.13.32.104.yml
│   ├── 10.13.32.110.yml#2 并发执行的数量
forks = 5#3 目标机器的SSH端口
remote_port = 26387#4 角色查找路径
roles_path = /usr/local/myansible/roles#5 SSH连接超时时间
timeout = 10

参考资料

https://docs.ansible.com/ansible/latest/reference_appendices/config.html
https://docs.ansible.com/ansible/latest/cli/ansible-config.html
https://docs.ansible.com/ansible/latest/reference_appendices/general_precedence.html


推荐阅读
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • 本文介绍了Python字典视图对象的示例和用法。通过对示例代码的解释,展示了字典视图对象的基本操作和特点。字典视图对象可以通过迭代或转换为列表来获取字典的键或值。同时,字典视图对象也是动态的,可以反映字典的变化。通过学习字典视图对象的用法,可以更好地理解和处理字典数据。 ... [详细]
  • 广度优先遍历(BFS)算法的概述、代码实现和应用
    本文介绍了广度优先遍历(BFS)算法的概述、邻接矩阵和邻接表的代码实现,并讨论了BFS在求解最短路径或最短步数问题上的应用。以LeetCode中的934.最短的桥为例,详细阐述了BFS的具体思路和代码实现。最后,推荐了一些相关的BFS算法题目供大家练习。 ... [详细]
  • 判断编码是否可立即解码的程序及电话号码一致性判断程序
    本文介绍了两个编程题目,一个是判断编码是否可立即解码的程序,另一个是判断电话号码一致性的程序。对于第一个题目,给出一组二进制编码,判断是否存在一个编码是另一个编码的前缀,如果不存在则称为可立即解码的编码。对于第二个题目,给出一些电话号码,判断是否存在一个号码是另一个号码的前缀,如果不存在则说明这些号码是一致的。两个题目的解法类似,都使用了树的数据结构来实现。 ... [详细]
  • 文章目录题目:二叉搜索树中的两个节点被错误地交换。基本思想1:中序遍历题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下 ... [详细]
  • https:github.comdarcyclarkeFront-end-Developer-Interview-QuestionstreemasterChinese#refere ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
author-avatar
E-sc68
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有