云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

添加静态或动态节点池时,可以选择在没有root权限的情况下初始化它们。

此功能仅适用于Ubuntu 18和Ubuntu 20:

  • AWS /质量- Ubuntu 18和Ubuntu 20
  • Azure只支持Ubuntu 20
  • 静态节点- Ubuntu 18和Ubuntu 20

enforceNonRootNodes全局设置

管道管理员可以使用enforceNonRootNodes系统级设置,强制只使用那些配置了非root的节点池。当这个全局设置设置为真正的,优先于用户界面中配置的非root用户。注意,目前只有Ubuntu 18和Ubuntu 20支持这个功能。

根据管道安装的类型,将enforceNonRootNodesSetting可配置如下:

  • 公共图:如果安装正在使用公共图表,请更改其中的设置tvalues.yml文件。
  • 码头工人:如果使用Docker进行安装,则更改运行时配置章节。管道系统YAML
页面内容

先决条件

不适用于动态节点

这些先决条件不适用于动态节点,因为当您选择以非根用户身份运行构建节点时,这些先决条件将自动安装。

初始化静态节点时生成的安装脚本不会安装任何依赖项,否则当您是根用户时将自动安装这些依赖项。这些依赖项必须手动安装,如本节所述。

  • 必须在构建节点中安装以下先决条件。因为用户不是根用户,所以他们不能安装这些库。
    • 旋度
    • 金桥
    • Wget
    • 焦油
    • node . js v14.17.0
    • 国家结核控制规划
  • 交换空间已在系统中预配置。
  • 自定义证书在节点中手动更新。
  • 目前,只有手动初始化节点是支持的。因此,使用您希望用于运行其他服务(如reqKick、rootless-docker等)的相同用户初始化该节点。

    reqKick

    reqKick是需要在构建节点上运行以编排构建的管线代理。

设置Rootless Docker

执行以下步骤为静态节点设置无根docker:

  1. 以root用户登录静态节点,安装上述所有先决条件。
  2. 运行以下命令安装无根docker,并创建一个非根使用calledpipelinesRootless

    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用户初始化静态节点。

  1. 创建一个静态节点池.选择启用非root用户运行的节点添加节点池时的复选框。
  2. 添加一个静态节点并生成一个手动初始化脚本。生成的脚本(用于静态)对于非根目录略有不同。
  3. SSH到节点,并:

    1. 切换到pipelinesRootless用户。
    2. 将生成的脚本复制到/home/pipelinesRootless
    3. 运行Chmod +x init.sh命令提供可执行权限。
      init.sh脚本的名称。
    4. 执行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的权限。这样做是管理员的责任。
  • 没有标签
版权所有©2022 JFrog Ltd.