在SELinux模式下安装Rancher-RHEL/CentOS


从1.6+版本后支持

为了使Rancher在RHEL/CentOS的SELinux模式下正常工作,您需要在安装有RPM包container-selinux-2.14(或更高的版本)的主机上运行Rancher Server容器。同时,全部的agent主机也要安装这个包。如果您安装了较低版本的container-selinux包,您需要构建额外的SELinux模块,从而使Rancher正常工作。

您可以通过这个命令来查看这个包的版本:rpm -q container-selinux

  1. # Check container-selinux version
  2. $ rpm -q container-selinux
  3. container-selinux-2.19-2.1.el7.noarch

构建额外的SELinux模块

安装包并构建SELinux模块

为了安装另外的SELinux模块,您需要安装 selinux-policy-devel 这个包。

  1. $ yum install selinux-policy-devel

构建模块

创建一个名叫 virtpatch.te 的文件并写入以下内容

  1. policy_module(virtpatch, 1.0)
  2.  
  3. gen_require(`
  4. type svirt_lxc_net_t;
  5. ')
  6.  
  7. allow svirt_lxc_net_t self:netlink_xfrm_socket create_netlink_socket_perms;

构建模块

  1. $ make -f /usr/share/selinux/devel/Makefile

运行 make 命令后,当构建成功后,一个名叫 virtpatch.pp 的文件将会被创建。virtpatch.pp 是编译后的SELinux模块

加载模块

在SELinux模块被构建后,使用以下命令加载。

  1. # Load the module
  2. $ semodule -i virtpatch.pp
  3. # Verify the module is loaded
  4. $ semodule -l