Package
kupboard의 colelction package는 Ansible Playbook을 사용한다. Ansible은 아주 훌륭한 오픈소스툴이며 이미 수 많은 솔루션에서 다양한 목적으로 사용되고 있다. 인터넷에는 이미 훌륭하게 작성된 playbook들이 있다. config의 action
만 정의하면 아주 쉽고 빠르게 playbook을 사용할 수 있다. kupboard에서는 패키지의 playbook을 작성함에 있어서 기능적 제한을 두지 않으려고 노력했다. 사용자는 playbook 그리고 action을 사용하여 자신만의 훌륭한 kollection을 만들 수도 있다.
아래는 kupboard에서 제공되는 디폴트 kollection의 패키지를 수행하는 명령어이다. -c <kollection-name>
옵션을 사용하면 디폴트 패키지가 아닌 사용자가 추가한 kollection에 포함된 패키지를 사용할 수 있다.
#
kupboard-kollection-nginxkupboard-kollection-nginx 예제를 통해서 config에서 package가 어떻게 정의되는지 살펴보자.
config.yaml
에는 nginx
라는 이름의 패키지가 정의되어 있고, 이 패키지는 deploy
와 delete
두 개의 action을 제공한다. 사용되는 playbook은 1개이며 경로는 nginx/nginx.yaml
이고, target_group
라는 변수를 playbook에서 사용할 수 있다. 그리고 각 action을 수행할 때에는 state
변수가 started
와 absent
로 지정된다.
Nginx 패키지에는 nginx.yaml
이름의 playbook이 1개 포함되어 있으며 nginx:1.19.10
컨테이너를 배포하는 역할을 수행한다. config에 정의된 target_group
과 state
변수를 참조하고 있으며, 각 action 수행시 지정되는 state
값이 컨테이너 배포에 사용되고 있다.
그렇다면 Nginx Package를 사용하여 nginx를 gateway 클러스터에 설치하기 위해서는 -a deploy
옵션을 사용해야 한다는 것과 -a delete
옵션으로 설치된 nginx를 삭제할 수 있다는 걸 알 수 있다.
#
Default Packageskupboard에는 디폴트 kollection을 포함하고 있으며 아래와 같은 다양한 오픈소스들을 위한 패키지를 사용할 수 있다.