//ルートにアクセスされたら/archiveにリダイレクトする

エイリーの備忘録

開発について書いていこうと思っています。

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と比較するほうがよかったかも)