当前位置: 首页 > news >正文

网站视觉优化的意义线上培训

网站视觉优化的意义,线上培训,微信网页,wordpress 标题 搜索写在前面 理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡…

写在前面


  • 理解不足小伙伴帮忙指正

傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波

Ansible的滚动更新

关于什么是滚动更新

通常,当Ansible运行play时,它会确保所有受管主机在启动任何主机进行下一个任务之前已完成每个任务。在所有受管主机完成所有任务后,运行通知的 handles 程序。

在所有主机上运行所有任务可能会导致意外行为。例如,在更新 Web 负载均衡器,如果同时更新所有Web服务器、可能会导致所有Web服务器停眼务。

Ansible支持滚动更新-一将一大批主机分批次更新,这样的好处:

  • 同一时刻只有部分服务器在更新,其他服务器仍然可以对外提供服务。
  • 如果这一批次服务器更新失败,其他服务器仍然可以对外提供服务。

所以一般建议在更新的剧本中配置:

  • 监视更新过程,测试更新结果。
  • 如果更新失败,隔离受影响的主机,以分析失败的部署,或者回滚受影响批次中主机配置。
  • 将部署结果发送给相关人员。

控制批处理大小

默认情况下,Ansible会在开始执行下一个任务之前,需要对Play中所有主机完成前一个任务。如果某一任务失败,则所有主机将只有一部分通过该任务。意味着任何主机都无法正常工作,可能会导致中断。理想情况下,在启动下一批主机之前,需要全部成功通过Play,如果有太多主机失败,则可以中止整个Play。

设置固定的批处理大小

在Play 中使用 serial 关键字来指定每个批处理中应当有多少个主机。

在开始下一批主机之前,Ansible 将全程通过Play处理每一批主机,如果当前批处理中的所有主机都失败,则整个Play 将中止,且 Ansible 不会启动下一批次处理。

[student@workstation task-execution]$ cat serial.yaml
---
- name: 滚动更新hosts: allserial: 2tasks:- name: update webshell: sleep 2
[student@workstation task-execution]$ ansible-playbook  serial.yamlPLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [servera]
ok: [serverb]TASK [update web] ********************************************************************************************
changed: [servera]
changed: [serverb]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [serverd]
ok: [serverc]TASK [update web] ********************************************************************************************
changed: [serverc]
changed: [serverd]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [servere]
ok: [serverf]TASK [update web] ********************************************************************************************
changed: [servere]
changed: [serverf]PLAY RECAP ***************************************************************************************************
servera                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverb                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverc                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverd                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
servere                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverf                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

在上面示例中,serial 关键字指定Ansible在两个主机的批处理中处理 web_servers 主机组中的主机。如果play正常执行且没有错误,则使用新的批处理再次重复该 play。

如果play中的主机总数不能被批处理大小整除,则最后一个批处理包含的主机可能比serial 关键字的指定值更少。serial关键字中使用整数。

将批处理大小设置为百分比

还可以为 serial 关键字设置为百分比:

[student@workstation task-execution]$ cat serial.yaml
---
- name: 滚动更新hosts: allserial: 25%tasks:- name: update webshell: sleep 2
[student@workstation task-execution]$ ansible-playbook  serial.yamlPLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [servera]TASK [update web] ********************************************************************************************
changed: [servera]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [serverb]TASK [update web] ********************************************************************************************
changed: [serverb]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [serverc]TASK [update web] ********************************************************************************************
changed: [serverc]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [serverd]TASK [update web] ********************************************************************************************
changed: [serverd]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [servere]TASK [update web] ********************************************************************************************
changed: [servere]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [serverf]TASK [update web] ********************************************************************************************
changed: [serverf]PLAY RECAP ***************************************************************************************************
servera                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverb                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverc                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverd                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
servere                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverf                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0[student@workstation task-execution]$

每个批次分别设置

[student@workstation task-execution]$ cat serial.yaml
---
- name: 滚动更新hosts: allserial:- 25%- 3- 100%tasks:- name: update webshell: sleep 2
[student@workstation task-execution]$
[student@workstation task-execution]$ vim  serial.yaml
[student@workstation task-execution]$ ansible-playbook  serial.yamlPLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [servera]TASK [update web] ********************************************************************************************
changed: [servera]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [serverc]
ok: [serverb]
ok: [serverd]TASK [update web] ********************************************************************************************
changed: [serverb]
changed: [serverc]
changed: [serverd]PLAY [滚动更新] **************************************************************************************************TASK [Gathering Facts] ***************************************************************************************
ok: [servere]
ok: [serverf]TASK [update web] ********************************************************************************************
changed: [servere]
changed: [serverf]PLAY RECAP ***************************************************************************************************
servera                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverb                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverc                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverd                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
servere                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
serverf                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

中止Play

默认情况下,Ansible尝试获取尽可能多的主机来完成play。如果某一任务对于某一主机失败,则它将从play中丢弃,但Ansible 将继续为其他主机运行play中剩余的任务。仅当所有主机都失败时,play才会停止。

但是,如果使用 serial 关键字将主机组织到批处理中,那么如果当前批处理中的所有主机都失败,则Ansible将停止所有剩余主机的 play,而不仅仅是当前批处理中剩余的主机。如果由于批处理中的所有主机失败而停止了该play的执行,则下一个批处理将不会启动。

Ansible的ansible_play_batch变量中的每个批处理保留活动服务器列表。任何有任务失败的主机都将从ansible play batch 列表中删除。Ansible会在每项任务后更新此列表。

指定容错 max_fail_percentage

这里可以通过 指定容错 的方式来提前终止剧本。通过将 max_fail_percentage 关键字添加到剧本 ,改变 Ansible 的失败行为

- name: 滚动更新hosts: allmax_fail_percentage: 30%serial:- 25%- 3- 100%tasks:- name: update webshell: sleep 2

上面的配置,即所有机器里 30% 的机器执行 tasks 任务失败,那个会提前终止 剧本。

博文参考

《Red Hat Ansible Engine 2.8 DO447》

http://www.ds6.com.cn/news/1303.html

相关文章:

  • 湖北专业网站建设维修电话十大营销策划公司排名
  • 换友链的网站最让顾客心动的促销活动
  • 广州网站建设o2o百度秒收录
  • 深互动平台网站2021近期时事新闻热点事件
  • 东莞网站建议谷歌官网
  • 中国软件公司有哪些海南seo
  • 仿牌网站优化国内搜索网站排名
  • 网站需要写哪些内容吗口碑营销是什么
  • 广州网站建设 易企建站全网营销推广怎么做
  • 青岛知名网站建设公司seo推广专员招聘
  • 搜索网站定制公司如何自己做一个网站
  • 天津建设厅 注册中心网站首页软文推广是什么意思
  • 2018网站建设网站快速排名上
  • 功能网站建设多少钱山东网络推广优化排名
  • 重庆做网站建设的公司阜新网站seo
  • 安康网站建设公司报价网络口碑营销名词解释
  • 重庆忠县网站建设公司哪里有58精准推广点击器
  • 何苦做游戏网站世界比分榜
  • 网站开发主要有两个阶段公司网页网站建设
  • 怎么下载黑龙江人社app重庆做优化的网络公司
  • 如何将网站上传到空间短视频seo排名
  • wordpress主题 外贸网站模板下载seo研究中心骗局
  • 水平b2b代表网站数据分析软件
  • 虚拟机可以做多个网站公司做网络推广怎么做
  • 邵阳网站建设网站网站优化北京seo
  • 贵阳做网站 优帮云上海最近3天疫情情况
  • 怎么做伪静态网站seo排名关键词点击
  • wordpress虚拟物品seo关键词排名优化工具
  • 代运营网站公司网页制作
  • python语言骗局seo站长工具下载