설치한 Docker 호스트에 Lenovo XClarity Administrator 컨테이너를 설치하고 구성합니다.
시작하기 전에
호스트 시스템이 최소 하드웨어 및 소프트웨어 요구사항을 충족하는지 확인하십시오(하드웨어 및 소프트웨어 전제조건 참고).
XClarity Administrator 에서 필요한 포트를 포함하여 모든 적합한 포트가 사용 설정되어 있는지 확인하십시오(포트 사용 가능성 참조).
호스트 시스템이 관리하려는 장치와 동일한 네트워크에 있어야 합니다.
호스트 OS와 XClarity Administrator 이(가) 동일한 NTP 서버를 사용하는지 확인하십시오.
XClarity Administrator 에서는 네트워크의 사용자 지정 이름을 데이터 및 하드웨어 관리와 OS 배포에 사용할 수 있습니다(네트워크 구성 참고). 이 예는 다음 절차에서 eth0을 사용합니다.
XClarity Administrator 에서는 데이터 및 하드웨어 관리에 사용되는 네트워크와 OS 배포에 사용되는 네트워크에 대해 네트워크의 사용자 지정 이름을 사용할 수 있습니다(네트워크 구성 참고). 이 예는 다음 절차에서 각각 eth0 및 eth1을 사용합니다.
호스트 시스템의 커널에 macvlan 네트워크가 로드되어야 합니다. 로드되었는지 확인하려면 lsmod | grep macvlan 명령을 사용하십시오. macvlan을 커널에 로드하려면 modprobe macvlan 명령을 실행하십시오.
동일한 호스트에서 여러 XClarity Administrator 컨테이너를 실행하는 경우 각 컨테이너에 대해 고유한 이름과 IP 주소를 사용해야 합니다.
ThinkServer 및 기타 레거시 장치를 관리하려는 경우 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 다운로드 웹 페이지 에서 클라이언트 워크스테이션으로 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 을 편집하고 다음 속성을 업데이트합니다.이미지 속성을 2단계에서 사용한 설치 이미지 파일의 이름으로 설정합니다.docker tag 명령을 사용하여 이미지 파일 이름을 변경할 수 있습니다(예: '최신'으로 변경).
원격 공유를 원격 펌웨어 리포지토리로 사용하고 XClarity Administrator 백업을 저장하려면 볼륨 속성에서 각 원격 공유에 대한 호스트 탑재 지점을 설정합니다. dns 속성을 DNS 서버의 IP 주소로 설정합니다.컨테이너는 호스트에 사용할 수 있는 프로세서 및 메모리 리소스 풀을 공유합니다. 선택적으로 CPU 및 메모리 속성을 설정하여 리소스 사용량에 대한 제한사항을 정의합니다. 컨테이너에서 macvlan 인터페이스의 상위 인터페이스로 사용할 호스트 시스템의 네트워크 인터페이스 이름에 상위 속성을 설정합니다. 이 인터페이스는 컨테이너에 할당된 서브넷에 직접 액세스할 수 있어야 합니다. 네트워크 토폴로지에 따라 서브넷 및 게이트웨이 를 설정합니다. 일반적으로 서브넷과 게이트웨이는 ${ADDRESS}이(가) 속하는 관리 네트워크에 해당합니다. IPv6을 지원하려면 enable_ipv6 속성을 'true'로 설정하고, ipv6_address 속성을 IPv6 주소로 설정하고, 네트워크 토폴로지에 따라 서브넷 및 게이트웨이 속성 세트를 추가하십시오(일반적으로 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 - subnet: "2001:8003:7d51:2005::/80"
다음 명령을 실행하여 이미지를 Docker에 배포합니다. 여기에서 <ENV_FILENAME> 은(는) 2단계에서 만든 환경 변수 파일의 이름입니다. COMPOSE_HTTP_TIMEOUT=300 docker-compose –p ${CONTAINER_NAME} ––env–file <ENV_FILENAME> up -d