码迷,mamicode.com
首页 > 其他好文 > 详细

mount

时间:2020-06-19 21:18:54      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:mat   name   推送   abs   role   wecenter   公钥   res   img   

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中可以再次使用变量

技术图片

mount

标签:mat   name   推送   abs   role   wecenter   公钥   res   img   

原文地址:https://www.cnblogs.com/syy1757528181/p/13166149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!