server | 192.168.83.10 | mater |
client1 | 192.168.83.11 | node1 |
client2 | 192.168.83.12 | node2 |
配置文件 | /ansible/files/exports ------/etc/exports |
分享目录 | /ansible_data |
挂载目录 | /mnt/nfs |
1、配置主机资产清单
master
[dev]
master
[test]
192.168.83.1[1:2]
[prod]
node2
[Webserver:children]
prod
[slb:children]
dev
test
测试三台主机是否联通:
[root@master ansible]# ansible -i inventory all -m ping
2、nfs-server实现功能
(1)安装nfs
(2)配置nfs
(3)创建组
(4)创建用户
(5)设置分享目录
(6)启动服务
(7)设置防火墙规则
[root@master ansible]# vim nfs_server.yml
---
- hosts: test
gather_facts: False #不执行setup模块获取主机相关信息
tasks:
- name: 1. Install nfs Server
yum:
name: nfs-utils
state: present #状态为立即执行
- name: 2. Configure nfs Server
copy:
src: ./files/exports
dest: /etc/exports
backup: yes #备份
- name: 3. Creat nfs group
group:
name: iii
gid: 222
- name: 4. Create nfs user
user:
name: jjj
uid: 333
create_home: no #不创建用户家目录
shell: /sbin/nologin #不设置系统交互的shell,不能登陆
- name: 5. Create nfs share directory
file:
path: /ansible_data
owner: jjj
group: iii
mode: '0775'
recurse: yes #设置递归
state: directory
- name: 6. Start nfs server
service:
name: nfs-server
state: started
enabled: yes #开机自启动
- name: 7. Modify firewall rule
firewalld:
service: "{{ item }}"
permanent: yes
state: enabled
immediate: yes
with_items:
- nfs
- rpc-bind
- mountd
检测语法:
[root@master ansible]# ansible-playbook nfs_server.yml --syntax-check
[WARNING]: Could not match supplied host pattern, ignoring: nfs
playbook: nfs_server.yml
正式运行:
[root@master ansible]# ansible-playbook nfs_server.yml
PLAY [test] ********************************************************************************
TASK [1. Install nfs Server] ***************************************************************
ok: [192.168.83.12]
ok: [192.168.83.11]
TASK [2. Configure nfs Server] ************************************************************
ok: [192.168.83.11]
ok: [192.168.83.12]
TASK [3. Creat nfs group] ******************************************************************
changed: [192.168.83.11]
changed: [192.168.83.12]
TASK [4. Create nfs user] ******************************************************************
changed: [192.168.83.11]
changed: [192.168.83.12]
TASK [5. Create nfs share directory] *******************************************************
changed: [192.168.83.12]
changed: [192.168.83.11]
TASK [6. Start nfs server] *****************************************************************
ok: [192.168.83.12]
ok: [192.168.83.11]
TASK [7. Modify firewall rule] *************************************************************
ok: [192.168.83.11] => (item=nfs)
ok: [192.168.83.12] => (item=nfs)
ok: [192.168.83.12] => (item=rpc-bind)
ok: [192.168.83.11] => (item=rpc-bind)
ok: [192.168.83.12] => (item=mountd)
ok: [192.168.83.11] => (item=mountd)
PLAY RECAP *********************************************************************************
192.168.83.11 : ok=7 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.83.12 : ok=7 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
配置nfs文件:
[root@master ansible]# cat files/exports
/ansible_data 192.168.83.0/24(rw,syn) #设置分享目录、主机网段、权限
3、nfs-client实现功能
(1)安装nfs客户端
(2)设置挂载目录
(3)挂载
---
- hosts: prod
tasks:
- name: 1. Insatall nfs-utils
yum:
name: nfs-utils
state: present
- name: 2. Mount point
file:
path: /mnt/nfs
state: directory
- name: 3. Mount nfs
mount:
src: node2:/ansible_data
path : /mnt/nfs
fstype: nfs #文件类型
state: mounted #mounted开机自动挂载 present临时挂载
检测语法:
[root@master ansible]# ansible-playbook nfs_client.yml --syntax-check
playbook: nfs_client.yml
[root@master ansible]# ansible-playbook nfs_client.yml --list-hosts
playbook: nfs_client.yml
play #1 (prod): prod TAGS: []
pattern: ['prod']
hosts (1):
node2
正式运行:
[root@master ansible]# ansible-playbook nfs_client.yml
PLAY [prod] ********************************************************************************
TASK [Gathering Facts] *********************************************************************
ok: [node2]
TASK [1. Insatall nfs-utils] ***************************************************************
ok: [node2]
TASK [2. Mount point] **********************************************************************
changed: [node2]
TASK [3. Mount nfs] ************************************************************************
changed: [node2]
PLAY RECAP *********************************************************************************
node2 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
在node2上检测:
[root@node2 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 886M 0 886M 0% /dev
tmpfs 904M 0 904M 0% /dev/shm
tmpfs 904M 9.7M 894M 2% /run
tmpfs 904M 0 904M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 10G 4.3G 5.8G 43% /
/dev/sr0 7.4G 7.4G 0 100% /guangpan
/dev/nvme0n1p1 195M 152M 44M 78% /boot
tmpfs 181M 1.2M 180M 1% /run/user/42
tmpfs 181M 3.5M 178M 2% /run/user/0
node2:/ansible_data 10G 4.2G 5.8G 43% /mnt/nfs