SlideShare a Scribd company logo
1 of 17
Download to read offline
ansible provisioning
2018/06/08
株式会社 Rosso
1/17
自己紹介
渡部
わ た な べ
直樹
な お き
• 株式会社 Rosso インフラ構築運用部
• JP1、SQLServerなどで構成された某商社のポータルサーバの運用業務
• Windows・Linux問わずインフラ設計構築・運用業務
• クラウド環境の構築・運用 (Vartage・VM)
• Ansibleを使用した某SIerのシステム運用構築作業の自動化
2/17
目次
3/17
• プロビジョニング内容
• Ansibleとは?
• ベストプラクティス構成と用語集
• 処理の流れ
• 実際に実行してみよう
プロビジョニング内容
4/17
プロビジョニング内容
• Ansibleにてplaybook実行し、Laravelに必要なapache、PHP、
MySQL、Laravelをインストール・セットアップします。
5/17
Ansible
10.1.0.0/16
10.1.2.0/2410.1.1.0/24
Laravel
Playbook実行(SSH)
apache PHP
MySQL Laravel
Ansibleとは?
6/17
Ansibleとは?
• サーバ・ミドル構築自動化ツール
• OS、ミドルウェアの設定をYAMLでコード化。コード化することでこ
とであらかじめ用意した設定にしたがってミドルウェアインストール
設定を自動的に行うことが出来る。
• コード化してしまえば、複数環境に同時に実行することが出来、時間
の短縮・ミスの削減が可能
• エージェントレスであるためエージェント導入などの作業が不要!
• 設定はYAMLのため可読性が高い
• 冪統制が高い。
(※同一操作を複数回行っても設定が変わらなければ上書きされない)
7/17
ベストプラクティス構造と用語集
8/17
Ansible用語集
• 構成管理ツールAnsilbeにて使用する用語。以降のスライドにて使用
項番 用語 意味
1 インベントリ(hosts) リモート環境への接続情報
2 変数(var) Playbook,ロールで使用する変数の値を記載するYAML形式
のファイル
3 Playbook Ansibleで実行するプログラムの総称。今回はrolesを呼び出
す処理内容を記載するYAML形式のファイル
4 ロール(Roles) Playbookの一連の処理を纏めたもの。playbookより呼び出
される処理内容を記載するYAML形式のファイル
5 Module Playbook、ロールより呼び出されるPythonファイル。公式
の他にユーザ作成のModuleも多数有。自作可能
6 ベストプラクティス Ansibleで推奨されているディレクトリ構造。モジュールや
ロールを呼び出す上で理想的な構造。
ベストプラクティス構成にすることでplaybook記載内容を
簡易にすることができる。
9/17
ベストプラクティス構成
10/17
playbook /roles
/2_php.yml
/group_vers
/hosts
/1_apache.yml
/3_mysql.yml
/4_laravel.yml
/ansible.cfg
/Laravel.yml
/1_apache
/2_php
/3_mysql
/4_laravel
/tasks /main.yml
/tasks /main.yml
/tasks /main.yml
/tasks /main.yml
/templates /my.cnf.j2
/files /rosso_ws.tar.gz
Rolesで使う変数(vars)
インベントリ(接続情報)
Ansibleの定義ファイル
Roles呼び出し元
playbook
• ベストプラクティス構成にすることでplaybook記載内容を簡易にすることが可能
---
- name: Playbook Ansible Apache Install and Setup
hosts: laravel
roles:
- 1_apache
Playbook/1_apache.yml
呼び出し元Playbookはこんなに簡易にできる
とは言っても分かりにくいと思うので・・・
11/17
処理例
12/17
• apacheインストールを例に処理を解説します。
• 実行するコマンドは「ansible-playbook –i hosts 1_apache.yml」
• ベストプラクティス構成となっていますので、/etc/ansible/playbook
配下で実行すれば自動的に処理が動きます。
• 簡単ですが、見てみましょう。
apacheインストール例
⇒ 1コマンドでApacheのインストール、セットアップが完了
13/17
---
- name: Playbook Ansible Apache Install and
Setup
hosts: laravel
roles:
- 1_apache
Playbook/1_apache.yml
---
- name: apache Install Apache
yum: name=httpd
- name: Documentroot Permisson change
file: path="{{ httpdir }}" owner="{{ httpuser }}"
group="{{ httpuser }}" mode=0775
- name: Documentroot Subdirectory Permission change
shell: find {{ httpdir }} -type d -exec chmod 0775 {} ¥;
- name: Documentroot Subdirectory Permission change
shell: find {{ httpdir }} -type f -exec chmod 0664 {} ¥;
- name: apache Enable htaccess
replace: dest="{{ httpdfile }}" regexp="{{ httpdbef }}"
replace="{{ httpdaft }}"
- name: apache restart
service: name=httpd state=restarted
Playbook/roles/tasks/1_apache.yml
Playbook/group_vers/laravel.yml
### Apache ###
httpdgroup: apache
httpdir: /var/www
httpuser: apache
httpdfile: /etc/httpd/conf/httpd.conf
httpdbef: 'AllowOverride None'
httpdaft: 'AllowOverride All'
Playbook/hosts
[laravel]
10.1.2.xx
インベントリ
読み込み
変数読み込み
role実行
実行コマンド:
ansible-playbook –i hosts 1_apache.yml
処理の流れ
14/17
実行コマンドと処理内容
項番 実行コマンド 処理内容
1 ansible-playbook –i host 0_Devloper.yml 1.管理ツールのダウンロード、インストール
2 ansible-playbook –i host 1_apache.yml 1.Apacheダウンロード、インストール&セットアップ
2.Laravelで使用するhtaccess有効化
3 ansible-playbook –i host 2_php.yml 1.PHPダウンロード、インストール&セットアップ
2.PHPのTimezoneをAsia/Tokyoに変更
4 ansible-playbook –i host 3_mysql.yml 1.MySQLダウンロード、インストール&セットアップ
2.MySQL-pythoインストール(ansible用)
3.MySQLアクセス用ユーザ・パスワード設定
4.MySQLログイン用ファイル作成
5.Laravelで使用するDB作成
5 ansible-playbook –i host 4_laravel.yml 1.Laravelコンテンツデータ展開
2.ApacheドキュメントルートをLaravel用に変更
3.Composerダウンロード
4.Laravelインストール&セットアップ
5.Apache再起動
15/17
Laravelの画面が開けたら成功!
実際に実行してみよう
16/17
ご清聴ありがとうございました。
17/17

More Related Content

What's hot

Webサーバ勉強会#4
Webサーバ勉強会#4Webサーバ勉強会#4
Webサーバ勉強会#4
oranie Narut
 

What's hot (20)

nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
サーバー設定のお話
サーバー設定のお話サーバー設定のお話
サーバー設定のお話
 
入門Ansible
入門Ansible入門Ansible
入門Ansible
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
CentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたいCentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたい
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
 
Chef(Server)と AWS OpsWorks(tm)の比較
Chef(Server)と AWS OpsWorks(tm)の比較Chef(Server)と AWS OpsWorks(tm)の比較
Chef(Server)と AWS OpsWorks(tm)の比較
 
WordBench千葉「レベル別Nginx活用法」
WordBench千葉「レベル別Nginx活用法」WordBench千葉「レベル別Nginx活用法」
WordBench千葉「レベル別Nginx活用法」
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
 
Zabbix超入門
Zabbix超入門Zabbix超入門
Zabbix超入門
 
ACI + Ansible
ACI + AnsibleACI + Ansible
ACI + Ansible
 
Nginx勉強会
Nginx勉強会Nginx勉強会
Nginx勉強会
 
自治体サイトのWordPressのメンテナンス
自治体サイトのWordPressのメンテナンス自治体サイトのWordPressのメンテナンス
自治体サイトのWordPressのメンテナンス
 
Webサーバ勉強会#4
Webサーバ勉強会#4Webサーバ勉強会#4
Webサーバ勉強会#4
 
Introduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQLIntroduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQL
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
Azure bootcamp20130427
Azure bootcamp20130427Azure bootcamp20130427
Azure bootcamp20130427
 
マネージドBastion​ Azure Bastion​
マネージドBastion​ Azure Bastion​マネージドBastion​ Azure Bastion​
マネージドBastion​ Azure Bastion​
 
Alfresco Javascript Consoleのご紹介
Alfresco Javascript Consoleのご紹介Alfresco Javascript Consoleのご紹介
Alfresco Javascript Consoleのご紹介
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来
 

Similar to Ansible provisioning

#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
Abe Junichiro
 
CloudFormationを使って複数のSAP環境を構築してみよう
CloudFormationを使って複数のSAP環境を構築してみようCloudFormationを使って複数のSAP環境を構築してみよう
CloudFormationを使って複数のSAP環境を構築してみよう
REALTECHJP
 
Hatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginningHatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginning
Shinji Tanaka
 
サーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalkサーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalk
Hirokazu Ouchi
 
AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)
Akio Katayama
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
Kana SUZUKI
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発
AimingStudy
 
Solaris 11 ディープダイブセミナー インストール編
Solaris 11 ディープダイブセミナー インストール編Solaris 11 ディープダイブセミナー インストール編
Solaris 11 ディープダイブセミナー インストール編
SolarisJP
 

Similar to Ansible provisioning (20)

Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
Let's join in OpsWorks world!
Let's join in OpsWorks world!Let's join in OpsWorks world!
Let's join in OpsWorks world!
 
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
CloudFormationを使って複数のSAP環境を構築してみよう
CloudFormationを使って複数のSAP環境を構築してみようCloudFormationを使って複数のSAP環境を構築してみよう
CloudFormationを使って複数のSAP環境を構築してみよう
 
Solaris11で深化するクラウド
Solaris11で深化するクラウドSolaris11で深化するクラウド
Solaris11で深化するクラウド
 
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
 
20200708 bydstudy miyazaki
20200708 bydstudy miyazaki20200708 bydstudy miyazaki
20200708 bydstudy miyazaki
 
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみようXpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
 
Hatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginningHatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginning
 
サーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalkサーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalk
 
AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発
 
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニングAnsible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニング
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
 
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
 
Solaris 11 ディープダイブセミナー インストール編
Solaris 11 ディープダイブセミナー インストール編Solaris 11 ディープダイブセミナー インストール編
Solaris 11 ディープダイブセミナー インストール編
 

Ansible provisioning