Ansible配置文件ansible.cfg详解

栏目: 服务器 · 发布时间: 5年前

内容简介:Ansible是一个系列文章,我会尽量以通俗易懂、诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些。Ansible系列博文直达链接:Ansible入门系列此时外面小雨淅淅沥沥的下着,周末,慵懒的周末,无聊到极点才打开电脑,回头一看,都有小半个月没有看技术书籍了,颓废就像洪水一样,泛滥到无可收拾。技术人,一天不看技术,都会感到空虚,但是最近生活的打击一个接一个,让人措手不及,防不胜防;工作中的忙碌,让自己就像无头苍蝇一样,到处乱撞。

Ansible是一个系列文章,我会尽量以通俗易懂、诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些。

Ansible系列博文直达链接:Ansible入门系列

前言

此时外面小雨淅淅沥沥的下着,周末,慵懒的周末,无聊到极点才打开电脑,回头一看,都有小半个月没有看技术书籍了,颓废就像洪水一样,泛滥到无可收拾。技术人,一天不看技术,都会感到空虚,但是最近生活的打击一个接一个,让人措手不及,防不胜防;工作中的忙碌,让自己就像无头苍蝇一样,到处乱撞。

继续自己的博客之路,近期准备将Ansible相关的内容整理一下,和大家分享。

优先级说明

熟悉 Linux 运维的同学,对于这个就非常有经验了。在Linux中,基本上99%的软件都有一个配置文件,而这些配置文件中配置了这些软件的运行方式等一些属性。同时,根据存放位置的不同,同一个软件,同样的配置文件的使用优先级也是不一样的。在Ansible中,它的配置文件是一个名为 ansible.cfg 的配置文件,ansible.cfg配置文件是以ini格式存储配置数据的。但是ansible.cfg配置文件可以存放在不同的目录,但只有一个可用,在运行Ansible命令时,Ansible将会按照预先设定的顺序查找配置文件,检查到哪个就用哪个。Ansible预先设定的优先级顺序如下:

  • ANSIBLE_CFG :首先,Ansible命令会先检查环境变量,及这个环境变量将指向的配置文件;
  • ./ansible.cfg :其次,将会检查当前目录下的ansible.cfg配置文件;
  • ~/.ansible.cfg :再次,将会检查当前用户home目录下的 .ansible.cfg 配置文件;
  • /etc/ansible/ansible.cfg :最后,将会检查在安装Ansible时自动生产的配置文件。

几乎所有的配置项都可以通过Ansible的playbook或环境变量来重新赋值,所以当你怎么都不知道这个变量在哪里定义的时候,不妨去看看环境变量里看看。根据我这么多年的运维经验来说,我建议使用 ~/.ansible.cfg 作为配置文件使用,这样就可以实现每个用户都有自己独自的配置文件,不污染其它用户正常使用Ansible,同时也方便进行选项配置。

由于Ansible本身没有服务的概念,所以只要配置修改后配置将马上生效。

配置选项详解

到目前为止,我还没有见到一个配置项超级少,配置超级简单的配置文件;同样的,Ansible的配置文件也不简单,配置项超级多;但是,二八法则同样也适用于这些配置文件,20%的配置项决定了80%的功能,只有那20%的配置项是我们需要去关心的。所以,大家不要害怕,下面我们就将这20%常用的选项进行一一说明和总结。

  • defaults配置
    配置项 说明 默认值
    inventory ansible inventory文件路径 /etc/ansible/hosts
    library ansible模块文件路径 /usr/share/my_modules/
    remote_tmp ansible远程主机脚本临时存放目录 ~/.ansible/tmp
    local_tmp ansible管理节点脚本临时存放目录 ~/.ansible/tmp
    forks ansible执行并发数 5
    poll_interval ansible异步任务查询间隔 15
    sudo_user ansible sudo用户 root
    ask_sudo_pass 运行ansible是否提示输入sudo密码 True
    ask_pass 运行ansible是否提示输入密码 True
    transport ansible远程传输模式 smart
    remote_port 远程主机SSH端口 22
    module_lang ansible模块运行默认语言环境 C
    gathering facts信息收集开关定义 smart
    roles_path ansible role存放路径 /etc/ansible/roles
    timeout ansible SSH连接超时时间 10
    remote_user ansible远程认证用户 root
    log_path ansible日志记录文件 /var/log/ansible.log
    module_name ansible默认执行模块 command
    executable ansible命令执行shell /bin/sh
    hash_behaviour ansible主机变量重复处理方式 replace
    private_role_vars 默认情况下,角色中的变量将在全局变量范围中可见。 为了防止这种情况,可以启用以下选项,只有tasks的任务和handlers得任务可以看到角色变量 yes
    vault_password_file 指定vault密码文件路径
    ansible_managed 定义的一个Jinja2变量,可以插入到Ansible配置模版系统生成的文件中 Ansible managed
    display_skipped_hosts 开启显示跳过的主机 True
    error_on_undefined_vars 开启错误,或者没有定义的变量 False
    action_plugins ansible action插件路径
    cache_plugins ansible cache插件路径
    callback_plugins ansible callback插件路径
    connection_plugins ansible connection插件路径
    lookup_plugins ansible lookup插件路径
    inventory_plugins ansible inventory插件路径
    vars_plugins ansible vars插件路径
    filter_plugins ansible filter插件路径
    terminal_plugins ansible terminal插件路径
    strategy_plugins ansible strategy插件路径
    fact_caching 定义ansible facts缓存方式 memory
    fact_caching_connection 定义ansible facts缓存路径
  • privilege_escalation配置
    配置项 说明 默认值
    become 是否开启become模式 True
    become_method 定义become方式 sudo
    become_user 定义become方式 root
    become_ask_pass 是否定义become提示密码 False

总结

通过一个软件的配置文件,我们大体能知道这个软件支持的功能,就像我们在阅读源码一样,熟悉了目录结构后,就是开始阅读配置文件。这篇文章对Ansible的功能配置文件 ansible.cfg 进行了一个整体的总结,同时也对一些常用的配置选项进行了重点说明。这里说的配置项虽然都是一些简单的内容点,但是却是后续学习的基础和根本,希望大家对这里的配置选项有一个整体的记忆和印象,在后续的学习中,可以快速的回忆起这些内容。最后,如果觉的还不错,可以点击下方的“打赏”哦。

果冻想,认真玩技术的地方。

2019年6月15日,于内蒙古呼和浩特。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

一目了然

一目了然

Robert Hoekman, Jr. / 段江玲 / 机械工业出版社华章公司 / 2012-3-19 / 59.00元

可用性或易用性是软件或Web设计师的重要设计目标之一。本书深入阐述了如何设计出简单易用的基于Web的软件,以帮助读者理解、掌握显性设计的精髓。作者从软件开发初期谈起,一直到软件设计后期,分析诸多案例并论证了自己的见解或设计原则。本书在第1版的基础上进行了重大改进,尤其是在设计思想上,作者在本书中谈到“以用户为中心的设计”、“以任务为中心的设计”以及“以情景为中心的设计”的理念。这种设计理念也将更直......一起来看看 《一目了然》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具