前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Ansible

作者头像
陳斯托洛夫斯記
发布2022-10-27 15:39:28
7560
发布2022-10-27 15:39:28
举报
文章被收录于专栏:XBDXBD

安装

ansible需要epel源,需要先安装epel源

代码语言:javascript
复制
yum install epel-release
yum install ansible

配置

配置ansible的主机清单列表,把受控主机的IP加入到清单中

代码语言:javascript
复制
vim /etc/ansible/hosts

172.10.0.18

完成上面的配置后,使用下面的命令,去ping对应的主机,发现会报错。

172.10.0.18主机不可达,ansible是基于ssh的,ansible不知道172.10.0.18这台主机的用户名和密码,所以ansible无法连接到它。 我们可以在清单文件中加入对应主机的用户名和密码,也可以基于密钥的方式

  • 以用户名和密码的方式
代码语言:javascript
复制
vim /etc/ansible/ansible.cfg
	host_key_checking = False	# 取消注释,关闭ssh key验证

vim /etc/ansible/hosts			# 配置服务器密码
172.10.0.18 ansible_ssh_user=root ansible_ssh_pass=123456 ansible_ssh_port=22

受控主机的信息已经配置完毕,在执行下刚才的命令

命令成功执行

  • 以密钥的方式
代码语言:javascript
复制
ssh-keygen			# 先在ansible主机上生成密钥
ssh-copy-id 172.10.0.18		# 在把公钥复制到受控主机上

在清单文件中,删除刚才配置的ssh信息,只保留IP地址即可,如果端口不是默认的22,还需要保留并修改端口配置。

优化

关闭gathering_facts

ansible-playbook的第一个步骤总是执行gathering facts,关闭之后,可以加快playbook的执行效率

代码语言:javascript
复制
vim ansible-playbook.yml
---
- hosts: HOST
  gather_facts: no 		# 在playbook中添加此行

ssh pipelining

ssh pipelining是一个加速ansible执行速度的插件,ssh pipelining默认是关闭的,之所以默认关闭是为了兼容不同的sudo配置,主要是requiretty选项,如果不使用sudo,建议开启,打开此选项,可以减少ansible执行没有传输时ssh在被控机器上执行任务的连接数,不过,如果使用sudo,就必须关闭requiretty选项

代码语言:javascript
复制
vim /etc/ansible/ansible.cfg
	pipelining = True 	# 改为True

显示playbook执行每一步所花费的时间

代码语言:javascript
复制
1. 下载插件
https://github.com/jlafon/ansible-profile

2. 创建目录
在playbook目录下创建一个callback_plugins的目录,然后把下载的profile_tasks.py放到该目录下

3. 执行playbook
在执行playbook命令就会看到每一个tasks的执行时间
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 配置
  • 优化
    • 关闭gathering_facts
      • ssh pipelining
        • 显示playbook执行每一步所花费的时间
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档