playbook配置nfs服务

server192.168.83.10mater
client1192.168.83.11node1
client2192.168.83.12node2
配置文件/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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值