Ansible vs SaltStack触りだけ比較
この記事は、千 Advent Calendar 2019の23日目の記事です。
なにこれ?
巷で少し話題になっている? SaltStackとAnsibleを書き方、実行時間で比較していいところ、悪いところを見ていきたいと思います。 比較に焦点を当てているため、実行方法や記述方法などにはこの記事では触れません。
実行環境
実行元
スペック: AWS EC2 t2.micro
AMI: Canonical, Ubuntu, 18.04 LTS, amd64 bionic image build on 2019-11-13
実行先(Ansible・Saltstack共に同スペック)
スペック: AWS EC2 t2.micro
AMI: Canonical, Ubuntu, 18.04 LTS, amd64 bionic image build on 2019-11-13
実行内容
今回は新規にwebサーバ作成を構築する事を前提とし、nginxのインストールと少しだけサーバの設定をしてみたいと思います。
- HOSTNAME変更 - 時計を合わせる - nginxのインストール
実行ファイル
Ansible
[nginx] ip-172-31-35-248.ap-northeast-1.compute.internal [all:vars] ansible_ssh_user=ubuntu ansible_python_interpreter=/usr/bin/python3
--- - hosts: nginx tasks: - name: set hostname hostname: name: "nginx" - name: set timezone timezone: name: Asia/Tokyo - name: apt installs apt: name: - nginx update_cache: true
SaltStack
system: network.system: - enabled: True # only neccessary as a bypass for https://github.com/saltstack/salt/issues/6922 - hostname: 'salt-nginx' - apply_hostname: True - retain_settings: True Asia/Tokyo: timezone.system: - utc: True install nginx: pkg.installed: - name: nginx
実行時間
5台のサーバに一括でインストール更新作業をした場合の時間
- Ansible
- 0m21.196s
- SaltStack
- 0m19.343s
微妙にSaltStackのほうが早い
両者のメリット・デメリット
Ansible
- メリット
- RedHatが開発・メンテをしている安心感
- クライアント側にエージェントを入れなくても実行することが出来る
- デメリット
SaltStack
- メリット
- 指定する複数ホストに対して一括でのコマンド実施が可能
- デメリット
- 日本語ドキュメントが無い
- 参考記事も比較的古いものが多い
- クライアント側にminionをインストールしておかないといけないのが手間
- 日本語ドキュメントが無い
どっち使う?
数百台規模のサーバだとクライアントにエージェントが入っている方がいいらしいですが、
個人的にクライアント側にエージェントをインストールしなくていいAnsibleの方が気軽に実行できて好きです。
(ただ、SaltStackと比較するならクライアントにエージェントが必要なChefと比較するほうがよかったかも)