ansible-playbook-02(部署Nfs和Rsync剧本)

1.playbook概述

1.1 playbook?playbook翻译过来就是“剧本

playbook: 由一个或多个play组成,一个play可以包含多个task任务
简单理解为: 使用不同的模块完成一件事情

1.2 playbook的优势

1.功能比ad-hoc更全
2.能很好的控制先后执行顺序, 以及依赖关系
3.语法展现更加的直观
4.ad-hoc无法持久使用,playbook可以持久使用

1.3 playbook的配置语法是由yaml语法描述的,扩展名是yaml

缩进----YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用tabs
冒号----以冒号结尾的除外,其他所有冒号后面所有必须有空格。
短横线----表示列表项,使用一个短横杠加一个空格。>
多个项使用同样的缩进级别作为同一列表

1.4 Playbook执行结果返回颜色状态:

红色: 表示有task执行失败或者提醒的信息
黄色:表示执行了且改变了远程主机状态
绿色:表示执行成功

2.ansible-playbook—部署Nfs

2.1 服务端

① 书写剧本思路

NFS 服务端
Nfs_server_playbook
1.安装
2.配置
3.初始化
4.启动
5.变更配置要重载服务

②剧本操作

- hosts: nfs
  tasks: 
    - name: Install Nfs Server
      yum: 
        name: nfs-utils
        state: present
    
    - name: Configure Nfs Server
      copy: 
        src: ./exports.j2
        dest: /etc/exports
        owner: root
        group: root
        mode: '644'
      notify: Restart Nfs Server 
       
    - name: Create Nfs Group
      group:
        name: www
        gid: '666'
        state: present
        
    - name: Create Nfs User
      user:
        name: www
        uid: '666'
        group: '666'
        create_home: no
        shell: /sbin/nologin
        
    - name: Create Nfs SHare Directory
      file:
        path: /ansible
        state: directory
        owner: www
        group: www
        recurse: yes
         
    - name: Systemd Nfs Server
      systemd: 
        name: nfs
        state: started
          
  handlers:
    - name: Restart NFS Server
      systemd: 
        name: nfs
        state: restarted

2.2 客户端

①书写剧本思路

1.安装nfs-utils
2.挂载
3.测试

②剧本操作

- hosts: web
  tasks: 
    - name: Install Nfs-utils
      yum: 
        name: nfs-utils
        state: present
    - name: Mount Nfs Share Directory To /mnt
      mount: 
        src: 172.16.1.31:/ansible
        path: /mnt
        fstype: nfs
        opts: defaults
        state: mounted
    - name: Test Nfs Client write File
      file:
        path: /mnt/123.txt
        state: touch

3.ansible-playbook—部署Rsync

3.1服务端

[root@manager ~/ansible_playbook]# cat rsync_server.yml
- hosts: backup
  tasks:

    - name: Installed Rsync Server
      yum:
        name: rsync
        state: present

    - name: Configure Rsync Server
      copy:
        src: ./rsyncd.conf.j2
        dest: /etc/rsyncd.conf
        owner: root
        group: root
        mode: '0644'
      notify: Restart Rsync Server

    - name: Create Rsync Virtual User Password
      copy:
        src: ./rsync.passwd.j2
        dest: /etc/rsync.passwd
        owner: root
        group: root
        mode: '0600'
      notify: Restart Rsync Server

    - name: Create Rsync Group
      group:
        name: www
        gid: '666'

    - name: Create Rsync User
      user:
        name: www
        uid: '666'
        group: '666'
        create_home: no
        shell: /sbin/nologin

    - name: Create Rsync Recv Directory
      file:
        path: /backup
        state: directory
        owner: www
        group: www
        recurse: yes

    - name: Systemd Rsync Server
      systemd:
        name: rsyncd
        state: started
        enabled: yes
  handlers:
    - name: Restart Rsync Server
      systemed: 
        name: rsyncd
        state: restarted

3.2客户端

[root@manager ~/ansible_playbook]# cat rsync_client.yml
#1.拷贝脚本至所有主机
#2.编写定时任务。

- hosts: all
  tasks:
    - name: Create Scripts Directory
      file:
        path: /scripts
        state: directory

    - name: Copy Backup Scripts File
      copy:
        src: ./client_push_data_server.sh
        dest: /scripts/client_push_data_server.sh

    - name: Create Cron Task
      cron:
        name: Backup Tasks
        user: root
        minute: "*/2"
        job: "/bin/bash /scripts/client_push_data_server.sh &>/dev/null"

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值