Ansible是一个系列文章,我会尽可能以通俗易懂、诙谐幽默的总结方式给你们呈现这些枯燥的知识点,让学习变的有趣一些。shell
此时外面小雨淅淅沥沥的下着,周末,慵懒的周末,无聊到极点才打开电脑,回头一看,都有小半个月没有看技术书籍了,颓废就像洪水同样,泛滥到无可收拾。技术人,一天不看技术,都会感到空虚,可是最近生活的打击一个接一个,让人措手不及,防不胜防;工做中的忙碌,让本身就像无头苍蝇同样,处处乱撞。编程
继续本身的博客之路,近期准备将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日,于内蒙古呼和浩特。
从最基础的编程语法,到高深的编程技巧;从最简单的学习计划,到长远的职业规划;果冻想分享的不只仅是一篇文章,更多的是对编程的挚爱和执着,对人生的享受和理解;无论你是IT菜鸟,仍是编程老手,“果冻想”都值得你关注。