zoukankan      html  css  js  c++  java
  • mount

    mount挂载

    环境准备

    主机名 安装服务 wan lan
    web01 nfs客户端 10.0.0.7 172.16.1.7
    web02 nfs客户端 10.0.0.8 172.16.1.8
    nfs nfs服务端 10.0.0.9 172.16.1.9

    流程分析

    1.安装ansible
    2.优化ansible
    3.推送公钥
    4.开启防火墙
    5.开启80 443 873 nfs等端口和服务白名单
    6.关闭selinux
    7.创建同一的用户
    
    	1.查看nfs客户端是否启动
    	2.挂载
    

    主机清单

    [root@m01 ~]# vim /root/ansible/hosts 
    #[]标签名任意,但是最好不要用特殊符号(- | &)和大写字母,中文(不能是nginx)
    #端口是22的时候可以省略
    [web_group]
    172.16.1.7 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    172.16.1.8 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    172.16.1.9 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [db_group]
    172.16.1.51 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    172.16.1.52 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    172.16.1.53 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    172.16.1.54 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [nfs_group]
    172.16.1.31 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [redis_group]
    172.16.1.81 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [lb_group]
    172.16.1.5 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    172.16.1.6 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [backup_group]
    172.16.1.41 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [zabbix_group]
    172.16.1.71 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [m01_group]
    172.16.1.61 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    
    [mtj_group]
    172.16.1.202 ansible_ssh_port=22 asible_ssh_user=root ansible_ssh_pass='1'
    

    ########################被挂载点

    创建角色

    [root@m01 roles]# ansible-galaxy init  mount_server
    

    编辑tasks目录

    1.检查nfs服务端
    [root@m01 mount_server]# vim tasks/check.yml
    - name: check server nfs
      shell: "ps -ef|grep [n]fs"
      ignore_errors: yes
      register: check_nfs
    
    - name: start nfs
      service:
        name: nfs
        state: started
      when: {{ check_nfs }}.rc != 0
    2.编辑include
    [root@m01 mount_server]# vim tasks/main.yml 
    - include: check.yml
    
    

    编辑入口文件

    [root@m01 roles]# vim site.yml 
    - hosts: all
      roles:
        #- { role: base }
        #- { role: rsync_client,when: ansible_fqdn is match 'web*' }
        #- { role: rsync_client,when: ansible_fqdn is match 'nfs*' }
        #- { role: rsync_server,when: ansible_fqdn is match 'backup*' }
        #- { role: nfs_server,when: ansible_fqdn is match 'nfs*' }
        #- { role: nfs_client,when: ansible_fqdn is match 'web*' }
        - { role: mount_server,when: ansible_fqdn is match 'nfs*' }
    

    执行

    [root@m01 roles]# ansible-playbook site.yml
    

    ########################挂载点

    创建角色

    [root@m01 roles]# ansible-galaxy init  mount_client
    

    编辑tasks目录

    1.检查
    [root@m01 mount_client]# vim tasks/check.yml 
    - name: check server nfs
      shell: "ps -ef|grep [n]fs"
      ignore_errors: yes
      register: check_nfs
    
    - name: start nfs
      service:
        name: nfs
        state: started
      when: check_nfs.rc != 0
    2.挂载
    [root@m01 mount_client]# vim tasks/mount.yml 
    - name: mount nfs client
      mount:
        path: "{{ item.path }}"
        src: "{{ item.src }}"
        fstype: nfs
        opts: defaults
        state: absent
      loop:
        - { path: "mou",src: "moudir" }
        - { path: "mou",src: "moudir" }
    3.include
    [root@m01 mount_client]# vim tasks/main.yml 
    - include: check.yml
    - include: mount.yml
    3.变量
    #挂载谁
    mou: 
      - "/code/wordpress/wp-content/uploads/"
      - "/code/WeCenter/uploads"
    #挂载到哪
    mou_dir:
      - "172.16.1.31:/data/wordpress"
      - "172.16.1.31:/data/WeCenter"
    

    编辑入口文件

    [root@m01 roles]# vim site.yml 
    - hosts: all
      roles:
        #- { role: base }
        #- { role: rsync_client,when: ansible_fqdn is match 'web*' }
        #- { role: rsync_client,when: ansible_fqdn is match 'nfs*' }
        #- { role: rsync_server,when: ansible_fqdn is match 'backup*' }
        #- { role: nfs_server,when: ansible_fqdn is match 'nfs*' }
        #- { role: nfs_client,when: ansible_fqdn is match 'web*' }
        - { role: mount_server,when: ansible_fqdn is match 'nfs*' }
        - { role: mount_client,when: ansible_fqdn is match 'web*' }
    
    

    执行

    [root@m01 roles]# ansible-playbook site.yml
    
    

    注意

    1.mount模块不支持列表,一个动作对应多个值的时候可以考虑使用循环(with_items loop)
    with_item中不支持变量。loop中可以再次使用变量
    

    QQ截图20200618224222.png

  • 相关阅读:
    python中的break 和continue的区别
    查询前几条数据
    python logging日志模块
    python unittest单元测试
    python的数据驱动
    SQL求出优秀、及格人数
    SQL查询去掉重复数据
    vue组件路由守卫钩子函数(beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave)
    前端开发,走浏览器缓存真的很烦,拒绝浏览器走缓存从meta标签做起!
    (转)前端开发-发布一个NPM包之最简单易懂流程
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/13166149.html
Copyright © 2011-2022 走看看