Ansible配置文件

本文详细介绍了Ansible的配置文件设置,包括管理配置、连接设置、特权升级和构建Ansible清单。讲解了Ansible如何选择配置文件,如何指定连接方式和用户,以及如何使用临时命令和模块执行任务。还涵盖了配置文件中的注释、清单管理和运行命令的相关内容。
摘要由CSDN通过智能技术生成

Ansible配置文件

可以通过修改 Ansible 配置文件中的设置来自定义 Ansible安装的行为。
Ansible从控制节点上多个可能的位置之一选择其配置文件。

ansible的配置文件名为ansible.cfg,默认会在四个地方(根据高/低优先级排序——从1到4):

  1. ANSIBLE_CONFIG:Ansible命令会优先检查该环境变量以及这个环境变量指向的配置文件
    Export 环境变量:设置环境变量
    Unset 环境变量: 取消环境变量
  2. ./ansible.cfg:当前工作目录,即当前执行ansible指令的目录,如果ANSIBEL_CONFIG环境变量(上一优先级配置文件)未定义,则优先使用该配置文件
  3. ~/.ansible.cfg:用户家目录下的隐藏文件,若当前工作目录下不存在ansible.cfg配置文件(上一优先级目录中的文件),则会查找用户家目录下的该隐藏文件
  4. /etc/ansible/ansible.cfg:默认配置文件,如果上面两个路径下的ansible.cfg都不存在,则使用该文件

由于Ansible配置文件可以放入的位置有多种,因此Ansible当前使用哪一个配置文件可能会令人困惑。我们可以运行以下命令来清楚地确认所安装的Ansible版本以及正在使用的配置文件。

[root@ansible ~]# ansible --version 
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
………………

管理配置文件中的设置

Ansible配置文件由几个部分组成,每一部分含有以键值对形式定义的设置。部分的标题以中括号括起来。对于基本操作,请使用以下两部分:

[defaults]部分设置Ansible操作的默认值
[privilege_escalation]配置Ansible如何在受管主机上执行特权升级
例如,下面是典型的ansible.cfg文件:

[defaults]
inventory = ./inventory
remote_user = user
ask_pass = true
 
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false

下表说明了此文件中的指令:
Ansible配置

指令 描述
inventory 指定清单文件的路径
remote_user 要在受管主机上登录的用户名。如果未指定则使用当前用户名
ask_pass 是否提示输入SSH密码。
become 连接后是否自动在受管主机上切换用户(通常切换为root)这也可以通过play来指定。
become_method 如何切换用户(通常为sudo,这也是默认设置,但可选择su)
become_user 要在受管主机上切换到的用户(通常是root,这也是默认值)
become_ask_pass 是否需要为become_method提示输入密码。默认为false。

配置连接

Ansible需要知道如何与其受管主机通信。更改配置文件的一个最常见原因是为了控制Ansible使用什么方法和用户来管理受管主机。需要的一些信息包括:

  • 列出受管主机和主机组的清单的位置
  • 要使用哪一种连接协议来与受管主机通信(默认为SSH),以及是否需要非标准网络端口来连接服务器
  • 要在受管主机上使用哪一远程用户;这可以是root用户或者某一非特权用户
  • 如果远程用户为非特权用户,Ansible需要知道它是否应尝试将特权升级为root以及如何进行升级(例如,通过sudo)
  • 是否提示输入SSH密码或sudo密码以进行登录或获取特权

清单位置

在[defaults]部分中,inventory指令可以直接指向某一静态清单文件,或者指向含有多个静态清单文件和动态清单脚本的某一目录。

[defaults]
inventory = ./inventory

连接设置

默认情况下,Ansible使用SSH协议连接受管主机。控制Ansible如何连接受管主机的最重要参数在[defaults]部分中设置。

默认情况下,Ansible尝试连接受管主机时使用的用户名与运行ansible命令的本地用户相同。若要指定不同的远程用户,请将remote_user参数设置为该用户名。

如果为运行Ansible的本地用户配置了SSH私钥,使得它们能够在受管主机上进行远程用户的身份验证,则Ansible将自动登录。如果不是这种情况,可以通过设置指令ask_pass = true,将Ansib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值