Juju는 Ubuntu를 배포하는 Canonical의 오케스트레이션 툴이다.
공식 문서에는 이렇게 나와 있다.
What is Juju?
Juju is a state-of-the-art, open source modelling tool for operating software in the cloud. Juju allows you to deploy, configure, manage, maintain, and scale cloud applications quickly and efficiently on public clouds, as well as on physical servers, OpenStack, and containers. You can use Juju from the command line or through its beautiful GUI.
목적은 Juju라는 Tool을 통해 Cloud의 Software(OS포함)를 operation하고, 설치하고 구성하고 운영을 하는데 목적을 두고 있고, 해당 동작은 charm이라는 코드를 통해 수행을 하게 된다.
간략하게 10대의 ubuntu 서버를 설치 하고 싶다.. 그러면 juju add-machine -n 10 이 명령을 수행하게 되면 10대의 ubuntu 서버를 가지게 된다.
기존의 배포 툴과 마찮가지로 Life Cycle을 가지고 있으며 (install - configure - update - destroy), juju agent가 항상 state서버와 통신하는 구조를 가진다.
Install Juju
$ sudo add-apt-repository --update ppa:juju/stable
$ sudo apt install juju
Clouds for Juju
$
juju clouds
Cloud Regions Default Type Description
aws 14 us-east-1 ec2 Amazon Web Services
aws-china 1 cn-north-1 ec2 Amazon China
aws-gov 1 us-gov-west-1 ec2 Amazon (USA Government)
azure 24 centralus azure Microsoft Azure
azure-china 2 chinaeast azure Microsoft Azure China
cloudsigma 5 hnl cloudsigma CloudSigma Cloud
google 7 us-east1 gce Google Cloud Platform
joyent 6 eu-ams-1 joyent Joyent Cloud
oracle 5 uscom-central-1 oracle Oracle Cloud
rackspace 6 dfw rackspace Rackspace Cloud
localhost 1 localhost lxd LXD Container Hypervisor
위와 같이 juju는 퍼블릭 클라우드의 endpoint를 지원하며 최근 Oracle과 vsphere를 지원하게 되었다.
클라우드 이외에 자신의 물리 machine도 사용할 수 있는데, 이 경우는 ubuntu의 MAAS를 통해 제어할 수 있다.
MAAS와의 연동은 다음에 따로 작성할 예정이다.
위와 같이 Juju를 설치 하고 난 뒤 Cloud와 연동하고, Controller를 생성하고, 모델을 만들게 된다.
vmware vcenter와의 연동 부분은 이전 포스트를 참고하면 된다