对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
写在前面
- 考试顺便整理
- 博文内容整理涉及使用 Ansible 部署 NFS 客户端和服务端
- 理解不足小伙伴帮忙指正
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
涉及到的文件
1 2 3 4 5 6 7 8 9 10
| [student@workstation filestorage-automation]$ ls ansible.cfg inventory nfs_client.yml nfs_server.yml smb_client.yml smb_server.yml smb_vars.yml templates [student@workstation filestorage-automation]$ tree . . ├── ansible.cfg ├── inventory ├── nfs_client.yml ├── nfs_server.yml └── templates └── share.exports.j2
|
配置文件和主机清单文件,不多解释
1 2 3 4 5 6 7 8 9 10 11 12 13
| [student@workstation filestorage-automation]$ cat ansible.cfg [defaults] inventory=inventory remote_user=devops [student@workstation filestorage-automation]$ cat inventory [servers] serverd.lab.example.com
[clients] servera.lab.example.com serverb.lab.example.com serverc.lab.example.com [student@workstation filestorage-automation]$
|
客户端配置
- 安装nfs-utils软件包:使用yum模块确保目标主机上安装了nfs-utils软件包。
- 挂载NFS共享并添加到/etc/fstab:使用mount模块将NFS共享挂载到指定的挂载点,fstype参数设置为nfs表示文件系统类型为NFS。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [student@workstation filestorage-automation]$ cat nfs_client.yml --- - name: Access an NFS export hosts: servera.lab.example.com become: true vars: shared_dir: /nfsshare mount_point: /datanfs
tasks: - name: the nfs-utils package is installed yum: name: nfs-utils state: present
- name: the NFS export is mounted and in /etc/fstab mount: path: "{{ mount_point }}" src: serverd.lab.example.com:{{ shared_dir }} state: mounted fstype: nfs
|
服务端配置
- 安装
nfs-utils
软件包:使用yum
模块确保目标主机上安装了nfs-utils
软件包。
- 目录存在性检查:使用file模块检查目标目录(
{{ shared_dir }}
)是否存在。如果目录不存在,则使用指定的所有者、组和权限创建该目录。
- 导出目录:使用template模块根据模板文件(
templates/share.exports.j2
)生成NFS导出配置文件(/etc/exports.d/share.exports
)。该配置文件定义了要导出的目录以及访问权限等参数。导出配置文件的所有者、组和权限也被指定。
- 启动并启用
nfs-server
服务:使用service模块启动并启用nfs-server服务,确保NFS服务器正在运行,并在系统启动时自动启用该服务。
- 打开nfs防火墙服务:使用firewalld模块打开nfs防火墙服务,确保NFS流量可以通过防火墙。service参数指定要打开的服务为nfs,state参数设置为enabled表示启用该服务,immediate和permanent参数设置为yes表示立即生效并在系统重启后仍然生效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| [student@workstation filestorage-automation]$ cat nfs_server.yml --- - name: Export a directory using NFS hosts: serverd.lab.example.com become: true vars: shared_dir: /nfsshare
tasks: - name: the nfs-utils package is installed yum: name: nfs-utils state: present
- name: the directory exists file: path: "{{ shared_dir }}" owner: student group: root mode: '0755' state: directory
- name: the directory is exported template: src: templates/share.exports.j2 dest: /etc/exports.d/share.exports owner: root group: root mode: '0644' notify: reload exports
- name: the nfs-server service is started and enabled service: name: nfs-server state: started enabled: yes
- name: the nfs firewall service is opened firewalld: service: nfs state: enabled immediate: yes permanent: yes
handlers: - name: reload exports service: name: nfs-server state: reloaded [student@workstation filestorage-automation]$
|
生成NFS共享的导出配置文件
1 2 3 4
| [student@workstation filestorage-automation]$ cat templates/share.exports.j2 {{ shared_dir }}{% for host in groups['clients'] %} {{ host }}(rw) {%- endfor %}
|
博文部分内容参考
© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦 :)
红帽服务管理与自动化(RH358)
授课笔记
© 2018-至今 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)