Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.3. 配置 Samba
以下流程初始化 Samba 环境并在集群节点上配置 Samba。
- 在集群的两个节点上执行以下步骤:
- 安装
samba、ctdb和cifs-utils软件包。#
yum install samba ctdb cifs-utils - 如果您正在运行 firewalld 守护进程,请运行以下命令启用
ctdb和samba服务所需的端口。#
firewall-cmd --add-service=ctdb --permanent#firewall-cmd --add-service=samba --permanent#firewall-cmd --reload - 输入以下命令以确保这些守护进程没有运行且不会在引导时启动。请注意,不是所有这些守护进程都可能存在或者在您的系统中运行。
#
systemctl disable ctdb#systemctl disable smb#systemctl disable nmb#systemctl disable winbind#systemctl stop ctdb#systemctl stop smb#systemctl stop nmb#systemctl stop winbind - 在
/etc/samba/smb.conf文件中,配置 Samba 服务器并设置[public]共享定义。例如:#
cat << END > /etc/samba/smb.conf[global]netbios name = linuxserverworkgroup = WORKGROUPserver string = Public File Serversecurity = usermap to guest = bad userguest account = smbguestclustering = yesctdbd socket = /tmp/ctdb.socket[public]path = /mnt/gfs2share/publicguest ok = yesread only = noEND有关将 Samba 配置为独立服务器的详情,如本例中所示,以及使用 testparm 实用程序验证smb.conf文件的详情,请参考 系统管理员指南中的 File and Print Servers 部分。 - 将集群节点的 IP 地址添加到
/etc/ctdb/nodes文件中。#
cat << END > /etc/ctdb/nodes192.168.1.151192.168.1.152END - 要在集群节点之间进行负载平衡,您可以将两个或者多个 IP 地址添加到
/etc/ctdb/public_addresses文件中,可用于访问此集群导出的 Samba 共享。这些是在 DNS 中为 Samba 服务器的名称配置的 IP 地址,也是 SMB 客户端要连接的地址。将 Samba 服务器的名称配置为具有多个 IP 地址的 DNS 类型 A 记录,并允许轮询 DNS 在集群节点中分发客户端。在本例中,DNS 条目linuxserver.example.com是由/etc/ctdb/public_addresses文件中列出的地址定义的。在这个版本中,DNS 会以轮循(round-robin)方式在集群节点中分发 Samba 客户端。请注意,在执行这种情况时,DNS 条目应该与您的需要匹配。将可用于访问此集群导出的 Samba 共享的 IP 地址添加到/etc/ctdb/public_addresses文件中。#
cat << END > /etc/ctdb/public_addresses192.168.1.201/24 eth0192.168.1.202/24 eth0END - 创建 Samba 组,然后为公共测试共享目录添加本地用户,将之前创建的组设置为主组群。
#
groupadd smbguest#adduser smbguest -g smbguest - 请确定在 CTDB 相关目录中 SELinux 上下文正确。
#
mkdir /var/ctdb/#chcon -Rv -u system_u -r object_r -t ctdbd_var_lib_t /var/ctdb/changing security context of ‘/var/ctdb/’ #chcon -Rv -u system_u -r object_r -t ctdbd_var_lib_t /var/lib/ctdb/changing security context of ‘/var/lib/ctdb/’
- 在集群的一个节点上执行以下步骤:
- 为 CTDB 锁定文件和公共共享设置目录。
[root@z1 ~]#
mkdir -p /mnt/gfs2share/ctdb/[root@z1 ~]#mkdir -p /mnt/gfs2share/public/ - 更新 GFS2 共享中的 SELinux 上下文。
[root@z1 ~]#
chown smbguest:smbguest /mnt/gfs2share/public/[root@z1 ~]#chmod 755 /mnt/gfs2share/public/[root@z1 ~]#chcon -Rv -t ctdbd_var_run_t /mnt/gfs2share/ctdb/changing security context of ‘/mnt/gfs2share/ctdb/’ [root@z1 ~]#chcon -Rv -u system_u -r object_r -t samba_share_t /mnt/gfs2share/public/changing security context of ‘/mnt/gfs2share/public’