【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

Ansibleで始めるInfrastructure as Code(紹介&インストール編)

みなさんこんにちは
システムソリューション部
SREチーム所属の岡崎です。

運用している中で同じような作業、同じようなサーバを構築することは仕事上よくあると思います
その度に同じ作業をするのがすごく億劫になりますし、
他の作業をしたいのにそういった業務に手を回さなきゃいけなくなります。
そういった定型的な業務をなくすべく最近使用しているツール「Ansible」を紹介いたします。

Ansibleとは??

一般的にはデプロイ管理、インフラ周りの設定管理などの構成管理ツールとして知られています。
ほかの代表的な構成管理ツールとして Chef、Puppetがあります。
違いとしては以下の通りとなっております。

Chef

  • 開発はChef社
  • 実行するクライアントにもAgentのインストールが必要
  • 構成定義ファイルの記述方式がRubyで学習コストが高い
  • Ansibleより以前にリリースされており現在も頻繁にリリースされている

Puppet

  • 開発はPuppet Labs社
  • 実行するクライアントにAgentをインストールする使いかたとスタンドアロンでの使いかたができる
  • 紹介する3つの中で最も古くにリリースされている
  • 構成定義ファイルの記述方式がRubyで学習コストが高い

Ansible

  • 開発はRedHat社
  • 実行するクライアントにAgentのインストールは不要
  • 3つの中で一番歴が浅い
  • 構成定義ファイルの記述方式がyamlで学習コストが低い

違いは上記の通りですが、Ansibleに関してはクライアントに
Python2.4以上がインストールされており、SSHが接続できれば動作します。

Ansibleの特徴

そのほかの特徴としては下に挙げるような特徴があります。

  • 冪等性

    Ansibleもほかの構成管理ツールと同じく冪等性の担保を特徴としてあげられます。
    これは一部のモジュールを用いて何度実行されても同じ状態に
    収束することをユーザ側で操作することなくツール側にて保証するようになっています。

  • モジュール

    Ansibleにおいて様々な機能やプラットフォームでの設定などを最小限の
    パラメータにて制御・実行することができます。
    それらを利用するにあたり定義されたモジュールという機能を利用する必要があります。
    モジュール自体はサーバの細かな設定(yum、user、file)を行うもの
    各プラットフォームの設定を行うもの(ec2、azure、gce)などが作成されており
    各バージョンごとに対応の有無はあるが利用することができます。

Ansibleのインストール方法について

ではAnsibleのインストール方法を紹介いたします。

まずはPythonのバージョンを確認いたします。

1
2
#  python --version
Python 2.7.5

Pythonのバージョンが2.4以上ですので問題なくインストールができます。
epelリポジトリを指定するためインストールします

1
# yum install epel-release

それではAnsibleをインストールします。

1
2
3
4
5
6
7
8
9
10
11
# yum install --enablerepo=epel ansible
Installed:
  ansible.noarch 0:2.6.3-1.el7
 
Dependency Installed:
  PyYAML.x86_64 0:3.10-11.el7           libtomcrypt.x86_64 0:1.17-26.el7    libtommath.x86_64 0:0.42.0-6.el7      libyaml.x86_64 0:0.1.4-11.el7_0  make.x86_64 1:3.82-23.el7             openssl.x86_64 1:1.0.2k-12.el7             python-babel.noarch 0:0.9.6-8.el7
  python-cffi.x86_64 0:1.6.0-5.el7      python-enum34.noarch 0:1.0.4-1.el7  python-httplib2.noarch 0:0.9.2-1.el7  python-idna.noarch 0:2.4-1.el7   python-jinja2.noarch 0:2.7.2-2.el7    python-keyczar.noarch 0:0.71c-2.el7        python-markupsafe.x86_64 0:0.11-10.el7
  python-paramiko.noarch 0:2.1.1-4.el7  python-ply.noarch 0:3.4-11.el7      python-pycparser.noarch 0:2.14-1.el7  python-six.noarch 0:1.9.0-2.el7  python2-crypto.x86_64 0:2.6.1-15.el7  python2-cryptography.x86_64 0:1.7.2-2.el7  python2-jmespath.noarch 0:0.9.0-3.el7
  python2-pyasn1.noarch 0:0.1.9-7.el7   sshpass.x86_64 0:1.06-2.el7
 
Complete!

インストール完了!!

1
2
3
4
5
6
7
# ansible --version
ansible 2.6.3
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]

無事Ansible 2.6.3のインストールができました!!

まとめ

今回はAnsibleの紹介とインストールの方法について簡単に記入しましたが、
次回は実際にインストールしてみた後にほかのサーバにてAnsibleからSSH接続を行い
各種設定を行う方法を記入したいと思います。
今回の記事からAnsibleや運用・構築自動化に少しでも興味をもっていただければ幸いです。
以上、これで締めます。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
658
X facebook はてなブックマーク pocket
【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author

岡崎潤一郎

スマートフォン向けゲームの移設及び運用経験豊富。

日々、マルチクラウドの運用、サーバ構築・移設をこなす。案件数が増えてきたことから業務の効率を思案中。各クラウドの良さを踏まえてサーバ移設の方法などを思考することが多い。

クラウド間や物理からクラウドなどの移設を実施しているうちに、日本MSP協会が開催しているコンペで二連覇を達成。