mirror of
https://github.com/jung-geun/policy-routing.git
synced 2025-12-19 18:24:40 +09:00
README.md에 Packer를 사용한 이미지 배포 섹션 추가 및 admin-openrc.sample 파일 생성, packer-openstack-ubuntu.json의 이미지 이름 및 가시성 수정, pbr-script-cloud-init.yaml의 스크립트 실행 명령 수정
This commit is contained in:
58
README.md
58
README.md
@@ -34,3 +34,61 @@ ip rule 을 확인하여 정책 기반 라우팅이 설정되었는지 확인할
|
||||
```bash
|
||||
ip rule ls
|
||||
```
|
||||
|
||||
## packer 를 사용하여 이미지 배포
|
||||
|
||||
openstack 에 자동으로 PBR 시스템을 구성하는 packer template 을 제공합니다.
|
||||
|
||||
### Packer 설치
|
||||
|
||||
https://developer.hashicorp.com/packer/tutorials/docker-get-started/get-started-install-cli
|
||||
|
||||
### Packer OpenStack plugin 설치
|
||||
|
||||
openstack 에서 사용할 수 있게 하려면 Packer OpenStack 플러그인을 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.
|
||||
|
||||
```bash
|
||||
packer plugins install github.com/hashicorp/openstack
|
||||
```
|
||||
|
||||
### Packer OpenStack 템플릿 설정
|
||||
|
||||
packer 를 사용하기 전에 openrc를 설정해야합니다
|
||||
|
||||
```bash
|
||||
vi admin-openrc
|
||||
```
|
||||
|
||||
설정 파일 내용은 아래 내용들을 채워야합니다.
|
||||
|
||||
```bash
|
||||
export OS_USER_DOMAIN_NAME=Default
|
||||
export OS_PROJECT_NAME=admin
|
||||
export OS_TENANT_NAME=$OS_PROJECT_NAME
|
||||
export OS_USERNAME=admin
|
||||
export OS_PASSWORD=ADMIN_PASSWORD
|
||||
export OS_AUTH_URL=http://OPENSTACK_KEYSTONE_HOST/v3
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
export OS_IMAGE_API_VERSION=2
|
||||
export OS_SOURCE_IMAGE_ID=원본_이미지_ID
|
||||
export OS_NETWORK_NAME=이미지_빌드에_사용할_네트워크_ID
|
||||
export OS_FLOATING_IP_POOL=플로팅_IP_풀_이름
|
||||
```
|
||||
|
||||
위 환경 변수들은 실제 환경에 맞게 수정해야 합니다. 예를 들어, `ADMIN_PASSWORD`는 OpenStack 관리자의 비밀번호로 설정해야 하며, `OPENSTACK_KEYSTONE_HOST`는 OpenStack Keystone 서비스의 호스트 주소로 설정해야 합니다.
|
||||
|
||||
```bash
|
||||
source admin-openrc
|
||||
```
|
||||
|
||||
packer 를 실행할 수 있는지 확인합니다.
|
||||
|
||||
```bash
|
||||
packer validate packer-openstack-ubuntu.json
|
||||
```
|
||||
|
||||
### Packer OpenStack 템플릿 실행
|
||||
|
||||
```bash
|
||||
packer build packer-openstack-ubuntu.json
|
||||
```
|
||||
|
||||
11
admin-openrc.sample
Normal file
11
admin-openrc.sample
Normal file
@@ -0,0 +1,11 @@
|
||||
export OS_USER_DOMAIN_NAME=Default
|
||||
export OS_PROJECT_NAME=admin
|
||||
export OS_TENANT_NAME=$OS_PROJECT_NAME
|
||||
export OS_USERNAME=admin
|
||||
export OS_PASSWORD=ADMIN_PASSWORD
|
||||
export OS_AUTH_URL=http://OPENSTACK_KEYSTONE_HOST/v3
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
export OS_IMAGE_API_VERSION=2
|
||||
export OS_SOURCE_IMAGE_ID=원본_이미지_ID
|
||||
export OS_NETWORK_NAME=이미지_빌드에_사용할_네트워크_ID
|
||||
export OS_FLOATING_IP_POOL=플로팅_IP_풀_이름
|
||||
@@ -9,7 +9,7 @@
|
||||
"source_image_id": "{{env `OS_SOURCE_IMAGE_ID`}}",
|
||||
"flavor_name": "cpu.2c_2g",
|
||||
"network_name": "{{env `OS_NETWORK_NAME`}}",
|
||||
"image_name": "ubuntu 22.04-{{timestamp}} server",
|
||||
"image_name": "ubuntu 24.04 server-{{timestamp}}",
|
||||
"floating_ip_pool": "{{env `OS_FLOATING_IP_POOL`}}",
|
||||
"ssh_username": "ubuntu"
|
||||
},
|
||||
@@ -36,6 +36,7 @@
|
||||
"use_floating_ip": true,
|
||||
"ssh_timeout": "10m",
|
||||
"image_disk_format": "raw",
|
||||
"image_visibility": "public",
|
||||
"use_blockstorage_volume": true
|
||||
}
|
||||
],
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
write_files:
|
||||
- path: /tmp/pbr-script-cloud-init.sh
|
||||
permissions: '0755'
|
||||
permissions: "0755"
|
||||
owner: root:root
|
||||
content: |
|
||||
#!/bin/bash
|
||||
@@ -33,7 +33,7 @@ write_files:
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Script downloaded successfully to ${DEST_PATH}. Executing..."
|
||||
chmod +x "${DEST_PATH}" # 실행 권한 부여
|
||||
"${DEST_PATH}" install # 스크립트 실행
|
||||
"${DEST_PATH}" setup --force # 스크립트 실행
|
||||
else
|
||||
echo "Error: Failed to download script from ${SCRIPT_URL}."
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user