先决条件
不适用于动态节点
这些先决条件不适用于动态节点,因为当您选择以非根用户身份运行构建节点时,这些先决条件将自动安装。
初始化静态节点时生成的安装脚本不会安装任何依赖项,否则当您是根用户时将自动安装这些依赖项。这些依赖项必须手动安装,如本节所述。
设置Rootless Docker
执行以下步骤为静态节点设置无根docker:
- 以root用户登录静态节点,安装上述所有先决条件。
运行以下命令安装无根docker,并创建一个非根使用called
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 - ssl https://get.docker.com/rootless | sudo -E -u pipelinesRootless sh
以非根用户初始化静态节点
在初始化静态节点之前,请先安装先决条件然后设置无根的码头工人.
使用非root用户初始化静态节点。
- 创建一个静态节点池.选择启用非root用户运行的节点添加节点池时的复选框。
- 添加一个静态节点并生成一个手动初始化脚本。生成的脚本(用于静态)对于非根目录略有不同。
SSH到节点,并:
- 切换到
pipelinesRootless
用户。 - 将生成的脚本复制到
/home/pipelinesRootless
. - 运行
Chmod +x init.sh
命令提供可执行权限。init.sh
脚本的名称。 - 执行init脚本。
例子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 % Total % Received % Xferd Average Speed Time Time Time当前Dload Upload Total spend Left Speed 100 10.4M 100 10.4M 00 66.9M 0——:——:-- --:——:-- --:——:——66.9M |___检查操作系统…|___架构:x86_64 |___操作系统:Ubuntu |___版本:18.04 |___ wget已经安装,跳过…|___ tar已经安装,跳过…|___ jq已经安装,跳过…|___节点已经安装,跳过…|___ NTP已经存在,跳过…工作……|___在docker配置中添加了不安全的注册表:{"insecure- registres ":[]} |___删除现有的reqKick服务…|___启动reqKick服务…创建符号链接/home/ pipelinesrootless /.config/systemd/user/multi-user.target.wants/ pipelinesreqkick。service→/home/ pipelinesrootless /.config/systemd/user/ pipes - reqkick .service。 Checking if pipelines-reqKick.service is active pipelines-reqKick.service is active
- 切换到
限制
以非根用户运行动态或静态构建节点有以下限制:
- 对于静态节点,构建节点代理在重新启动计算机时不会自动重新启动。每次重新启动计算机时,用户必须手动运行初始化脚本来重新初始化节点。
此限制不适用于动态节点。 - 如果使用非root运行reqKick,并选择运行时为
宿主
,您将不能执行根用户允许执行的操作,例如安装库、访问所有文件系统等。 - 非root用户没有在构建节点中添加自定义CA的权限。这样做是管理员的责任。