virtualbmc_vbmc_설정하기

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
virtualbmc_vbmc_설정하기 [2019/08/26 23:47] – 만듦 koovvirtualbmc_vbmc_설정하기 [2022/01/26 08:11] (현재) koov
줄 1: 줄 1:
 ====== VirtualBMC (vbmc) 설정하기 ====== ====== VirtualBMC (vbmc) 설정하기 ======
-출처 : https://x-vps.com/blog/?p=16+ --- //[[koovis@gmail.com|이강우]] 2021/02/05 14:44//
  
-===== VBMC를 통한 TripleO 및 IPMI ===== +아래 내은 CentOS 7 환경에서 테스트 되었습니다. 
-instack을 사하여 가상 환경에서 TripleO를 테스트 할 때 Ironic이 기본 pxe_ssh 드라이버 대신 IPMI를 사용하여 가상 시스템을 제어하기를 원했습니다.+===== 오픈스택 레포지토리 이용 =====
  
-내가 사용한 설정은 매우 간단합니다. Centos 7.2를 설치 한 Triplemetal 시스템 한 대는 TripleO documentation을 사용하여 환경 설정을 진행했습니다 . 글을 쓰는 시점에서 저는 Mitaka와 Newton에서 테스트를 해왔습니다. 
- 
-이미 작동중인 언더 클라우드 VM 설정이 있고 그에 언더 클라우드 소프트웨어를 설치했다고 가정합니다 ( openstack undercloud install ).  
-또한 필요한 이미지 (overcloud-full, ironic-python-agent 등)를 이미 가져 왔습니다. 이제 "베어 메탈"가상 머신을 정의하는 instackenv.json을 Ironic으로 가져올 준비가되었습니다. 
- 
-호스트 (하이퍼 바이저-libvirt를 실행중인 베어 메탈 머신과 스택 된 "베어 메탈"가상 머신)에서 VirtualBMC를 설치하고 구성합니다. 
- 
-  
- 
-===== 하이퍼 바이저에서 ===== 
-VirtualBMC는 pip install을 통해 가장 잘 설치할 수 있습니다. yum을 통해 pip를 설치할 수 있습니다. 그러나 그것을 복제하고 git 에서 수동으로 설치하도록 선택할 수 있습니다 . 
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
-$ sudo yum install python-pip -y +yum -y install centos-release-openstack-train 
-... +yum -y install python2-virtualbmc
-$ sudo pip install virtualbmc +
-</code> +
-</WRAP>+
  
-주) 필요한 경우 추가로 'libvirt-devel' 패키지를 설치해야 할 수 도 있습니다.+# vbmc 등록/시작 
 +vbmc add ik-metal0 --username admin --password secret@1337 --port 6230 
 +vbmc start ik-metal0
  
-<WRAP prewrap> +# ipmi 동작 확인 
-<code bash> +ipmitool -I lanplus -U admin -P secret@1337 -H 10.80.80.1 -p 6230 power status
-$ sudo yum install -y gcc python-devel libvirt-devel+
 </code> </code>
 </WRAP> </WRAP>
  
-또한 방화벽을 사용하여 iptables를 제어하는 ​​것이 좋습니다. 히 설치되어 있지 않은 경우 yum을 사용하여 설치하고 활성화 할 수 있습니다.+==== RHEL 7 의 경우 ==== 
 + 
 +RHEL의 경우 오픈스택''11'', ''12'', ''13'' 레포지토리를 등록하면 사용할 수 있다. 
 +__''14'' 이후 버에는 포함되어있지 않다__.
  
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
-$ sudo yum install firewalld +$ sudo subscription-manager repos --enable=rhel-7-server-openstack-13-rpms 
-$ sudo systemctl enable firewalld +$ sudo yum install -y python-virtualbmc
-$ sudo systemctl start firewalld+
 </code> </code>
 </WRAP> </WRAP>
  
-아이디어는 호스트에 하나의 IP (기본적으로 192.168.122.1)가 있으며 instack VM에서 액세스 할 수 있다는 것입니다. IPMI는 기본적으로 포트 623을 사용합니다. 예를 들어 ipmitool 명령을 실행하면 기본적으로이 포트가 사용됩니다. 그러나 -p 플래그를 제공하고 다른 포트를 지정할 수 있습니다. IP가 비슷하기 때문에 VM마다 다른 포트가 필요합니다 (호스트의 IP 192.168.122.1). 
  
-vbmc를 통해 제어하려는 상 머신의 양에 따라 언더 클라우드 VM이 vbmc 데몬에 도달 할 수 있도록 필요한 포트에 대한 액세스를 허용하십시오. 제 경우에는 5 개의 오버 클라우드 가상 머신 (baremetalbrbm_0..4)이있었습니다. 이것은 포트를 할당하기로 선택한 방법입니다.+===== 오픈스택 레포지토리 추가 이 용하는 방법 =====
  
-baremetalbrbm_0은 기본 IPMI 포트 623을 가져  +출처 : https://ikhsanputra.com/posts/2020-03-16-install-virtualbmc-on-centos-7/
-옵니다. baremetalbrbm_1 포트 624  +
-baremetalbrbm_2 포트 625  +
-baremetalbrbm_3 포트 626  +
-baremetalbrbm_4 포트 627 +
- +
-방화벽에서 다음 포트를 허용합니다.+
  
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
-$ sudo firewall-cmd --permanent --zone=public --add-port=623-627/udp +yum -y update 
-$ sudo firewall-cmd --reload +yum -y install python3-pip python3-devel gcc libvirt-devel ipmitool 
-</code> +pip3 install --upgrade pip 
-</WRAP>+pip3 install virtualbmc
  
-이제 가상 머신 ( "도메")을 vbmc에 추가 할 수 있습니다.+# 데몬 확 
 +vbmcd 
 +vbmc list
  
-<WRAP prewrap> +vbmc 등록/시작 
-<code bash> +vbmc add ik-metal0 --username admin --password secret@1337 --port 6230 
-$ sudo vbmc list +vbmc start ik-metal0 
-+-------------+--------+---------+------+ + 
-| Domain name | Status | Address | Port | +# ipmi 동작 확인 
-+-------------+--------+---------+------+ +ipmitool -I lanplus -U admin -P secret@1337 -H 10.80.80.1 -p 6230 power status
-+-------------+--------+---------+------+ +
-$ sudo vbmc add baremetalbrbm_0 --username root --password calvin --port 623 +
-$ sudo vbmc add baremetalbrbm_1 --username root --password calvin --port 624 +
-$ sudo vbmc add baremetalbrbm_2 --username root --password calvin --port 625 +
-$ sudo vbmc add baremetalbrbm_3 --username root --password calvin --port 626 +
-$ sudo vbmc add baremetalbrbm_4 --username root --password calvin --port 627 +
-$ sudo vbmc list +
-+-----------------+--------+---------+------+ +
-|   Domain name   | Status | Address | Port | +
-+-----------------+--------+---------+------+ +
-| baremetalbrbm_0 |  down  |    ::   | 623  | +
-| baremetalbrbm_1 |  down  |    ::   | 624  | +
-| baremetalbrbm_2 |  down  |    ::   | 625  | +
-| baremetalbrbm_3 |  down  |    ::   | 626  | +
-| baremetalbrbm_4 |  down  |    ::   | 627  | +
-+-----------------+--------+---------+------++
 </code> </code>
 </WRAP> </WRAP>
  
-그래! 추했습니다. 이제 시작하됩니다.+이후 재부팅시 ''vbmcd''를 다시 실행하려고 하면 이미 떠있다고 하면서 오류가 발생하는 경우가 있다. 이런경우 pid파일을 거해주면 다.
  
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
-$ for i in {0..4};do sudo vbmc start baremetalbrbm_${i};done +rm -rf ~/master.pid 
-2016-12-06 13:36:40,806.806 685 INFO VirtualBMC [-] Virtual BMC for domain baremetalbrbm_0 started +rm -rf ~/.vbmc
-2016-12-06 13:36:41,034.034 694 INFO VirtualBMC [-] Virtual BMC for domain baremetalbrbm_1 started +
-2016-12-06 13:36:41,251.251 703 INFO VirtualBMC [-] Virtual BMC for domain baremetalbrbm_2 started +
-2016-12-06 13:36:41,467.467 712 INFO VirtualBMC [-] Virtual BMC for domain baremetalbrbm_3 started +
-2016-12-06 13:36:41,684.684 721 INFO VirtualBMC [-] Virtual BMC for domain baremetalbrbm_4 started+
 </code> </code>
 </WRAP> </WRAP>
  
-그들이 잘 듣고 있는지 확인합시다 : 
  
-<WRAP prewrap> +====== 활용사례 ====== 
-<code bash> +  * [[VBMC를 통한 TripleO 및 IPMI]]
-$ sudo vbmc list +
-+-----------------+---------+---------+------+ +
-|   Domain name    Status | Address | Port | +
-+-----------------+---------+---------+------+ +
-| baremetalbrbm_0 | running |    ::   | 623  | +
-| baremetalbrbm_1 | running |    ::   | 624  | +
-| baremetalbrbm_2 | running |    ::   | 625  | +
-| baremetalbrbm_3 | running |    ::   | 626  | +
-| baremetalbrbm_4 | running |    ::   | 627  | +
-+-----------------+---------+---------+------++
  
-$ sudo lsof -Pni:623-627 +  * https://docs.openstack.org/virtualbmc/latest/user/index.html 
-COMMAND PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME +  * https://docs.openstack.org/project-deploy-guide/tripleo-docs/latest/environments/virtualbmc.html 
-vbmc    685 root    3u  IPv6 4622045      0t0  UDP *:623 +  * https://access.redhat.com/documentation/ko-kr/red_hat_openstack_platform/11/html/director_installation_and_usage/appe-power_management_drivers
-vbmc    694 root    3u  IPv6 4622046      0t0  UDP *:624 +
-vbmc    703 root    3u  IPv6 4622047      0t0  UDP *:625 +
-vbmc    712 root    3u  IPv6 4625461      0t0  UDP *:626 +
-vbmc    721 root    3u  IPv6 4616064      0t0  UDP *:627 +
-</code> +
-</WRAP> +
  
-Instack VM에서+====== systemd 등록 ======
  
-이제 instack vm에 로그인하고 ipmitool을 사용하여 연결을 확인할 수 있습니다. +''/etc/systemd/system/vbmcd.service'' 파일을 아래와 이 등록하여 사용한.
- +
-<WRAP prewrap> +
-<code bash> +
-[stack@instack ~]$ ipmitool -I lanplus -U root -P calvin -H 192.168.122.1 power status     # defaults to 623 +
-Chassis Power is off +
-[stack@instack ~]$ ipmitool -I lanplus -U root -P calvin -H 192.168.122.1 power status -p 627 +
-Chassis Power is off +
-</code> +
-</WRAP> +
- +
-instack.json은 다음과 아야합니다 ( "name": "bm [0-4]"속성을 추가하여 나중에 전체 UUID를 복사 / 붙여 넣기하지 않고도 명령을 더 쉽게 실행할 수 있기 때문에 추가했습니)+
  
 <WRAP prewrap> <WRAP prewrap>
 <code vim> <code vim>
-+[Install
-  "nodes": [ +WantedBy = multi-user.target
-    { +
-      "mac":+
-        "00:3f:f7:9f:2e:eb" +
-      ], +
-      "name": "bm0", +
-      "cpu": "2", +
-      "memory": "8192", +
-      "disk": "42", +
-      "arch": "x86_64", +
-      "pm_user": "root", +
-      "pm_addr": "192.168.122.1", +
-      "pm_password": "calvin", +
-      "pm_type": "pxe_ipmitool" +
-    }, +
-    { +
-      "mac":+
-        "00:1e:c1:2c:e0:35" +
-      ], +
-      "name": "bm1", +
-      "cpu": "2", +
-      "memory": "8192", +
-      "disk": "42", +
-      "arch": "x86_64", +
-      "pm_user": "root", +
-      "pm_addr": "192.168.122.1", +
-      "pm_password": "calvin", +
-      "pm_type": "pxe_ipmitool" +
-    }, +
-    { +
-      "mac":+
-        "00:56:34:66:7a:fc" +
-      ], +
-      "name": "bm2", +
-      "cpu": "2", +
-      "memory": "8192", +
-      "disk": "42", +
-      "arch": "x86_64", +
-      "pm_user": "root", +
-      "pm_addr": "192.168.122.1", +
-      "pm_password": "calvin", +
-      "pm_type": "pxe_ipmitool" +
-    }, +
-    { +
-      "mac":+
-        "00:8a:c5:c7:22:46" +
-      ], +
-      "name": "bm3", +
-      "cpu": "2", +
-      "memory": "8192", +
-      "disk": "42", +
-      "arch": "x86_64", +
-      "pm_user": "root", +
-      "pm_addr": "192.168.122.1", +
-      "pm_password": "calvin", +
-      "pm_type": "pxe_ipmitool" +
-    }, +
-    { +
-      "mac":+
-        "00:a3:bd:79:54:b6" +
-      ], +
-      "name": "bm4", +
-      "cpu": "2", +
-      "memory": "8192", +
-      "disk": "42", +
-      "arch": "x86_64", +
-      "pm_user": "root", +
-      "pm_addr": "192.168.122.1", +
-      "pm_password": "calvin", +
-      "pm_type": "pxe_ipmitool" +
-    } +
-  ] +
-+
-</code> +
-</WRAP>+
  
-이제 instackenv.json (openstack baremetal import instackenv.json )을 가져올 수 있습니다 .+[Service] 
 +BlockIOAccounting = True 
 +CPUAccounting = True 
 +ExecReload = /bin/kill -HUP $MAINPID 
 +ExecStart = /usr/local/bin/vbmcd --foreground 
 +Group = root 
 +MemoryAccounting = True 
 +PrivateDevices = False 
 +PrivateNetwork = False 
 +PrivateTmp = False 
 +PrivateUsers = False 
 +Restart = on-failure 
 +RestartSec = 2 
 +Slice = vbmc.slice 
 +TasksAccounting = True 
 +TimeoutSec = 120 
 +Type = simple 
 +User = root
  
-그리고 네, 당신은 올바르게 알고 있습니다 – 우리는 여전히 노드 당 포트를 정의하지 않았습니다. 내가 직면 한 문제는 instackenv.json에 "pm_port"를 추가 할 수 없다는 것입니다. 노드를 Ironic으로 가져온 후에 이것을 구성해야했습니다. +[Unit] 
- +After libvirtd.service 
-<WRAP prewrap> +After syslog.target 
-<code bash> +After network.target 
-$ ironic node-update bm1 add driver_info/ipmi_port=624 +Description vbmc service
-$ ironic node-update bm2 add driver_info/ipmi_port=625 +
-$ ironic node-update bm3 add driver_info/ipmi_port=626 +
-$ ironic node-update bm4 add driver_info/ipmi_port=627+
 </code> </code>
 </WRAP> </WRAP>
  
-이것은 노드 bm0을 제외한 모든 노드에 대해 수행되어야합니다 (기본 IPMI 포트 623에서 청취 중이므로 필요하지 않습니다).  
-그게 다야! 이제 내부 검사를 실행하고 배포를 진행할 수 있습니다. 
- 
-Ironic이 동일한 IP 주소 (192.168.122.1)로 여러 노드를 부팅해야한다는 사실이 마음에 들지 않았기 때문에 벌크 내부 검사를 실행할 수 없다는 점에주의해야합니다. 하이퍼 바이저의 VirtualBMC에서 우리가“해킹”하고 있는지는 알 수 없습니다. 물론 실제 베어 메탈 환경에서는 동일한 네트워크에서 동일한 IP를 갖는 것이 매우 나쁩니다. 
- 
-편집 : 이미 pxe_ssh에서 멀어지고 기본적으로 virtualbmc와 함께 pxe_ipmi를 사용하는 작업이 있습니다 :  
  
-https://blueprints.launchpad.net/tripleo/+spec/switch-to-virtualbmc+====== 참조링크 ====== 
 +  * https://www.informaticar.net/how-to-install-virtualbmc-on-red-hat/
  
  • virtualbmc_vbmc_설정하기.1566863255.txt.gz
  • 마지막으로 수정됨: 2019/08/26 23:47
  • 저자 koov