剧本编写重要功能介绍

一、 剧本执行出现错误排查思路/步骤:
1) 找到剧本中出现问题关键点
查看具体哪个模块出现问题(查看名称)
2) 将剧本中的操作转换成模块进行操作
单独取出来执行

[root@ m01 ~]# ansible rsync_server -m copy -a "scr=/etc/ansible/server_file/rsync_server/rsync.password dest=/etc/ mode=600"
  1. 将模块的功能操作转换成linux命令
    本地管理主机上执行命令测试
    远程被管理主机上执行命令测试
    =================================================
    二、剧本相同命令循环
[root@ m01 ~]# vim test04.yaml
##(相同的模块在使用的时候可以合并同类项)
    - hosts: rsync-server
      tasks:
        - name: 02-push conf file & password file
         # copy: scr=/etc/ansible/server_file/rsync_server/rsyncd.conf dest=/etc/ mode=644
         # copy: scr=/etc/ansible/server_file/rsync_server/rsyncd.password dest=/etc/ mode=600
         #(以上两个相同copy的文件改为以下循环)
         copy: src=/etc/ansible/server_file/rsync_server/{{ item.src }} dest={{ item.dest }} mode={{ item.mode }}
          with_items: 
    	    - { scr: 'rsyncd.conf', dest: '/etc/' ,mode: '644' }
    		 - { scr: 'rsync.password', dest: '/etc/' ,mode: '600' }
==========================================================
又如
 [root@ m01 ~]# vim test05.yaml
    - hosts: all
      remote_user: root
      tasks:
        - name: Installed Pkg
          yum: name={{ item }}  state=present
          with_items:
    	    - wget
    		- tree
    		- lrzsz	
===========================================================
 - name: 01-install rsync
      yum:
        name: ['rsync', 'tree', 'wget']  ##saltstack格式
        state: installed
    
	- name: xxx 
	  yum: name=xxx state=installed      ## ansible格式

三、在剧本中设置错误忽略
一般情况,剧本产生一个错误,整个剧本就停止在错误信息处,错误以下的信息不执行。所以不能显示全部错误,此时,我们需要设置错误忽略,让他继续执行产生错误信息。

在剧本中设置忽略错误
    默认playbook会检查命令和模块的返回状态,如遇到错误就中断playbook的执行
    可以加入ignore_errors: yes忽略错误
[root@ m01 ~]# vim test04.yaml
    - hosts: rsync-server
      tasks:
        - name: 02-push conf file & password file
         copy: src=/etc/ansible/server_file/rsync_server/{{ item.src }} dest={{ item.dest }} mode={{ item.mode }}
          with_items: 
    	    - { scr: 'rsyncd.conf', dest: '/etc/' ,mode: '644' }
    		 - { scr: 'rsync.password', dest: '/etc/' ,mode: '600' }
    	 ignore_errors: yes  ##与copy一个级别

四、在剧本中设置标签信息
发现错误后,需要修改,若没有一次性修改好,需要多次修改,则重新执行ansible-playbook,若程序比较多,这样重复执行就比较费时间,所以需要在剧本中设置标签信息。

[root@ m01 ~]# vim test04.yaml
    - hosts: rsync-server
      tasks:
        - name: 02-push conf file & password file
         copy: src=/etc/ansible/server_file/rsync_server/{{ item.src }} dest={{ item.dest }} mode={{ item.mode }}
          with_items: 
    	    - { scr: 'rsyncd.conf', dest: '/etc/' ,mode: '644' }
    		 - { scr: 'rsync.password', dest: '/etc/' ,mode: '600' }
    	tags: create_dir
[root@ m01 ~]# ansible-playbook --tags=creare_dir rsync_server-xxx信息.yaml

执行后,只执行标签信息 ##标签信息尽量用字符表示,重新执行命令时为长格式 --tags=create_dir

[root@ m01 ~]# ansible-playbook  --skip-tags=creare_dir rsync_server-xxx信息.yaml
表示跳过标签信息,执行其他权限。

五、在剧本中设置触发信息
比如客户端改变了rsync配置文件的端口(873改874),管理端想要配重新生效则需要设置触发器,在改变的时候通知告知改变信息,然后接收重启rsync服务。

 - hosts: backup
      remote_user: root
      tasks:
        - name: 01 Install rsync
          yum: name=rsync state=present
        - name: 02 push config file
          copy: src=./file/{{ item.src }} dest=/etc/{{ item.dest }} mode={{ item.mode }} 
          with_items:
            - { src: "rsyncd.conf", dest: "rsyncd.conf", mode: "0644" }
            - { src: "rsync.password", dest: "rsync.password", mode: "0600" }
          notify: restart rsync server  ##通知有改动

      handlers:    ##接收到改动,重启rsync服务
        - name: restart rsync server
          service: name=rsyncd state=restarted   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值