先决条件
不适用于动态节点
这些先决条件不适用于动态节点,因为当您选择以非根用户身份运行构建节点时,会自动安装这些先决条件。
初始化静态节点时生成的安装脚本不会安装任何依赖项,否则当您是根用户时将自动安装这些依赖项。这些依赖项必须手动安装,如本节所述。
设置无根Docker
设置静态节点无根docker的步骤如下:
- 以root用户身份登录到静态节点,并安装上面提到的所有先决条件。
运行以下命令安装无根docker,并创建一个名为
pipelinesRootless
sudo groupadd -g 1066 pipelinesRootless sudo adduser——system——home/ home/pipelinesRootless——gid 1066——uid 1066——shell /bin/bash pipelinesRootless sudo loginctl enable-linger pipelinesRootless sudo apt-get install -y uidmap XDG_RUNTIME_DIR=/run/user/1066 home =/home/pipelinesRootless curl -fsSL https://get.docker.com/rootless | sudo -E -u pipelinesRootless sh
以非root用户初始化静态节点
初始化静态节点前,需要先安装先决条件然后建立无根的码头工人。
以非root用户初始化静态节点。
- 创建一个静态节点池。选择启用使用非root用户运行的节点复选框,添加节点池。
- 添加一个静态节点并生成一个手动初始化脚本。生成的脚本(用于静态)对于非根目录略有不同。
SSH到节点,并:
- 切换到
pipelinesRootless
用户。 - 将生成的脚本复制到
/home/pipelinesRootless
。 - 运行
Chmod +x init.sh
命令提供可执行权限。init.sh
是脚本的名称。 - 执行初始化脚本。
例子jane@ip-10-90-104-98:/home$ su pipelinesRootless密码:pipelinesRootless@ip-10-90-104-98:~$ chmod +x init.sh pipelinesRootless@ip-10-90-104-98:~$ ./init.sh /usr/bin/curl %总%接收% Xferd平均速度时间时间时间当前下载上传总花费左速度100 10.4M 100 10.4M 00 66.9M 0——:——:-- --:——:-- --:——:——66.9M |___检查操作系统…架构:x86_64 |___操作系统:Ubuntu |___版本:18.04 |___ wget已安装,跳过…__ tar已安装,跳过…__ jq已经安装,跳过…|___节点已安装,跳过…|___ NTP已经存在,跳过…工作……{"insecure- registres ":[]} |___删除现有的reqKick服务…正在启动reqKick服务…创建符号链接/home/ pipelinesrootless /.config/systemd/user/multi-user.target.wants/pipelines-reqKick。/home/ pipelinesrootless /.config/systemd/user/pipelines-reqKick.service Checking if pipelines-reqKick.service is active pipelines-reqKick.service is active
- 切换到
限制
以非root用户身份运行动态或静态构建节点具有以下限制:
- 对于静态节点,构建节点代理在重新启动计算机时不会自动重新启动。每次机器重新启动时,用户必须手动运行初始化脚本来重新初始化节点。
这个限制不适用于动态节点。 - 如果您运行reqKick与非根并选择运行时为
宿主
,您将无法执行允许root用户执行的操作,例如安装库、访问所有文件系统等。 - 非根用户没有在构建节点中添加自定义CA的权限。这样做就成了管理员的责任。