Ansible とは
構成管理するためのツールです。サーバにミドルウェアのインストールや各種設定を自動化してくれます。 Ansible 以外にも Puppet 、Chef などがあります。 比較すると大体こんな感じです。
| Puppet | Chef | Ansible | |
|---|---|---|---|
| 開発言語 | Ruby | Ruby | Python |
| エージェント | 必要 | 必要 | 不要 |
| コード記述言語 | 独自言語 | Ruby | YAML |
| 処理実行順序 | 記述通りでない | 記述順 | 記述順 |
Ansible の内部処理的には
Playbook から Python コード生成 ↓ 管理対象ホスト にファイルを転送 ( sftp ) ↓ Python コード実行( ssh ) ↓ Pythonコード削除( ssh )
となります。 管理サーバから各ホストに対して構成管理する場合は、エージェントのインストールは必要ありませんがssh できる必要があります。
install
AmazonLinux の場合、インストールは EPEL リポジトリからインストールします。 (Python のパッケージ管理システムの pip でもインストールが可能のようです。)
$ sudo yum --enablerepo=epel install ansible
Java を install してみる
Ansible は 、playbook にサーバの構成を定義します。 Java を install する場合、以下の様になります。
- hosts: localhost
connection: local
gather_facts: no
tasks:
# ========================================================
# Javaのインストール
# ========================================================
- name: javaの存在確認
shell: which java
register: java_which
failed_when: java_which.rc not in [0, 1]
- name: Java インストール
yum: name=java-1.8.0-openjdk-devel
when: java_which.rc == 1
以下のコマンドで実行します。
$ ansible-playbook -K playbook.yaml
高橋克幸
新卒3年目で脱新人を目指してます。
フロントに興味を持ち始めた今日このごろ。
趣味は 麻雀 プログラミング 音楽。
運動不足を感じているため、ダンスを始めようかと思っています。