惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

Yee's Blog

腾讯云/轻量云 安装ArchLinux的个人记录 记录我的联想M720Q Arch Sway窗口管理器的安装和配置过程 Jenkins Linux安装 腾讯课堂、钉钉在线网课视频直播回放下载离线播放 Ceph块设备对RBD块设备操作LVM创建PV时报错 Ceph映射RBD块设备 2020年9月26日前端部门Vue考核 2020年9月26日后端部门Python考核 Nginx反向代理下载传输超过1G大文件时断开问题 Windows Server 2019 Datacenter M720q 安装记录 Ceph块设备基础及快照、克隆操作 从Ceph集群中删除OSD节点 Centos8配置 chrony NTP服务端及客户端 搭建Ceph集群 Ceph硬件准备 OSD与Pool池的常见操作及管理 Ceph用户管理 MacOS睡眠管理——让你的Mac睡的更香 初中古诗文必背篇目 Ansible 技巧之场 Ansible 包含和导入文件 Ansible 学习文档 Ansible 主机模式 Ansible 角色 Splunk数据搜索和报表 Ansible 常用模块 Ansible 变量和事实 Ansible 任务控制 Ansible Playbook Ansible 基础概念
Ansible 调整连接数
本文作者: YeeFire · 2020-06-16 · via Yee's Blog

调整连接数forks

Ansible在处理Playbook时会按照顺序运行每一个play。确定受管主机列表后,Ansible将按照顺序在受管主机上运行任务。通常只有会在全部受管主机完成当前任务后才会继续往下执行其他任务。

Ansible可以同时连接到play中的所有主机以执行每项任务,这种方式适用于小规模的主机列表。如果对着数百台受控主机同时进行操作的话,控制节点会面临着巨大的性能压力。

所以,为了避免这种情况发生导致控制节点压力过大或出现异常,Ansible在执行任务时默认最大连接数为5。这个默认值是由Ansible配置文件中的forks参数控制。如果你的控制节点性能强劲,你可以在配置文件中手动配置该参数调整为更大的数值,这样在执行任务时可以同时连接到更多的受控节点,进而加快任务的执行速度。

[defaults]
inventory=inventory
remote_user=devops
forks=5

当然ansibleansible-playbook命令都提供了-f--forks选项来覆盖ansible在配置文件中读取到的forks值。

分批次完成任务

通常情况下Ansible会在执行下一个任务前,要求全部的受控主机都完成当前的任务。但是要求全部的主机同时完成某一个任务可能会带来麻烦,特别是在处理Web负载均衡的机器时,如果任务要求集群内的全部主机同时重启Web服务,那么业务就会中断。所以在playbook中使用serial关键字可以解决这个问题,它能够控制play批量的完成任务,而不是让全部主机同时都完成一个任务。

下面的例子是使用serial关键字来控制一批只能2台受控主机完成这个Play,假设我们一共有6台机器,那么剩下的四台机器分别要等前面的两台受控主机执行完成全部的Play后才会完成到它们执行Play,6台节点两两一组,分批次执行任务。这样不会导致我们的业务因为重启全部的机器而终止。

---
- name: Update web server
hosts: webservers
serial: 2
tasks:
- name: Latest version of apache installed
yum:
name: httpd
state: latest
notify:
- Restart apache

handlers:
- name: Restart apache
service:
name: httpd
enabled: yes
state: restarted
...

serial关键字也可以设置为百分比。此百分比应用于该play中主机的总数,已确定每次批量执行play的主机个数。