内容简介: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日,于内蒙古呼和浩特。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Uberland
Alex Rosenblat / University of California Press / 2018-11-19 / GBP 21.00
Silicon Valley technology is transforming the way we work, and Uber is leading the charge. An American startup that promised to deliver entrepreneurship for the masses through its technology, Uber ins......一起来看看 《Uberland》 这本书的介绍吧!