当前位置:   article > 正文

ansible进阶-剧本调试方法

ansible进阶-剧本调试方法

目录

1、调试方法

2、实例

2.1    Debug模块

 2.2    tags标签

2.3    忽略错误


1、调试方法

具体方法应用场景
debug标签执⾏剧本的时候输出剧本的执⾏流程,⼀般配合register⼀起使⽤. 输出facts变量自定义变量
tags标签给⼀些模块加上标签,运⾏剧本的时候可以运⾏指定标签的内容,排除指定标签.
忽略错误运⾏剧本的时候忽略⼀些模块的错误,让剧本继续运⾏.

2、实例

2.1    Debug模块
debug
msg相当于是echo命令,配置着register一起用

实例1-调试-nfs服务端部署剧本

剧本文件及执行结果:

  1. [root@ansible ~]# cat debug-nfs-server.yml
  2. ---
  3. - name: 调试nfs服务端
  4. hosts: all
  5. tasks:
  6. - name: 部署nfs服务端软件
  7. yum:
  8. name: nfs-utils
  9. state: installed
  10. - name: 创建对应的目录,权限
  11. file:
  12. path: /nfsfile
  13. owner: nfsnobody
  14. group: nfsnobody
  15. state: directory
  16. register: file_jieguo
  17. - name: 修改配置文件
  18. lineinfile:
  19. path: /etc/exports
  20. line: "/nfsfile 192.168.81.0/24(rw,sync,root_squash)"
  21. state: present
  22. backup: yes
  23. - name: 输出这个过程
  24. debug:
  25. msg: "{{ file_jieguo }}"
  26. - name: 启动rpc服务
  27. systemd:
  28. name: rpcbind
  29. enabled: yes
  30. state: started
  31. - name: 启动nfs服务
  32. systemd:
  33. name: nfs
  34. enabled: yes
  35. state: started
  36. [root@ansible ~]# ansible-playbook debug-nfs-server.yml
  37. PLAY [调试nfs服务端] *****************************************************************************************************************************************
  38. TASK [Gathering Facts] **********************************************************************************************************************************
  39. ok: [192.168.81.134]
  40. ok: [192.168.81.136]
  41. ok: [192.168.81.133]
  42. ok: [192.168.81.135]
  43. ok: [192.168.81.132]
  44. TASK [部署nfs服务端软件] ***************************************************************************************************************************************
  45. ok: [192.168.81.132]
  46. ok: [192.168.81.136]
  47. ok: [192.168.81.133]
  48. ok: [192.168.81.134]
  49. ok: [192.168.81.135]
  50. TASK [创建对应的目录,权限] ***************************************************************************************************************************************
  51. changed: [192.168.81.132]
  52. changed: [192.168.81.135]
  53. changed: [192.168.81.136]
  54. changed: [192.168.81.133]
  55. changed: [192.168.81.134]
  56. TASK [修改配置文件] *******************************************************************************************************************************************
  57. changed: [192.168.81.132]
  58. changed: [192.168.81.135]
  59. changed: [192.168.81.136]
  60. changed: [192.168.81.134]
  61. changed: [192.168.81.133]
  62. TASK [输出这个过程] *******************************************************************************************************************************************
  63. ok: [192.168.81.136] => {
  64. "msg": {
  65. "changed": true,
  66. "diff": {
  67. "after": {
  68. "group": 65534,
  69. "mode": "0777",
  70. "owner": 65534,
  71. "path": "/nfsfile",
  72. "state": "directory"
  73. },
  74. "before": {
  75. "group": 0,
  76. "mode": "0755",
  77. "owner": 0,
  78. "path": "/nfsfile",
  79. "state": "absent"
  80. }
  81. },
  82. "failed": false,
  83. "gid": 65534,
  84. "group": "nfsnobody",
  85. "mode": "0777",
  86. "owner": "nfsnobody",
  87. "path": "/nfsfile",
  88. "secontext": "unconfined_u:object_r:default_t:s0",
  89. "size": 6,
  90. "state": "directory",
  91. "uid": 65534
  92. }
  93. }
  94. ok: [192.168.81.132] => {
  95. "msg": {
  96. "changed": true,
  97. "diff": {
  98. "after": {
  99. "group": 65534,
  100. "mode": "0777",
  101. "owner": 65534,
  102. "path": "/nfsfile",
  103. "state": "directory"
  104. },
  105. "before": {
  106. "group": 0,
  107. "mode": "0755",
  108. "owner": 0,
  109. "path": "/nfsfile",
  110. "state": "absent"
  111. }
  112. },
  113. "failed": false,
  114. "gid": 65534,
  115. "group": "nfsnobody",
  116. "mode": "0777",
  117. "owner": "nfsnobody",
  118. "path": "/nfsfile",
  119. "secontext": "unconfined_u:object_r:default_t:s0",
  120. "size": 6,
  121. "state": "directory",
  122. "uid": 65534
  123. }
  124. }
  125. ok: [192.168.81.134] => {
  126. "msg": {
  127. "changed": true,
  128. "diff": {
  129. "after": {
  130. "group": 65534,
  131. "mode": "0777",
  132. "owner": 65534,
  133. "path": "/nfsfile",
  134. "state": "directory"
  135. },
  136. "before": {
  137. "group": 0,
  138. "mode": "0755",
  139. "owner": 0,
  140. "path": "/nfsfile",
  141. "state": "absent"
  142. }
  143. },
  144. "failed": false,
  145. "gid": 65534,
  146. "group": "nfsnobody",
  147. "mode": "0777",
  148. "owner": "nfsnobody",
  149. "path": "/nfsfile",
  150. "secontext": "unconfined_u:object_r:default_t:s0",
  151. "size": 6,
  152. "state": "directory",
  153. "uid": 65534
  154. }
  155. }
  156. ok: [192.168.81.133] => {
  157. "msg": {
  158. "changed": true,
  159. "diff": {
  160. "after": {
  161. "group": 65534,
  162. "mode": "0777",
  163. "owner": 65534,
  164. "path": "/nfsfile",
  165. "state": "directory"
  166. },
  167. "before": {
  168. "group": 0,
  169. "mode": "0755",
  170. "owner": 0,
  171. "path": "/nfsfile",
  172. "state": "absent"
  173. }
  174. },
  175. "failed": false,
  176. "gid": 65534,
  177. "group": "nfsnobody",
  178. "mode": "0777",
  179. "owner": "nfsnobody",
  180. "path": "/nfsfile",
  181. "secontext": "unconfined_u:object_r:default_t:s0",
  182. "size": 6,
  183. "state": "directory",
  184. "uid": 65534
  185. }
  186. }
  187. ok: [192.168.81.135] => {
  188. "msg": {
  189. "changed": true,
  190. "diff": {
  191. "after": {
  192. "group": 65534,
  193. "mode": "0777",
  194. "owner": 65534,
  195. "path": "/nfsfile",
  196. "state": "directory"
  197. },
  198. "before": {
  199. "group": 0,
  200. "mode": "0755",
  201. "owner": 0,
  202. "path": "/nfsfile",
  203. "state": "absent"
  204. }
  205. },
  206. "failed": false,
  207. "gid": 65534,
  208. "group": "nfsnobody",
  209. "mode": "0777",
  210. "owner": "nfsnobody",
  211. "path": "/nfsfile",
  212. "secontext": "unconfined_u:object_r:default_t:s0",
  213. "size": 6,
  214. "state": "directory",
  215. "uid": 65534
  216. }
  217. }
  218. TASK [启动rpc服务] ******************************************************************************************************************************************
  219. changed: [192.168.81.134]
  220. changed: [192.168.81.133]
  221. changed: [192.168.81.132]
  222. changed: [192.168.81.135]
  223. changed: [192.168.81.136]
  224. TASK [启动nfs服务] ******************************************************************************************************************************************
  225. changed: [192.168.81.136]
  226. changed: [192.168.81.133]
  227. changed: [192.168.81.134]
  228. changed: [192.168.81.132]
  229. changed: [192.168.81.135]
  230. PLAY RECAP **********************************************************************************************************************************************
  231. 192.168.81.132 : ok=7 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  232. 192.168.81.133 : ok=7 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  233. 192.168.81.134 : ok=7 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  234. 192.168.81.135 : ok=7 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  235. 192.168.81.136 : ok=7 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  236. [root@ansible ~]#

 2.2    tags标签

Ansible中的tags标签用于为任务指定标记,并在运行时根据指定的标记只运行部分任务,从而避免对整个剧本进行执行。在编写包含多个任务的剧本时,有时候只需要在执行时运行其中一任务。这时,使用tag标签是非常有用的,它可以为每个任务指定一个标签,这样在执行时只需要运行指定标签的任务即可。

也可以这样理解

一个剧本里面可能包涵了多个任务,但是又不知道剧本中任务是不是都能执行,不确定,这个时候就可以用标签标记任务,然后运行剧本时指定标签运行不确定能不能执行的任务

执行剧本时,使用--tags选项指定要运行的标签。

运行指定的标签

ansible-play --tags 自定义的标签名 剧本文件名

运行剧本的时候排除指定的标签

ansible-play --skip-tags 要排除的标签名 剧本文件名

实例

2.3    忽略错误

当运行剧本时,剧本是按照任务的编写顺序执行,当某个任务运行出现错误时,则则这个任务下面的任务出现错误时,

用于运行剧本的时候,强制让某个任务(模块)运行即使出现错误,也不会中断我们整个剧本的执行。

实例

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/474924
推荐阅读
相关标签
  

闽ICP备14008679号