どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付いたします

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のバージョンを確認いたします。

#  python --version
Python 2.7.5

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

# yum install epel-release

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

# 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!

インストール完了!!

# 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や運用・構築自動化に少しでも興味をもっていただければ幸いです。
以上、これで締めます。


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.