IaC Tool - Orchestration, Provisioning …

1 minute read

서버 프로비저닝 툴

최근 컨테이너(도커)와 Serverless 사용으로 서버 프로비저닝은 중요도가 좀 떨어지긴 했는데
PC, 로컬서버, 개별인스턴스 초기구성할 때 아쉬운 경우가 종종있다.

예전엔 chef가 대세였는데…
그냥 관련 기술 자체에 대한 관심이 죽은건지 이 회사가 폐쇄적인 정책으로 변해서 그런건지 커뮤니티에서 언급이 상당히 줄었다.

Chef

https://github.com/chef/chef
Language: Ruby
Define: RubyDSL, cookbook
지원: cli, web,
ruby, chef client agent 설치필요
성능도 강력하고 지원되는 것도 많은데
도구가 너무 난잡하게 이것저것 많다.
chefck chefsolo chefzero chefclient chefserver, berks… 개념정의나 각 모듈의 영역이 명확하지 않아서 헷갈린다.
억지로 찾아서 쓰면 쓰는데… 커뮤니티가 상당히 죽은 것 같다.
(무리한 유료화, 컨테이너 이후 비주류 기술로전락..등)
2017년 이후 각종 커뮤니티에서 언급조차 거의 안되고 있다.

Puppet

https://github.com/puppetlabs/puppet
Language: Ruby
Define: RubyDSL
지원: cli
agent 설치 필요

Bolt

ㄴㄴ https://puppet.com/docs/bolt/latest/bolt.html

Ansible

https://github.com/ansible/ansible
Language: Python
Define: yaml, playbook, galaxy …
지원: cli, pythonlib
배우기 쉬운편. 파이썬으로 실행 커스텀 가능. 에이전트는 필요없고 파이썬 설치 필요

Saltstack

https://github.com/saltstack/salt
Language: Python
Define:
안써봄. open stack에 포함된듯

Fabric

http://www.fabfile.org/
툴이라기보다는 python ssh 라이브러리.
이걸 베이스로 개발된 툴들이 좀 있는 것 같다.

Rex

https://github.com/RexOps/Rex
오픈소스.
Language: Perl
perl까지 해야되나…

Provy

http://heynemann.github.io/provy/
오픈소스.
Language: Python

Tiamet

https://github.com/HardBoiledSmith/tiamat
https://github.com/HardBoiledSmith/johanna

Language: Python

Infrastructor

http://infrastructor.io/
Language: groovy
안써봤지만 괜찮을 것 같다.
dsl형태도 제공되고

Packer

https://github.com/hashicorp/packer
Hashicorp
Language:
용도: 이미지 만드는 툴

Terraform

https://github.com/hashicorp/terraform
Hashicorp
Language: Go
용도: cloud 인프라 코드화
정의: .tf파일을 HCL이라는 자체 인프라 언어로 정의
terrform cli에서 provider라는 각 인프라별로 정의된 api를 호출하는 방식으로 실행되는데… 타임아웃이 나거나 오류가 나는 경우가 많다. failover 문제 발생
멱등성을 보장한다고 하지만 잘 안되는 것 같아 보이는 경우가 종종 있다.

NixOS

https://nixos.org/
Language:
정의: json
nixox라는 별도의 os로 서버설정을 json으로 한다. 삭제하면 삭제도 되고

JAAS - juju as a service

https://jaas.ai/
Language:
우분투에서 나온거.. 잘 모름

# ~
뭘 쓸지 아직 결론을 내진 못했는데..
조금이라도 써본 chef
익숙한 groovy, python 베이스 툴을 쓰게될 것 같다.

#~ 그냥 손으로 할까
인프라쪽은 본업도 아닌데 너무 많이 시간을 잡아먹는다.