在刚刚安装的 Docker 主机上安装和配置 Lenovo XClarity Administrator 容器。
开始之前
确保主机系统满足最低的硬件和软件要求(请参阅硬件和软件先决条件)。
确保已启用所有相应端口,包括 XClarity Administrator 需要的端口(请参阅端口可用性)。
确保主机系统与要管理的设备在同一网络上。
确保主机操作系统和 XClarity Administrator 使用相同的 NTP 服务器。
XClarity Administrator 允许对用于数据管理、硬件管理和操作系统部署的网络使用自定义名称(请参阅网络配置)。以下过程中的相应示例使用的是 eth0。
XClarity Administrator 允许对用于数据和硬件管理的网络和用于操作系统部署的网络使用自定义名称(请参阅网络配置)。以下过程中的相应示例分别使用 eth0 和 eth1。
确保在主机系统上的内核中加载了 macvlan 网络。要检查是否已加载该网络,请使用 lsmod | grep macvlan 命令。要将 macvlan 加载到内核中,请运行 modprobe macvlan 命令。
在同一主机上运行多个 XClarity Administrator 容器时,确保为每个容器使用唯一的名称和 IP 地址。
如果要管理 ThinkServer 和其他 Legacy 设备,请确保启用 Docker 以支持 IPv6。
- 编辑 /etc/docker/daemon.json 文件,将 ipv6 键设为 true,并将 fixed-cidr-v6 键设为您的 IPv6 子网。
以下是一个示例 daemon 文件。
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true
}
- 运行以下命令重新加载 Docker 配置文件。
XClarity Administrator不是 作为特权容器运行。
XClarity Administrator 容器中未配置防火墙规则。要为主机系统上的容器添加防火墙规则,请完成以下步骤。
通过运行以下命令获取由“NSPID”标识的 Docker 进程 ID:
docker inspect --format='{{ .State.Pid }}' "$CONTAINER_NAME"
通过运行以下命令创建符号链接:
LINKFILE="/var/run/netns/$NSPID"
mkdir -p /var/run/netns
/bin/rm -f "$LINKFILE"
ln -s "/proc/$NSPID/ns/net" "$LINKFILE"
通过运行以下命令配置适当的 iptables 规则:
ip netns exec $NSPID iptables -I OUTPUT -j DROP
通过运行以下命令确保删除所有链接:
过程
要使用 Docker compose 安装 XClarity Administrator 容器,请完成以下步骤。
- 从 XClarity Administrator 下载 Web 页面 将 XClarity Administrator 虚拟设备映像、环境文件和 YAML 文件下载到客户端工作站。登录到该网站,然后使用提供给您的访问密钥下载该映像。
- 通过运行以下命令将 XClarity Administrator 容器镜像导入 Docker 主机。
docker load -i lnvgy_sw_lxca_<ver>_anyos_noarch.tar.gz
- 编辑 docker_compose.env 文件,更新以下环境变量。
- CONTAINER_NAME。唯一的容器名称,用于为每个 XClarity Administrator 实例创建 Docker 卷(例如,CONTAINER_NAME=LXCA-203)
- ADDRESS。容器的静态 IPv4 地址(例如,ADDRESS=192.0.2.0)
- BACKUP_MOUNT。(可选)可用于存储 XClarity Administrator 备份的远程共享路径。必须为 /mnt/backup_share。
- FIRMWARE_MOUNT。(可选)可用作固件更新远程存储库的远程共享路径。必须为 /mnt/fw_share。
以下是一个示例环境文件。
CONTAINER_NAME="LXCA-203"
ADDRESS="192.0.2.0"
BACKUP_MOUNT="/mnt/backup_share"
FIRMWARE_MOUNT="/mnt/fw_share"
- 编辑 docker_compose.yml,更新以下属性。
- 将 image 属性设置为步骤 2 中使用的安装映像文件的名称。
可使用 docker tag 命令更改映像文件名(例如,更改为“latest”)。
- 如果要使用远程共享作为远程固件存储库并存储 XClarity Administrator 备份,请在 volumes 属性中为每个远程共享设置主机装载点。
- 将 dns 属性设为 DNS 服务器的 IP 地址。
- 容器会共享主机可用的处理器和内存资源池。(可选)通过设置 cpus 和 memory 属性来定义资源使用限制。
- 将 parent 属性设置为主机系统上的网络接口名称以用作容器中 macvlan 接口的父接口。此接口必须可以直接访问分配给容器的子网。
- 根据您的网络拓扑设置 subnet 和 gateway。通常,子网和网关用于 ${ADDRESS} 所属的管理网络。
- 如果要支持 IPv6,请将 enable_ipv6 属性设为 true,将 ipv6_address 属性设为 IPv6 地址,并根据您的网络拓扑再添加一组 subnet 和 gateway 属性(通常针对该 IPv6 地址所属的管理网络)。
下面是启用了 IPv6 的 YML 文件示例。
version: '3.8'
services:
lxca:
image: lenovo/lxca:4.1.0-124
container_name: ${CONTAINER_NAME}
tty: true
stop_grace_period: 60s
volumes:
#bind mount example
- /home/<HOST_MOUNT_POINT_FOR_BACKUP>:${BACKUP_MOUNT}
- /home/<HOST_MOUNT_POINT_FOR_FW_SHARE>:${FIRMWARE_MOUNT}
#docker volume mount
- data:/opt/lenovo/lxca/data
- postgresql:/var/lib/postgresql
- log:/var/log
- confluent-etc:/etc/confluent
- confluent-log:/var/log/confluent
- confluent:/var/lib/confluent
- propconf:/opt/lenovo/lxca/bin/conf
- ssh:/etc/ssh
- xcat:/etc/xcat
networks:
lan1:
ipv4_address: ${ADDRESS}
ipv6_address: "2001:8003:7d51:2000::2"
lan2:
ipv4_address: 192.0.1.3
ipv6_address: "2001:8003:7d51:2003::2"
dns:
- 192.0.40.10
- 192.0.50.11
deploy:
resources:
limits:
cpus: "2.0"
memory: "8g"
volumes:
data:
name: ${CONTAINER_NAME}-data
postgresql:
name: ${CONTAINER_NAME}-postgresql
log:
name: ${CONTAINER_NAME}-log
confluent-etc:
name: ${CONTAINER_NAME}-confluent-etc
confluent-log:
name: ${CONTAINER_NAME}-confluent-log
confluent:
name: ${CONTAINER_NAME}-confluent
propconf:
name: ${CONTAINER_NAME}-propconf
ssh:
name: ${CONTAINER_NAME}-ssh
xcat:
name: ${CONTAINER_NAME}-xcat
networks:
lan1:
name: lan1
driver: macvlan
enable_ipv6: true
driver_opts:
parent: eno1
ipam:
config:
- subnet: 192.0.0.0/19
gateway: 192.0.30.1
- subnet: "2001:8003:7d51:2000::/80"
gateway: "2001:8003:7d51:2000::1"
lan2:
name: lan2
driver: macvlan
enable_ipv6: true
driver_opts:
parent: virbr0
ipam:
config:
- subnet: 192.0.122.0/24
gateway: 192.0.122.1
- subnet: "2001:8003:7d51:2003::/80"
gateway: "2001:8003:7d51:2003::1"
- 通过运行以下命令在 Docker 中部署映像,其中 <ENV_FILENAME> 是在步骤 2 中创建的环境变量文件的名称。
COMPOSE_HTTP_TIMEOUT=300 docker-compose –p ${CONTAINER_NAME} ––env–file <ENV_FILENAME> up -d