목표!
자동화가 안되있으면 매번 github push마다
1) docker image build
2) docker container 생성해서 정상작동하는지 확인하기 .
3) 정상작동 확인 후 , docker image 에 tag 붙이기 .
4) docker push ( Remote repository)
5) kubernetes 에서 web-app-deployment.yaml을 가지고
apply 하기
를 일일히 해야한다.
azure cli 켜고
az vm open-port \
--resource-group <Resource_Group_name> \
--name <Jenkins_Controller_VM> \
--port 80 --priority 1020
ssh azureuser@
curl -L https://aka.ms/InstallAzureCli | bash
az login
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y;
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -;
sudo apt-key fingerprint 0EBFCD88;
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable";
sudo apt-get update;
sudo apt-get install docker-ce -y;
sudo az aks install-cli
sudo az aks get-credentials --resource-group <Resource_Group> --name <AKS_Name>
sudo usermod -aG docker jenkins;
sudo usermod -aG docker azureuser;
sudo touch /var/lib/jenkins/jenkins.install.InstallUtil.lastExecVersion;
sudo service jenkins restart;
sudo cp ~/.kube/config /var/lib/jenkins/.kube
sudo chmod 777 /var/lib/jenkins/
sudo chmod 777 /var/lib/jenkins/config.xml
===========================================
[azure cli upgrade]
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
*cli 버전이 너무 낮아서 한번 upgrade하고 해야한다.
============================================
https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal?tabs=azure-cli
참조해서 포탈에서 올렸다 (acr 생성!)
ACR_ID=$(az acr show --resource-group skt-container-registry --name sktregistry --query "id" --output tsv)
az ad sp create-for-rbac
{
"appId": "c4feef88-2d08-4a3e-93c0-b92092a9b41a",
"displayName": "azure-cli-2022-08-26-14-14-05",
"password": "C6B8Q~ie_9cg8FWnhlvBCTuPpXcbfvKKHWGDPctI",
"tenant": "8b4e2f01-3139-45b9-9a89-d9ce301ce706"
}
az role assignment create --assignee <appID> --role Contributor --scope $ACR_ID
========================================
*ACR(Azure Container Registry)
Azure Contianer Registry 를 사용하면 모든 유형의 컨테이너 배포를 위해 이미지와 아티팩트를 프라이빗 레지스트리에 빌드 , 저장 및 관리 할 수 있습니다.