Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバ構築を自動化する~Ansible ~

yuizho
March 17, 2016

サーバ構築を自動化する~Ansible ~

Ansibleとサーバ構成管理ツールの概要

yuizho

March 17, 2016
Tweet

More Decks by yuizho

Other Decks in Technology

Transcript

  1. Ansibleの設定ファイル(Inventory, Playbook) Ansibleは基本的に以下の2種類のファイルを読み込んで処理を実行します。 これらのファイルは、行う操作に応じて各ユーザが作成します。 [app] 192.168.33.11 ansible_ssh_private_key_file=key1 192.168.33.12 ansible_ssh_private_key_file=key2 [balancer]

    192.168.33.13 ansible_ssh_private_key_file=key3 --- - hosts: app sudo: yes remote_user: foo tasks: - name: アプリファイルをコピー copy: src=./web dest=/home/foo/ - name: nginxをインストール yum: name=nginx state=latest Inventoryファイル Playbookファイル 対象のサーバの情報 (IP、sshの鍵情報)を、ini形 式で記述 Inventoryファイルに記述されたサーバに行う操作 (Ansibleの提供モジュール)をyml形式で記述
  2. デモプロジェクトのフォルダ構成 ├── all.yml すべてのPlaybookを含んだ実行用Playbook ├── apps_playbook.yml Webサーバ用のPlaybook ├── balancers_playbook.yml ロードバランサ用のPlaybook

    ├── config | ├── default.conf      ロードバランサ用のconfig  | └── nginx.conf ロードバランサ用のconfig | ├── hosts 各サーバの情報をしたInventoryファイル └── web ├── index.html Webサーバにデプロイするhtmlファイル └── simpleserver.py    Webサーバ上で動作するHTTPサーバ コマンドラインから、hosts, all.ymlを指定して、ansible-playbookコマンドを実行 すると、各サーバに対して操作が実行されます。 サンプルソース: https://github.com/yuizho/ansible_vagrant_balancer_sample
  3. Infrastructure as Code "Infrastructure as Code" というのはこういうことで、単 にサーバー構成変更を自動化しましょうという話では なく、インフラをすべてソフトウェアとして、コードで扱う ことでアプリケーション開発で行われてきたいろいろな

    "ワークフロー" をインフラ作業の世界にも導入しましょ うねと、そういうことであります。   naoyaのはてなダイアリーより http://d.hatena.ne.jp/naoya/20131215/1387090668