Ansible Loop循环 循环遍历的属性 Notify和Handlers
Loop循环loop:循环属于当前任务的一个功能归属于-name下面循环中提供一个个数据的项每一项都要由- 定义它会一项项重复执行当前的任务每执行一次就会提取一项值交给变量{{ item }}注意:当前循环只对当前的任务有效的任务执行的时相同功能[rootansible ~]# vi an-9.yml [rootansible ~]# cat an-9.yml - hosts: webservers tasks: - name: 循环创建文件 shell: touch {{ item }} args: chdir: /opt loop: - zhangsan.txt - lisi.txt - wangwu.txt - xiyangyang.txt [rootansible ~]# ansible-playbook an-9.yml PLAY [webservers] *************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************** ok: [192.168.92.20] TASK [循环创建文件] ************************************************************************************************************************************* changed: [192.168.92.20] (itemzhangsan.txt) changed: [192.168.92.20] (itemlisi.txt) changed: [192.168.92.20] (itemwangwu.txt) changed: [192.168.92.20] (itemxiyangyang.txt) PLAY RECAP ********************************************************************************************************************************************** 192.168.92.20 : ok2 changed1 unreachable0 failed0 skipped0 rescued0 ignored0循环遍历的属性[rootansible ~]# vi an-10.yml [rootansible ~]# cat an-10.yml - hosts: webservers tasks: - name: 创建用户组 group: name: {{ item }} state: present loop: - gp1 - gp2 - gp3 - name: 创建用户并设置基本组 user: name: {{ item.uname }} group: {{ item.group }} state: present loop: - { uname: test1, group: gp1 } - { uname: test2, group: gp2 } - { uname: test3, group: gp3 } [rootansible ~]# ansible-playbook an-10.yml PLAY [webservers] *************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************** ok: [192.168.92.20] TASK [创建用户组] *************************************************************************************************************************************** changed: [192.168.92.20] (itemgp1) changed: [192.168.92.20] (itemgp2) changed: [192.168.92.20] (itemgp3) TASK [创建用户并设置基本组] ***************************************************************************************************************************** changed: [192.168.92.20] (item{uname: test1, group: gp1}) changed: [192.168.92.20] (item{uname: test2, group: gp2}) changed: [192.168.92.20] (item{uname: test3, group: gp3}) PLAY RECAP ********************************************************************************************************************************************** 192.168.92.20 : ok3 changed2 unreachable0 failed0 skipped0 rescued0 ignored0 [rootansible ~]#Notify和Handlers[rootansible ~]# vi an-11.yml [rootansible ~]# cat an-11.yml # handlers 是一个触发器同时也是 tasks 任务不会直接运行需要被触发 # notify 就是通知 # 安装 httpd 服务器然后下发更改后的配置文件当被控端发生改变时就重启服务 - hosts: webservers tasks: - name: 安装 httpd yum: name: httpd state: latest - name: 启动 httpd 服务 service: name: httpd state: started [rootansible ~]# ansible-playbook an-11.yml PLAY [webservers] *************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************** ok: [192.168.92.20] TASK [安装 httpd] *************************************************************************************************************************************** ok: [192.168.92.20] TASK [启动 httpd 服务] ********************************************************************************************************************************** ok: [192.168.92.20] PLAY RECAP ********************************************************************************************************************************************** 192.168.92.20 : ok3 changed0 unreachable0 failed0 skipped0 rescued0 ignored0 [rootweb20h ~]# scp /etc/httpd/conf/httpd.conf root192.168.92.19:/root The authenticity of host 192.168.92.19 (192.168.92.19) cant be established. ED25519 key fingerprint is SHA256:TtJqVxSoGlLTkPvOJuAUTJMZsYo6TuFHufmCOTeI. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 192.168.92.19 (ED25519) to the list of known hosts. root192.168.92.19s password: httpd.conf [rootansible ~]# ls 3.26.sh an-1.yml an-11.yml an-3.yml an-5.yml an-7.yml an-9.yml bianliang.yml cp.txt host_vars replace.txt a.txt an-10.yml an-2.yml an-4.yml an-6.yml an-8.yml anaconda-ks.cfg cp.tar.gz group_vars httpd.conf [rootansible ~]# vi httpd.conf Listen 66 #改了一下监听端口 [rootansible ~]# vi an-11.yml [rootansible ~]# cat an-11.yml # handlers 是一个触发器同时也是 tasks 任务不会直接运行需要被触发 # Notify 就是通知 # 安装 httpd 服务器然后下发更改后的配置文件当被控端发生改变时就重启服务 - hosts: webservers tasks: - name: 安装 httpd yum: name: httpd state: latest - name: 启动 httpd 服务 service: name: httpd state: started - name: 下发配置文件 copy: src: /root/httpd.conf dest: /etc/httpd/conf/httpd.conf owner: root mode: 664 notify: restart httpd handlers: - name: restart httpd service: name: httpd state: restarted [rootansible ~]# ansible-playbook an-11.yml PLAY [webservers] *************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************** ok: [192.168.92.20] TASK [安装 httpd] *************************************************************************************************************************************** ok: [192.168.92.20] TASK [启动 httpd 服务] ********************************************************************************************************************************** ok: [192.168.92.20] TASK [下发配置文件] ************************************************************************************************************************************* changed: [192.168.92.20] RUNNING HANDLER [restart httpd] ************************************************************************************************************************* changed: [192.168.92.20] PLAY RECAP ********************************************************************************************************************************************** 192.168.92.20 : ok5 changed2 unreachable0 failed0 skipped0 rescued0 ignored0 100% 12KB 7.7MB/s 00:00
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2495371.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!