云计算运维 · 第二阶段 · Ansible_playbook · 变量

学习b记 · 第二阶段

十五、Ansible_ playbook

1、什么是PlayBook
play: 定义的是主机的角色。
task: 定义的是具体执行的任务。
playbook: 由一个或多个play(角色)组成,一个play(角色)可以包含多个task。

简单理解为: 使用不同的模块完成一件事情

2、PlayBook与ad-hoc
    1)PlayBook功能比ad-hoc更全,是对ad-hoc的一种编排.
    2)PlayBook能很好的控制先后执行顺序, 以及依赖关系.
    3)PlayBook语法展现更加的直观.
    4)playbook可以持久使用,ad-hoc无法持久使用.
3、YAML语法
    语法	描述
    缩进	YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用TAB
    冒号	以冒号结尾的除外,其他所有冒号后面所有必须有空格
    短横线	表示列表项,使用一个短横杠加一个空格,多个项使用同样的缩进级别作为同一列表
    yum:
      name: vsftpd
      state: present
      
    yum:
      name:
        - httpd
        - nginx
        - php-fpm
      state: present
#基础也就这些,这个只要注意语法不会看看文档,倒是不难。
#下面就加几个今天练习的例子,大差不差的都不难,主要是多写熟悉模块和写法

·环境
	 主机名		wanIP		lanIP		 角色
    m01		192.168.17.235	172.16.1.212 Ansible控制端
    web01	192.168.17.224	172.16.1.202 Ansible被控端
    web02	192.168.17.230	172.16.1.204 Ansible被控端
    nfs		192.168.17.225  172.16.1.203 Ansible被控端
    rsync	192.168.17.223	172.16.1.200 Ansible被控端
·主机清单
    [web01]
    172.16.1.202
    [nfs]
    172.16.1.203
    [rsync]
    172.16.1.200
    [webs]
    172.16.1.204
    172.16.1.202
#做之前先把免密登录都设置一下
1、nginx.yml

    - name: nginx
      hosts: web01
      tasks:
      - name: Add nginx repository
        yum_repository:
          name: nginx.repo
          description: nginx repo
          baseurl: http://nginx.org/packages/centos/$releasever/$basearch/
          enabled: yes
          gpgcheck: no

      - name: Install Nginx
        yum:
          name: nginx
          state: present

      - name: Create www group
        group:
          name: www
          gid: 666
          state: present
      - name: Create www user
        user:
          name: www
          uid: 666
          group: www
          shell: /sbin/nologin
          create_home: false

      - name: configure nginx
        copy:
          src: nginx.conf
          dest: /etc/nginx.conf

      - name: content hmtl
        copy:
          content: web02......
          dest: /usr/share/nginx/html/index.html
      - name: start nginx
        systemd:
          name: nginx
          state: started



2、nfs.yml

    - hosts: nfs
      tasks:
        - name: Install Nfs
          yum:
            name: nfs-utils
            state: present
        - name: Create group
          group:
            name: www
            gid: 666
        - name: Create user
          user:
            name: www
            uid: 666
            group: www
            shell: /sbin/nologin
            create_home: false
        - name: Create dir
          file:
            path: /data
            owner: www
            group: www
            state: directory
        - name: Configure Nfs
          copy:
            content: '/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)'
            dest: /etc/exports
        - name: Start service
          systemd:
            name: nfs
            state: started

3、rsync.yml
    - hosts: rsync
      tasks:
        - name:
          yum:
            name: rsync
            state: present
        - name: Create group
          group:
            name: www
            gid: 666

        - name: Create User
          user:
            name: www
            uid: 666
            group: www
            shell: /sbin/nologin
            create_home: false
        - name: Configure rsync
          copy:
            src: rsyncd.conf
            dest: /etc/rsyncd.conf

        - name: Create Passwd
          copy:
            src: rsync.pass
            dest: /etc/rsync.pass
            mode: 0600
        - name: Create directory
          file:
            path: /backup
            owner: www
            group: www
            state: directory

        - name: Start service
          systemd:
            name: rsyncd
            state: restarted


4、php.yml#这个是本地安装的
    - hosts: webs
      tasks:
        - name: Create dir
          file:
            path: /tools
            state: directory
        - name: Copy tar
          copy:
            src: php71.tar.gz
            dest: /tools
        - name: Jie Ya
          unarchive:
            src: php71.tar.gz
            dest: /tools
        - name: Yum PHP
          yum:
            name:
              - /tools/autoconf-2.69-11.el7.noarch.rpm
              - /tools/automake-1.13.4-3.el7.noarch.rpm
              - /tools/libevent-2.0.21-4.el7.x86_64.rpm
              - /tools/libjpeg-turbo-1.2.90-8.el7.x86_64.rpm
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值