mirror of
https://github.com/jung-geun/policy-routing.git
synced 2025-12-20 02:34:39 +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
|
```bash
|
||||||
ip rule ls
|
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`}}",
|
"source_image_id": "{{env `OS_SOURCE_IMAGE_ID`}}",
|
||||||
"flavor_name": "cpu.2c_2g",
|
"flavor_name": "cpu.2c_2g",
|
||||||
"network_name": "{{env `OS_NETWORK_NAME`}}",
|
"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`}}",
|
"floating_ip_pool": "{{env `OS_FLOATING_IP_POOL`}}",
|
||||||
"ssh_username": "ubuntu"
|
"ssh_username": "ubuntu"
|
||||||
},
|
},
|
||||||
@@ -36,6 +36,7 @@
|
|||||||
"use_floating_ip": true,
|
"use_floating_ip": true,
|
||||||
"ssh_timeout": "10m",
|
"ssh_timeout": "10m",
|
||||||
"image_disk_format": "raw",
|
"image_disk_format": "raw",
|
||||||
|
"image_visibility": "public",
|
||||||
"use_blockstorage_volume": true
|
"use_blockstorage_volume": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
write_files:
|
write_files:
|
||||||
- path: /tmp/pbr-script-cloud-init.sh
|
- path: /tmp/pbr-script-cloud-init.sh
|
||||||
permissions: '0755'
|
permissions: "0755"
|
||||||
owner: root:root
|
owner: root:root
|
||||||
content: |
|
content: |
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
@@ -33,7 +33,7 @@ write_files:
|
|||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "Script downloaded successfully to ${DEST_PATH}. Executing..."
|
echo "Script downloaded successfully to ${DEST_PATH}. Executing..."
|
||||||
chmod +x "${DEST_PATH}" # 실행 권한 부여
|
chmod +x "${DEST_PATH}" # 실행 권한 부여
|
||||||
"${DEST_PATH}" install # 스크립트 실행
|
"${DEST_PATH}" setup --force # 스크립트 실행
|
||||||
else
|
else
|
||||||
echo "Error: Failed to download script from ${SCRIPT_URL}."
|
echo "Error: Failed to download script from ${SCRIPT_URL}."
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user