狠狠撸
Submit Search
础苍蝉颈产濒别入门
?
1 like
?
942 views
Daiki Hayakawa
Follow
罢谤颈蹿辞谤迟の社内勉强会で発表した资料です
Read less
Read more
1 of 16
Download now
Download to read offline
More Related Content
础苍蝉颈产濒别入门
1.
础苍蝉颈产濒别入门 社内勉強会 !
@bells17_
2.
Agenda ? Ansibleとは?
? Vagrant + Ansibleを使ったLAMP環境構築 ? プロジェクトでのAnsibleの利用例
3.
Ansibleとは? サーバーのプロビジョニングツール
4.
サーバ?プロビジョニング 利用可能なサーバ群(サーバファーム)からサーバを選び出し、適 切なソフトウェア(オペレーティングシステム、デバイスドライバ、
ミドルウェア、アプリケーションソフトウェア)をロードし、シス テムを適切に設定したり、サーバ固有の設定(IPアドレスなど)を したり、といった作業をサーバ?プロビジョニングと呼ぶ。これに は、そのサーバを運用可能にするまでのあらゆる作業が含まれる。 引用元:http://ja.wikipedia.org/wiki/プロビジョニング
5.
プロビジョニングレイヤー ? Orchestration
? アプリケーションデプロイ ? Fabric, Capistrano, MCollective ? Configuration ? ミドルウェアレベルまでの設定 ? Puppet, Chef, AWS OpsWorks ? Bootstrapping ← Ansibleはここに入る ? OS インストールにあたる領域 ? Kickstart, Cobbler, OpenStack, AWS 引用元: http://mizzy.org/blog/2013/10/29/1/
6.
プロビジョニングフレームワークの特徴 ? 冪等性(idempotence)を意識した設計
? 何度繰り返しても同じ結果になる ? Infrastructure as Code ? サーバー構築や構成変更作業を全てコード化で きる
7.
プロビジョニングフレームワーク比較 引用元: http://www.slideshare.net/TakeshiKomiya/python-26185953
8.
Ansibleの特徴 ? yamlを使ったDSL
? 実行するために必要なツールがSSHとPythonだけ ? 豊富なモジュール群
9.
Ansibleを実行するには? 1. inventory_fileを作成
? 実行するホストと対応するホスト情報を記載したiniファイル 2. inventory_fileを指定してタスクを実行 ? ansibleコマンド ? 単体のタスクを実行できる ? ansible-playbookコマンド ? Playbookを利用してまとまったタスクを実行することができる
10.
Playbook ? Ansibleのタスクをまとめて実行できるもの
? phpをインストール→apacheをインストールのように ? Ansibleのタスクはモジュールを利用して記述する
11.
よく使うmodule ? yum
- yumコマンドを実行 ? file - ファイル、シンボリックリンク、ディレクトリの作成?削 除?属性設定を行う ? copy - Ansible実行端末にあるファイルをホストPCに転送する ? template - jinja2を利用したテンプレートファイルをホストPC に転送する ? get_url - http経由でファイルをダウンロードする ? shell - シェルコマンドを実行する
12.
Vagrant + AnsibleでLAMP環境を構築
1.cd /path/to/dir 2.git clone https://github.com/bells17/ ansible_lamp_sample.git 3.vagrant up 4.ansible-playbook -i inventory_file lamp.yml -vvv --ask-sudo- pass
13.
inventory_file (ホスト名) ansible_ssh_host=(対象のホスト)
ansible_ssh_user=(sshログインユーザー) ansible_ssh_private_key_file=(ssh公開鍵) ansible_ssh_port=(sshのポート番号) lamp ansible_ssh_host=192.168.34.10 ansible_ssh_user=vagrant ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key ansible_ssh_port=22
14.
Ansibleコマンドを実行 対象ホストに対してpingを実行 ansible
[対象ホスト名] -m ping -i inventory_file 対象ホストに対してシェルコマンドを実行 ansible [対象ホスト名] -m shell -a 'pwd; ls -la;' -i inventory_file -vvvv
15.
実際に実行しているタスクはこんな感じ - hosts:
lamp # 対象hostを定義 sudo: yes # sudoでコマンドを実行 vars_files: - vars/lamp.yml # 変数ファイルを読み込み tasks: # 各タスクを定義 - name: be sure httpd is installed # yumコマンドを実行 yum: name={{ item }} state=installed with_items: - httpd - httpd-devel ! - name: Ensure vhost is enabled # テンプレートファイルをサーバーに設置 template: src=/bells17/ansible-41439779/templates/vhost.conf.j2 dest={{ apache_install_path }}/conf.d/vhost.conf ! - include: tasks/local_hosts.yml # タスクを別ファイルから読み込んで実行
16.
実際のプロジェクトでの利用事例 ? 開発環境をAnsibleで構築
? アプリ申請用の本番環境をAnsibleで構築 ? OEM展開用にリポジトリ内のローカルファイル をAnsibleで自動生成
Download