Skip to main content

2023.1 버전 설치 및 설정

동일하게 자동과 수동 버전이 있지만, 수동으로 하여 우리의 환경에 맞게 Customization을 진행 한다. 제일 먼저 최신 버전 OpenStack Snap을 설치 한다

sudo snap install openstack --channel 2023.1

Sunbeam은 MicroStack을 사용하기 위해 필요한 종속성을 모두 설치하고 진행 할 수 있다. 바로 아래에 있는 명령어를 실행 하면 스크립트를 만들고 자동으로 실행 한다

sunbeam prepare-node-script | bash -x && newgrp snap_daemon

이 스크립트는 호스트에서 특정 소프트웨어 요구 사항이 충족되도록 보장한다. openssh-server가 설치되어 있지 않은 경우 설치 하고, 현재 사용자에 대해 모든 명령에 대해 비밀번호 없이 sudo 권한을 구성한다 (NOPASSWD: ALL)


클러스터 부트스트랩 명령을 사용하여 OpenStack 클라우드를 배포한다. 

# --role flag을 통해 MicroStack의 모든 요소들을 설치 하겠다고 지정 한다
sunbeam cluster bootstrap --role control --role compute --role storage

위 명령어 실행시 MetalLB 주소 할당 범위에 대한 입력이 요청된다. OpenStack API에 로컬 호스트 이외의 호스트에서 액세스하려는 경우, 이 IP 주소 범위는 기본 네트워크 인터페이스의 서브넷 내에 있어야 한다. 해당 범위에는 최소한 10개의 주소가 포함되어야 한다.


그 후 이제 전 버전과 동일하게 MicroStack 기본 설정 및 유저 지정 프롬프트가 진행 될것이다

# 기본 설정 프롬프트 진행을 하기 위해 명령어
sunbeam configure --openrc demo-openrc

Local or remote access to VMs [local/remote] (local): remote
CIDR of network to use for external networking (10.20.20.0/24): 192.168.1.0/24
IP address of default gateway for external network (192.168.1.1): 192.168.1.2
Populate OpenStack cloud with demo user, default images, flavors etc [y/n] (y): 
Username to use for access to OpenStack (demo): 
Password to use for access to OpenStack (hJ********): 
Network range to use for project network (192.168.122.0/24): 
Enable ping and SSH access to instances? [y/n] (y): 
Start of IP allocation range for external network (192.168.1.2): 192.168.1.21
End of IP allocation range for external network (192.168.1.254): 192.168.1.57
Network type for access to external network [flat/vlan] (flat): 
Writing openrc to demo-openrc ... done
Free network interface that will be configured for external traffic [ens34] (ens34): 


모든 설정 후 라우터와 통신이 가능 한지 확인 작업을 위해 네트워크 인터페이스가 Router의 External 인터페이스에 연결 되어 있는지 확인 한다

# ens34 인터페이스 UP 상태로 전환
sudo ip link set up dev ens34

# br-ex에 ens34 인터페이스가 추가 되어 있는 것을 확인
sudo openstack-hypervisor.ovs-vsctl show
35c97266-ccfd-40a7-afb2-7672e7aa6158
    Bridge br-ex
        datapath_type: system
        Port ens34
            Interface ens34
        Port patch-provnet-20661610-1756-402f-8df8-4e027e639e2e-to-br-int
            Interface patch-provnet-20661610-1756-402f-8df8-4e027e639e2e-to-br-int
                type: patch
                options: {peer=patch-br-int-to-provnet-20661610-1756-402f-8df8-4e027e639e2e}
        Port br-ex
            Interface br-ex
                type: internal
    Bridge br-int
        fail_mode: secure
        datapath_type: system
        Port patch-br-int-to-provnet-20661610-1756-402f-8df8-4e027e639e2e
            Interface patch-br-int-to-provnet-20661610-1756-402f-8df8-4e027e639e2e
                type: patch
                options: {peer=patch-provnet-20661610-1756-402f-8df8-4e027e639e2e-to-br-int}
        Port br-int
            Interface br-int
                type: internal
    ovs_version: "3.1.0"
    

## 만약에 자동으로 추가가 안되어 있는 경우
sudo openstack-hypervisor.ovs-vsctl add-port br-ex ens34


이제 OpenStack Hypervisor 상태를 확인 하기 위해 admin 계정에 로그인을 해야 한다. 로그인을 하기 위해 먼저 사용자 계정 그리고 Admin 계정을 clouds.yaml 파일로 받아야 한다

# 사용자 계정 받기
sunbeam cloud-config -u -c sunbeam-demo
Writing cloud information to /home/ubuntu/.config/openstack/clouds.yaml ... done

# Admin 계정 받기
sunbeam cloud-config --admin -u -c sunbeam-admin
Writing cloud information to /home/ubuntu/.config/openstack/clouds.yaml ... done

# 이 경로 안에 있는 'admin' 계정 정보 확인
vi /home/ubuntu/.config/openstack/clouds.yaml

clouds:
  sunbeam-admin:
    auth:
      auth_url: http://192.168.1.6:80/openstack-keystone
      password: MqlcF4f4t3sp
      project_domain_name: admin_domain
      project_name: admin
      user_domain_name: admin_domain
      username: admin
  sunbeam-demo:
    auth:
      auth_url: http://192.168.1.6:80/openstack-keystone
      password: YBk9CX2est2b
      project_domain_name: users
      project_name: demo
      user_domain_name: users
      username: demo
      
sudo touch admin_openrc
sudo vi admin_openrc

# admin 계정 파일을 아래와 같은 포멧으로 입력
export OS_AUTH_URL=http://192.168.1.6:80/openstack-keystone
export OS_USERNAME=admin
export OS_PASSWORD=MqlcF4f4t3sp
export OS_USER_DOMAIN_NAME=admin_domain
export OS_PROJECT_DOMAIN_NAME=admin_domain
export OS_PROJECT_NAME=admin
export OS_AUTH_VERSION=3
export OS_IDENTITY_API_VERSION=3

# admin 계정으로 로그인
source admin_openrc


 로그인 완료 후 Hypervisor 상태 확인

openstack hypervisor list
+--------------------------------------+---------------------+-----------------+--------------+-------+
| ID                                   | Hypervisor Hostname | Hypervisor Type | Host IP      | State |
+--------------------------------------+---------------------+-----------------+--------------+-------+
| d7a8e150-feee-4b12-bc04-9c4027afbc66 | ubuntu              | QEMU            | 192.168.1.80 | up    |
+--------------------------------------+---------------------+-----------------+--------------+-------+

openstack compute service list
+--------------------------------------+----------------+--------+----------+---------+-------+----------------------------+
| ID                                   | Binary         | Host   | Zone     | Status  | State | Updated At                 |
+--------------------------------------+----------------+--------+----------+---------+-------+----------------------------+
| a2b2918f-6493-466e-be6b-b109676da353 | nova-conductor | nova-0 | internal | enabled | up    | 2023-06-13T07:10:54.000000 |
| 78e06c73-e377-4eb3-bdd8-25311ea0e9c1 | nova-scheduler | nova-0 | internal | enabled | up    | 2023-06-13T07:10:53.000000 |
| ea690ec7-212c-4405-bc48-960abb0c1b57 | nova-compute   | ubuntu | nova     | enabled | up    | 2023-06-13T07:10:58.000000 |
+--------------------------------------+----------------+--------+----------+---------+-------+----------------------------+


라우터 IP 정보 확인 및 핑 테스트

image.png

ping 192.168.1.29
PING 192.168.1.29 (192.168.1.29) 56(84) bytes of data.
64 bytes from 192.168.1.29: icmp_seq=1 ttl=254 time=52.8 ms
64 bytes from 192.168.1.29: icmp_seq=2 ttl=254 time=0.704 ms
64 bytes from 192.168.1.29: icmp_seq=3 ttl=254 time=0.679 ms