本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Ansible
  • 自动化运维之Ansible(7)with循环与when条件判断

自动化运维之Ansible(7)with循环与when条件判断

发布:TangLu2020-3-13 16:16分类: Ansible 标签: 自动化运维 ansible

在Ansible中支持使用when进行条件判断,使用with进行循环

一、Ansible with循环

示例1:

 vi /etc/ansible/while.yml
- hosts: 192.168.1.100
  user: root
  tasks:
    - name: change mode for files
      file: path=/tmp/{{ item }} state=touch mode=600  #这里使用了item变量
      with_items:  #使用with去定义item这个变量的对象
        - 1.txt
        - 2.txt
        - 3.txt

ansible-playbook while.yml


示例2:通过循环安装多个软件包

- name: Install Nginx Package
  yum: name={{ item }} state=latest
  with_items:
  - epel-release
  - nginx


二、Ansible when条件判断


示例1:判断客户端系统判断,然后选择对应的配置文件

 vi /etc/ansible/when.yml  #加入如下内容
- hosts: dbservers
  user: root
  vars:
    - http_port: 8080

  tasks:
    - name: install nginx
      yum: name=nginx
    - name: copy conf for centos7
      template: src=nginx.conf7.j2 dest=/etc/nginx/nginx.conf
      when: ansible_distribution_major_version == "7"  #这里的变量是取facts信息
      notify: restart service
    - name: copy conf for centos6
      template: src=nginx.conf6.j2 dest=/etc/nginx/nginx.conf
      when: ansible_distribution_major_version == "6"
      notify: restart service
    - name: start service
      service: name=nginx state=started enabled=yes

  handlers:
    - name: restart service
      service: name=nginx state=restarted 


示例2:当远程主机FQDN名为test时,给该主机添加一个用户user10

vi test.yml
- hosts: all
  remote_user: root
  vars:
  - username: user10
  tasks:
  - name: create {{ username }} user
    user: name={{ username }}
    when: ansible_fqdn == "test"


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《自动化运维之Ansible(7)with循环与when条件判断
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-279.html  [生成短网址]

已有 0/3633 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~