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

深圳手机建网站南方医科大学精品课程建设网站

深圳手机建网站,南方医科大学精品课程建设网站,一般网站的费用,简单的手机网页制作环境 控制节点#xff1a;Ubuntu 22.04Ansible 2.10.8管理节点#xff1a;CentOS 8 block 顾名思义#xff0c;通过block可以把task按逻辑划分到不同的“块”里面#xff0c;实现“块操作”。此外#xff0c;block还提供了错误处理功能。 task分组 下面的例子#x…环境 控制节点Ubuntu 22.04Ansible 2.10.8管理节点CentOS 8 block 顾名思义通过block可以把task按逻辑划分到不同的“块”里面实现“块操作”。此外block还提供了错误处理功能。 task分组 下面的例子把3个task放到一个block里面。 创建文件 testBlock1.yml 如下 --- - name: testBlock1hosts: alltasks:- name: My task 1block:- name: Part1debug:msg: Hello Zhang San- name: Part2debug:msg: Hello Li Si- name: Part3debug:msg: Hello Wang Wuwhen: 2 1运行结果如下 ➜ temp ansible-playbook testBlock1.ymlPLAY [testBlock1] **********************************************************************************TASK [Gathering Facts] ***************************************************************************** ok: [192.168.1.55]TASK [Part1] *************************************************************************************** ok: [192.168.1.55] {msg: Hello Zhang San }TASK [Part2] *************************************************************************************** ok: [192.168.1.55] {msg: Hello Li Si }TASK [Part3] *************************************************************************************** ok: [192.168.1.55] {msg: Hello Wang Wu }PLAY RECAP ***************************************************************************************** 192.168.1.55 : ok4 changed0 unreachable0 failed0 skipped0 rescued0 ignored0 如果把block的判断条件 when: 2 1 改为 when: 2 1 则运行结果如下 ➜ temp ansible-playbook testBlock1.ymlPLAY [testBlock1] **********************************************************************************TASK [Gathering Facts] ***************************************************************************** ok: [192.168.1.55]TASK [Part1] *************************************************************************************** skipping: [192.168.1.55]TASK [Part2] *************************************************************************************** skipping: [192.168.1.55]TASK [Part3] *************************************************************************************** skipping: [192.168.1.55]PLAY RECAP ***************************************************************************************** 192.168.1.55 : ok1 changed0 unreachable0 failed0 skipped3 rescued0 ignored0 可见由于条件不满足block里的3个task都没有执行。 错误处理 如果block里的某个task出错了则后面的task不再运行。 创建文件 testBlock2.yml 如下 --- - name: testBlock2hosts: alltasks:- name: My task 1block:- name: Part1debug:msg: Hello Zhang San- name: Part2command: /bin/false # will trigger an error- name: Part3debug:msg: Hello Li Si运行结果如下 ➜ temp ansible-playbook testBlock2.ymlPLAY [testBlock2] **********************************************************************************TASK [Gathering Facts] ***************************************************************************** ok: [192.168.1.55]TASK [Part1] *************************************************************************************** ok: [192.168.1.55] {msg: Hello Zhang San }TASK [Part2] *************************************************************************************** fatal: [192.168.1.55]: FAILED! {changed: true, cmd: [/bin/false], delta: 0:00:00.001904, end: 2023-10-26 08:50:36.850526, msg: non-zero return code, rc: 1, start: 2023-10-26 08:50:36.848622, stderr: , stderr_lines: [], stdout: , stdout_lines: []}PLAY RECAP ***************************************************************************************** 192.168.1.55 : ok2 changed0 unreachable0 failed1 skipped0 rescued0 ignored0 可见由于Part2出错Part3并没有运行。 Ansible的错误处理有两个关键字 rescue 类似于 catchalways 类似于 finally 先加上 always 看看效果 --- - name: testBlock2hosts: alltasks:- name: My task 1block:- name: Part1debug:msg: Hello Zhang San- name: Part2command: /bin/false # will trigger an error- name: Part3debug:msg: Hello Li Sialways:- name: Always do thisdebug:msg: End End End➜ temp ansible-playbook testBlock2.ymlPLAY [testBlock2] **********************************************************************************TASK [Gathering Facts] ***************************************************************************** ok: [192.168.1.55]TASK [Part1] *************************************************************************************** ok: [192.168.1.55] {msg: Hello Zhang San }TASK [Part2] *************************************************************************************** fatal: [192.168.1.55]: FAILED! {changed: true, cmd: [/bin/false], delta: 0:00:00.002734, end: 2023-10-26 08:52:19.329781, msg: non-zero return code, rc: 1, start: 2023-10-26 08:52:19.327047, stderr: , stderr_lines: [], stdout: , stdout_lines: []}TASK [Always do this] ****************************************************************************** ok: [192.168.1.55] {msg: End End End }PLAY RECAP ***************************************************************************************** 192.168.1.55 : ok3 changed0 unreachable0 failed1 skipped0 rescued0 ignored0 可见Part2出错 always 也会运行当然Part3不会运行。 注意加上 always failed仍然是1。 现在来试一下 rescue --- - name: testBlock2hosts: alltasks:- name: My task 1block:- name: Part1debug:msg: Hello Zhang San- name: Part2command: /bin/false # will trigger an error- name: Part3debug:msg: Hello Li Sialways:- name: Always do thisdebug:msg: End End Endrescue:- name: Rescue tasksdebug:msg: Something is wrong!运行结果如下 ➜ temp ansible-playbook testBlock2.ymlPLAY [testBlock2] **********************************************************************************TASK [Gathering Facts] ***************************************************************************** ok: [192.168.1.55]TASK [Part1] *************************************************************************************** ok: [192.168.1.55] {msg: Hello Zhang San }TASK [Part2] *************************************************************************************** fatal: [192.168.1.55]: FAILED! {changed: true, cmd: [/bin/false], delta: 0:00:00.001726, end: 2023-10-26 09:00:01.785445, msg: non-zero return code, rc: 1, start: 2023-10-26 09:00:01.783719, stderr: , stderr_lines: [], stdout: , stdout_lines: []}TASK [Rescue tasks] ******************************************************************************** ok: [192.168.1.55] {msg: Something is wrong! }TASK [Always do this] ****************************************************************************** ok: [192.168.1.55] {msg: End End End }PLAY RECAP ***************************************************************************************** 192.168.1.55 : ok4 changed0 unreachable0 failed0 skipped0 rescued1 ignored0 注意always是在rescue之后运行的Part3仍然不会运行。 注如果task没有出错 rescue 不会被触发。 rescue与handler 我们知道当task运行成功状态改变时可以用 notify 来触发handler。但如果后续的task出错了则当前task的handler并不会触发。如果有 rescue 则handler仍然会被触发在 always 之后。在 rescue 中可以通过 meta: flush_handlers 来立即触发handler在 always 之前。 --- - name: testBlock2hosts: alltasks:- name: My task 1block:- name: Part1debug:msg: Hello Zhang Sanchanged_when: truenotify: Run me even after an error- name: Part2command: /bin/false # will trigger an error- name: Part3debug:msg: Hello Li Sialways:- name: Always do thisdebug:msg: End End Endrescue:- name: Rescue tasks#debug:# msg: Something is wrong!meta: flush_handlershandlers:- name: Run me even after an errordebug:msg: This handler runs even on error运行结果如下 ➜ temp ansible-playbook testBlock2.ymlPLAY [testBlock2] **********************************************************************************TASK [Gathering Facts] ***************************************************************************** ok: [192.168.1.55]TASK [Part1] *************************************************************************************** changed: [192.168.1.55] {msg: Hello Zhang San }TASK [Part2] *************************************************************************************** fatal: [192.168.1.55]: FAILED! {changed: true, cmd: [/bin/false], delta: 0:00:00.002172, end: 2023-10-26 09:11:26.530609, msg: non-zero return code, rc: 1, start: 2023-10-26 09:11:26.528437, stderr: , stderr_lines: [], stdout: , stdout_lines: []}RUNNING HANDLER [Run me even after an error] ******************************************************* ok: [192.168.1.55] {msg: This handler runs even on error }TASK [Always do this] ****************************************************************************** ok: [192.168.1.55] {msg: End End End }PLAY RECAP ***************************************************************************************** 192.168.1.55 : ok4 changed1 unreachable0 failed0 skipped0 rescued1 ignored0 本例中Part1运行成功且改变了状态所以触发了handler Run me even after an error 。但由于Part2出错如果没有 rescue 则Part1的handler不会触发。加上 rescue 之后就会触发Part1的handler。本例中加上了 meta: flush_handlers 所以会立即触发handler。 参考 https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_blocks.html
http://www.eeditor.cn/news/119358/

相关文章:

  • 专业seo站长工具网站如何做传输网盘
  • 番禺网站建设开发那些企业网站做的较好
  • 河北建站公司哪些网站布局设计做的比较好的
  • 黄村做网站哪家快以下哪个选项不属于网络营销的特点
  • 网站源码怎么搭建购买网站模板怎么用
  • 邯郸商城型网站建设怎么建设自己淘宝网站
  • 网站建设谢辞wordpress vip查看插件
  • 前程无忧做简历网站wordpress 怎么传递参数 get参数
  • 做折页的网站用python做网站多吗
  • 网站源码站房地产app
  • 网站建设算研发费用吗软件工程师招聘
  • 网站开发接口哪里有免费永久的云服务器
  • 常宁市城市建设规划管理局网站温州网站排名优化公司
  • 网站建设礻金手指下拉十一srm采购管理系统
  • 网站项目中的工作流程网站用社交图标做链接侵权吗
  • 创新的商城网站建设长沙做网站建设
  • 万博法务网站asp+sql server典型网站建设案例(源码)3
  • 宁波网站推广软件服务成都建设局官方网站
  • 网站开发成本如何账务处理怎样建设数字中国
  • 怎么知道自己的网站被k网站策划建站
  • 厦门网站制作公司推荐京东小程序入口
  • 建设校园网站个人直播网站开发
  • 网站导航结构建网页还是网站
  • 公司网站模板设计百度统计网站速度诊断工具
  • 中山市住房建设局网站海南手机网站建设
  • 企业网站推广注意事项海外网站加速器免费
  • 专门做汽车内饰的网站沈阳无痛人流
  • 帝国cms网站地图xmlwordpress 广告联盟
  • 网站模板大小国际网站浏览器
  • 深圳比较好的设计网站公司吗wordpress多站点搭建