Ansible部署

一、管理Ansible配置文件

清单文件位置

系统默认的清单文件位置是/etc/ansible/hosts,通常我们不使用该文件,而是在Ansible配置文件中为清单定义一个不同的位置。

[root@client ansible]# vim ansible.cfg 
#inventory      = /etc/ansible/hosts
inventory      = /etc/ansible/inventory		#资源清单inventory文件的位置

ansible配置文件设置
Ansible配置文件由几个部分组成,每一部分含有以键值对形式定义的设置。

  • [defaults] 部分设置Ansible操作的默认值
  • [privilege_escalation] 配置Ansible如何在受管主机上执行特权升级
#常见的参数
[defaults]
inventory = /etc/ansible/hosts		#指定清单路径
library = /usr/share/my_modules/		#指向存放ansible模块的路径
forks = 5		#开发连接数
sudo_user = root	#设置默认执行命令的用户
remote_port = 22		#指定连接被管节点的管理端口,默认为22端口

[privilege_escalation]
become = true	#连接后是否自动在受管主机上切换用户
become_method = sudo	#如何切换用户,默认sudo
become_user = root	#要在受管主机上切换到的用户,默认root
become_ask_pass = false	#是否需要为become_method提示输入密码,默认false

Ansible命令

ansible命令执行状态:

  • 绿色:执行成功并且不需要做改变
  • 黄色:执行成功并且对目标主机做更改
  • 红色:执行失败
[root@client ansible]# ansible -h
Usage: ansible <host-pattern> [options]
Options:
  -a MODULE_ARGS, --args=MODULE_ARGS    #模块的参数,如果执行默认COMMAND的模块
					module arguments	#m模块参数
  --list-hosts     #显示主机列表,可简写-list
  -m MODULE_NAME, --module-name=MODULE_NAME   #执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数
  -U SUDO_USER, --sudo-user=SUDO_USER    #sudo到哪个用户,默认为 root 
  --version             show program's version number and exit   #输出ansible的版本
  -v, --verbose         verbose mode (-vvv for more, -vvvv to enable connection debugging)		#详细信息
  -h, --help            show this help message and exit   #打开帮助文档API
  -k, --ask-pass        ask for SSH password  #登录密码,提示输入SSH密码而不是假设基于密钥的验证

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

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

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

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

如果运行Ansible的本地用户配置了SSH私钥,使得他们能够在受管主机上进行远程用户的身份验证,则Ansible将自动登录。如果没有配置私钥,可以通过指令ask_pass = true,将Ansible配置为提示本地用户输入由远程用户使用的密码。

remote_user = root
ask_pass = true

升级特权
鉴于安全性和审计原因,Ansible可能需要先以非特权用户身份连接远程主机,然后再通过特权升级获得root用户身份的管理权限。这可以在Ansible配置文件的[privilege_escalation]部分中设置。

要默认启用特权升级,可以在配置文件中设置指令b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值