본문 바로가기

PUBLIC/AZURE

(DK) AZURE에서 SUBSCRIPTION이 다른 곳에 이미지 공유

728x90
이미지 공유시 필요 사항
subscription
tenant
app client id 
secret
resource group
gallery name
image name
image version

1. 공유자 의 대한 설정

## 스냅샷 생성
tkgimages4=$(az vm show \
   -g tkg-image \
   -n tkg-image4 \
   --query "storageProfile.osDisk.managedDisk.id" \
   -o tsv)
   
   
az snapshot create \
    -g tkg-image \
    --source "$tkgimages4" \
    --name tkg-images3
	
	
az snapshot list \
   -g tkg-image \
   -o table


### 이미지 갤러리 생성

## 스냅샷에서 찾기
az snapshot list -g tkg-image --query "[].[name, id]" -o tsv


## 갤러리 생성
az sig create --resource-group tkg-image --gallery-name vmware_image_gallery

## 갤러리 찾기
az sig list -o table

## 이미지 정의 만들기
resourceGroup=tkg-image
gallery=vmware_image_gallery
imageDef=bootstrap_image

## 디피니션 생성
az sig image-definition create \
   --resource-group $resourceGroup \
   --gallery-name $gallery \
   --gallery-image-definition $imageDef \
   --publisher myPublisher \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized

### 이미지 버전 만들기
az sig image-version create \
   --resource-group $resourceGroup \
   --gallery-name $gallery \
   --gallery-image-definition $imageDef \
   --gallery-image-version 0.0.4 \
   --target-regions "southcentralus=1" "koreacentral=1=standard_zrs" \
   --replica-count 2 \
   --os-snapshot '/subscriptions/{ SubScription ID}/resourceGroups/{Resource GROUP NAME}/providers/Microsoft.Compute/snapshots/tkg-images4'

APP REGISTRATION 생성

해당 SUBSCRIPTION 클릭

APP REGISTRATION을 생성 하기 위한 계정을 생성한다.(만약 있으면 안해도 된다.)

ACTIVE DIRECTORY로 이동 후 App registration 클릭

아래와 같이 공유할 이미지의 대한 app registration이름과 , 다른 subscription에서도 공유 할 수 있게 3번째를 선택 후 redirect 할 url을 등록한다.

Redirect URL : https://www.microsoft.com

 

Secret 생성

생성 한 App registration에 read 권한 부여


2. 공유 받는 곳 설정

## 방법
TENANT1
az login --service-principal -u 'TENANT 1의 client ID' -p 'TENANT 1의 SECRET' --tenant 'TENANT 1의 ID'

TENANT2
az login --service-principal -u 'TENANT 1의 client ID' -p 'TENANT 1의 SECRET' --tenant 'TENANT 2의 ID'

## token GET
az account get-access-token

## APP 권한 정보 공유 ( TENANT 1에서 APP REGISTRATIONS 생성시 URL REDIRECT 내용 )
## 방법
https://login.microsoftonline.com/ <TENANT 2 ID> /oauth2/authorize?client_id=<TENANT 1의 CLIENT ID >&response_type=code&redirect_uri=<TENANT 1에서 APP REGISTRATIONS 구성시 생성했던 URL>

위까지 하면 공유 받는 subscription의 공유자의 app registration의 대한 권한을 줄수 있으며 권한은 Contribute로 설정 한다.

 

3. 공유 받는 곳에서 공유 갤러리를 생성 한다.

### VM으로 바로 생성도 가능 하지만 VM으로 생성시 vnet 등등의 정보를 가지고 온다. 
### 갤러리로 이미지를 공유 받고 그 이미지로 배포 하는 것이 좋다.


## TENANT2 에서 갤러리 생성
az sig create --resource-group rg-tanzupaas-prod --gallery-name tkgimage


## 갤러리 생성 확인
az sig show \
  --resource-group rg-tanzupaas-prod \
  --gallery-name tkgimage \
  --query id


## 항목 정의
resourceGroup=rg-tanzupaas-prod
gallery=tkgimage
imageDef=bootstrap_tkgimage

## 이미지 디피니션 

az sig image-definition create \
  --resource-group $resourceGroup \
  --gallery-name $gallery \
  --gallery-image-definition $imageDef \
  --publisher myPublisher \
  --offer myOffer \
  --sku mySKU \
  --os-type Linux \
  --os-state specialized


## 갤러리에서 갤러리 복사 
## 방법
az sig image-version create \
  --resource-group $resourceGroup \
  --gallery-name $gallery \
  --gallery-image-definition $imageDef \
  --gallery-image-version 0.0.1 \
  --target-regions "southcentralus=1" "koreacentral=1=standard_zrs" \
  --replica-count 2 \
  --managed-image '/subscriptions/ < TENANT 1의 SUBSCRIPTION ID > /resourceGroups/< TENANT 1의 Resource Group >/providers/Microsoft.Compute/galleries/<TENANT 1 의 갤러리 이름 >/images/<TENANT1의 IMAGE 이름>/versions/<TENANT1의 이미지 버전>'
반응형