美文网首页程序员
ansible使用剧本部署nfs服务

ansible使用剧本部署nfs服务

作者: 南南宫问天 | 来源:发表于2020-05-24 23:48 被阅读0次

    剧本的编写方法

    image.png

    剧本的语法规范:
    1)空格规范: 实现缩进功能
    2)冒号规范: 实现键值定义
    3)横线规范: 实现列表现实
    剧本的作用: 可以一键化完成多个任务

    剧本的组成部分

    演员信息: 男一号 hosts
    干的事情: 吻戏 tasks
    演员信息: 男二号
    干的事情: 看着

    剧本编写规范: yaml ---三点要求

    1.合理的缩进 ----两个空格表示一个缩进关系

    ​ 标题一
    ​ 标题二
    ​ 标题三
    补充: 在ansible中一定不能用tab进行缩进

    2.冒号的使用方法

    ​ hosts: 172.16.210.53
    ​ tasks:
    ​ yum name=xx
    补充: 使用冒号时后面要有空格信息
    ​ 以冒号结尾,冒号信息出现在注释说明,后面不需要加上空格

    3.剧本编写常见错误:

    01. 剧本语法规范是否符合(空格 冒号 短横线)
    02. 剧本中模块使用是否正确
    03. 剧本中一个name标识下面只能写一个模块任务信息
    04. 剧本中尽量不要大量使用shell模块
    

    4.短横线应用 -(列表功能)

    - 张三
             男
               - 打游戏
               - 运动
                  
           - 李四
             女
               学习
                  湖南
           - 王五
             男
               运动
                  深圳
    

    补充: 使用短横线构成列表信息,短横线后面需要有空格

    开始编写剧本:

    剧本文件扩展名尽量为yaml
    1.方便识别文件是一个剧本文件
    2.文件编写时会有颜色提示

    部署nfs服务

    1.创建几个目录,提前写好配置文件

    [root@ansible ~]# cd -
    /etc/ansible/ansible-playbook
    [root@ansible ansible-playbook]# mkdir nfs-file
    [root@ansible ansible-playbook]# mkdir nfs-file/nfs-{client,server}
    [root@ansible ansible-playbook]# cd nfs-file/nfs-server/
    [root@ansible nfs-server]# echo "/data 172.16.210.0/24(rw,sync)" > exports
    

    2.在主机清单填写要部署的主机

    [nfs:children]
    nfs_server
    nfs_client
    
    [nfs_server]
    172.16.210.53
    [nfs_client]
    172.16.210.54
    172.16.210.55
    

    3.编写剧本

    [root@ansible ansible-playbook]# cat nfs-server.yaml 
    - hosts: nfs
      tasks:
        - name: 01-install nfs software
          yum:
            name: ['nfs-utils','rpcbind']
            state: installed
    
    - hosts: nfs_server
      vars:
        data_dir: /data
      tasks:
        - name: 01-copy conf file
          copy: src=/etc/ansible/ansible-playbook/nfs-file/nfs-server/exports dest=/etc
          notify: restart nfs server
        - name: 02-create data dir
          file: path={{ data_dir }}  state=directory owner=nfsnobody group=nfsnobody
        - name: 03-start sever
          #service: name=rpcbinf state=started enabled=yes
          #service: name=nfs state=started enabled=yes
          service: name={{ item }} state=started enabled=yes
          with_items:
            - rpcbind
            - nfs
    
      handlers:
        - name: restart nfs server
          service: name=nfs state=restarted
        
    - hosts: nfs_client
      vars:
        data_dir: /data
      tasks:
        - name: 01-mount
          mount: src=172.16.210.53:{{ data_dir }} path=/mnt fstype=nfs state=mounted
        - name: 02-check mount info
          shell: df -h | grep /data
          register: mount_info
        - name: display mount info
          debug: msg={{ mount_info.stdout_lines }}
    

    4.执行剧本

    [root@ansible ansible-playbook]# ansible-playbook nfs-server.yaml 
    
    PLAY [nfs] *********************************************************************
    
    TASK [01-install nfs software] *************************************************
    ok: [172.16.210.55]
    ok: [172.16.210.53]
    ok: [172.16.210.54]
    
    PLAY [nfs_server] **************************************************************
    
    TASK [01-copy conf file] *******************************************************
    ok: [172.16.210.53]
    
    TASK [02-create data dir] ******************************************************
    changed: [172.16.210.53]
    
    TASK [03-start sever] **********************************************************
    ok: [172.16.210.53] => (item=rpcbind)
    ok: [172.16.210.53] => (item=nfs)
    
    PLAY [nfs_client] **************************************************************
    
    TASK [01-mount] ****************************************************************
    ok: [172.16.210.55]
    changed: [172.16.210.54]
    
    TASK [02-check mount info] *****************************************************
    changed: [172.16.210.55]
    changed: [172.16.210.54]
    
    TASK [display mount info] ******************************************************
    ok: [172.16.210.54] => {
        "msg": [
            "172.16.210.53:/data       36G  1.6G   34G    5% /mnt"
        ]
    }
    ok: [172.16.210.55] => {
        "msg": [
            "172.16.210.53:/data       36G  1.6G   34G    5% /mnt"
        ]
    }
    
    PLAY RECAP *********************************************************************
    172.16.210.53              : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    172.16.210.54              : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    172.16.210.55              : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    

    5.查看客户端是否成功挂载

    [root@web02 ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   36G  1.7G   34G    5% /
    devtmpfs                 2.4G     0  2.4G    0% /dev
    tmpfs                    2.4G     0  2.4G    0% /dev/shm
    tmpfs                    2.4G  8.6M  2.4G    1% /run
    tmpfs                    2.4G     0  2.4G    0% /sys/fs/cgroup
    /dev/sda1               1014M  143M  872M   15% /boot
    tmpfs                    480M     0  480M    0% /run/user/0
    172.16.210.53:/data       36G  1.6G   34G    5% /mnt
    
    
    [root@web03 ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   36G  1.7G   34G    5% /
    devtmpfs                 1.9G     0  1.9G    0% /dev
    tmpfs                    1.9G     0  1.9G    0% /dev/shm
    tmpfs                    1.9G  8.6M  1.9G    1% /run
    tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
    /dev/sda1               1014M  143M  872M   15% /boot
    172.16.210.53:/data       36G  1.6G   34G    5% /mnt
    tmpfs                    380M     0  380M    0% /run/user/0
    

    挂载成功!

    相关文章

      网友评论

        本文标题:ansible使用剧本部署nfs服务

        本文链接:https://www.haomeiwen.com/subject/hhosahtx.html