Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Copyright © 2014 NTT DATA Corporation 1 
NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス 土橋 昌 
Ansibleで構成管理始める人のモチベーションをあげたい!
Copyright © 2014 NTT DATA Corporation 2 
Who am I? 
 
所属/氏名 
 
基盤システム事業本部 OSSプロフェッショナルサービス 
 
土橋昌(どばし まさる) 
 
お仕事 
 
OSSを使ったR&Dやシステム開発に携わっています 
 
6年ほどHadoop関連のR&Dやシステム開発に関わってきました 
 
近年はHadoopから派生して、ストリーム処理やオンメモリ分散処理にも携わっています 
 
最近の講演など 
 
Spark Summit 2014 @サンフランシスコ 
 
Hadoop Conference Japan 2014 
 
日経BP IT PROの記事 
 
日経コンピュータの記事
Copyright © 2014 NTT DATA Corporation 3 
背景 
プライベートでも業務でも たくさんのサーバ環境を作って作って(直して)きました Hadoopが普及し始めてから 加速度的に台数が増えました・・・。 
1000台とか数百台とか数十台とか、色々な規模
Copyright © 2014 NTT DATA Corporation 4 
今日お話しすること 
サーバ管理って 
なんとなく 
煩雑だよね 
手に余るサーバ 管理をなんとかし たい 
Hadoopも含めて 色んなシステムを 
まとめて管理した のだけど・・・ 
流行っているよう だしやってみたい 
 
構成管理のモチベーションの置き所? 
オレオレスクリプト の山を何とかして くれ
Copyright © 2014 NTT DATA Corporation 5 
今日お話しすること 
サーバ管理って なんとなく 煩雑だよね 
手に余るサーバ 管理をなんとかし たい 
Hadoopも含めて 色んなシステムを まとめて管理した のだけど・・・ 
流行っているっぽ いし、やってみたい 
 
構成管理のモチベーションの置き所? 
色んなツールがあって、 
色んな使い方をできるようだけれども、 
結局何をすればいいの?
Copyright © 2014 NTT DATA Corporation 6 
今日お話しすること 
そういうときは大抵 
「なんのために?」を押さえておくと 
大きく踏み外さないです
Copyright © 2014 NTT DATA Corporation 7 
今日お話しすること 
そういうときは大抵 「なんのために?」を押さえておくと 大きく踏み外さないです 
これまで公私共に色んなサーバ環境を 色んな人と開発・運用してきた経験から 「なんのために?」をお伝えします 
具体的な細かな話は次の機会に…
Copyright © 2014 NTT DATA Corporation 8 
(補足)構成管理ツールに何を使うか? 
 
ポイント 「メンバのスキルセット」、「プロジェクトの状況」を 考慮して選択すればよいと思います。 (Chef、Puppet、Ansible、…) 
 
今の時点での私見 色々なプロジェクトに関係するため、 ・メンバのスキルセット: プログラマとは限らない ・プロジェクトの状況: メンバの変更もある Ansibleの出来ることと使い勝手のバランスが程よいです
Copyright © 2014 NTT DATA Corporation 9 
まず結論=なんのために? 
 
トレーサビリティの確保 
 
共通の言葉づくり 
 
ノウハウの蓄積と発展
Copyright © 2014 NTT DATA Corporation 10 
1:トレーサビリティの確保 
 
目標 
• 
「誰が」「何を」「どうしたら」「どうなった」を把握 
• 
状況を事前に把握し、さらに問題発生時に迅速に対応 
 
方法の例 Git、SVN等でプレイブックを管理 
- name: copy_xml_files 
template: src={{ item }}.j2 dest=/etc/hadoop/conf/{{ item }} 
with_items: 
- core-site.xml 
- hdfs-site.xml 
- yarn-site.xml 
- mapred-site.xml 
- hadoop-metrics2.properties 
commit c438909edbe91bcab0c10910366048bf0e27d1e3 Author: hoge <hoge@example.com> Date: Fri Jul 11 06:37:09 2014 +0000 サーバ名を変数化 commit 0c2a475379dcaab333122c1fae0d153beda266aa Author: fuga <fuga@example.com> Date: Fri Jul 11 00:19:15 2014 +0900 Add zookeeper log rotation settings. 
プレイブックの例 
コミットログの例
Copyright © 2014 NTT DATA Corporation 11 
1:トレーサビリティの確保(問題解決の例) 
Gitレポジトリ 
管理サーバwith Ansible 
サーバグループA 
サーバグループB 
作業者1 
作業者2 
(1)問題発生? 
(3)経緯の理解 
(2)現状把握 
(4)仮説・対策立案 
(5)テスト環境で確認 
(6)対策実施
Copyright © 2014 NTT DATA Corporation 12 
2:共通の言葉づくり 
 
目標 
• 
メンバとの迅速な情報共有 
• 
曖昧さの回避 
 
方法の例 構成管理や運用作業をプレイブック化 
- hosts: '{{ server | default("hadoop_cdh5_pseudo") }}' 
gather_facts: no 
sudo: True 
sudo_user: hdfs 
tasks: 
- name: remove_tmp_dir 
shell: hdfs dfs -rm -r /tmp 
ignore_errors: True 
- name: make_intermediate_dir 
shell: hdfs dfs -mkdir -p /tmp/hadoop-yarn/staging/history/done_intermediate 
プレイブックの例
Copyright © 2014 NTT DATA Corporation 13 
2:共通の言葉づくりのケース例 
作業者1 
作業者2 
Gitレポジトリ 
○○のために 
□□を変えたい 
△△のために 
××を変えたい 
 
Ansibleプレイブックは、「順番に実行される」、「メモ書きのような明確さ」という特徴 =>変更意図や内容を把握しやすい。特に非プログラマでも。 
 
GitHubのようなサービスに慣れていれば、Pullリクエストによる議論も可能 =>議論の証跡を残しながら、非同期的に作業可能 
 
「とりあえずプレイブック化」という文化が染み付けば、 プレイブックが手順書/パラメータ一覧にもなる 
作業者3 
チームに加わったので プレイブックを確認します
Copyright © 2014 NTT DATA Corporation 14 
3:ノウハウの蓄積と発展 
 
目標 
• 
行き当たりばったりの回避 
• 
開発~運用に関する煩雑なノウハウを継続的に 改善し続ける 
 
方法の例 「ロール」を使って汎用化。 「変数」や「グループ」を使って階層化。 
- hosts: "{{ server | default('hadoop_cdh5_pseudo') }}" 
roles: 
- common 
- users 
- screen 
- ntp 
- prompt 
- epel 
ロールを使う例 
hadoop_cdh5_pseudo_fs_default_name: 'hdfs://cdh5-pseudo:8020' 
hadoop_cdh5_pseudo_mapred_job_tracker: 'cdh5-pseudo:8021' 
hadoop_cdh5_pseudo_ganglia_servers: '239.2.11.71:8649' 
変数定義
Copyright © 2014 NTT DATA Corporation 15 
3:ノウハウの蓄積と発展のイメージ 
作業者1 
作業者2 
Gitレポジトリ 
OSやHadoopの 
ロールを作りました 
OSロールを使います。 
あとGangliaのロールを 
作りました 
作業者3 
監視こみのHadoop 
環境を作るプレイブックを 
作りました 
 
ノウハウは少しずつ溜まり、成熟されるもの 
 
チームのノウハウを使いまわし、成熟させることができます (Ansibleにはロールやプレイブックなど、ノウハウ汎化と再利用のための仕組みがあります)
Copyright © 2014 NTT DATA Corporation 16 
まとめ 
Ansibleのような構成管理ツールを 何のために使うのか? 私は、 
 
トレーサビリティの確保 
 
共通の言葉づくり 
 
ノウハウの蓄積と発展 に使います
Copyright © 2011 NTT DATA Corporation 
Copyright © 2014 NTT DATA Corporation 
お問い合わせ先: 
株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス 
URL: http://oss.nttdata.co.jp/hadoop 
メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496

More Related Content

Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)

  • 1. Copyright © 2014 NTT DATA Corporation 1 NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス 土橋 昌 Ansibleで構成管理始める人のモチベーションをあげたい!
  • 2. Copyright © 2014 NTT DATA Corporation 2 Who am I?  所属/氏名  基盤システム事業本部 OSSプロフェッショナルサービス  土橋昌(どばし まさる)  お仕事  OSSを使ったR&Dやシステム開発に携わっています  6年ほどHadoop関連のR&Dやシステム開発に関わってきました  近年はHadoopから派生して、ストリーム処理やオンメモリ分散処理にも携わっています  最近の講演など  Spark Summit 2014 @サンフランシスコ  Hadoop Conference Japan 2014  日経BP IT PROの記事  日経コンピュータの記事
  • 3. Copyright © 2014 NTT DATA Corporation 3 背景 プライベートでも業務でも たくさんのサーバ環境を作って作って(直して)きました Hadoopが普及し始めてから 加速度的に台数が増えました・・・。 1000台とか数百台とか数十台とか、色々な規模
  • 4. Copyright © 2014 NTT DATA Corporation 4 今日お話しすること サーバ管理って なんとなく 煩雑だよね 手に余るサーバ 管理をなんとかし たい Hadoopも含めて 色んなシステムを まとめて管理した のだけど・・・ 流行っているよう だしやってみたい  構成管理のモチベーションの置き所? オレオレスクリプト の山を何とかして くれ
  • 5. Copyright © 2014 NTT DATA Corporation 5 今日お話しすること サーバ管理って なんとなく 煩雑だよね 手に余るサーバ 管理をなんとかし たい Hadoopも含めて 色んなシステムを まとめて管理した のだけど・・・ 流行っているっぽ いし、やってみたい  構成管理のモチベーションの置き所? 色んなツールがあって、 色んな使い方をできるようだけれども、 結局何をすればいいの?
  • 6. Copyright © 2014 NTT DATA Corporation 6 今日お話しすること そういうときは大抵 「なんのために?」を押さえておくと 大きく踏み外さないです
  • 7. Copyright © 2014 NTT DATA Corporation 7 今日お話しすること そういうときは大抵 「なんのために?」を押さえておくと 大きく踏み外さないです これまで公私共に色んなサーバ環境を 色んな人と開発・運用してきた経験から 「なんのために?」をお伝えします 具体的な細かな話は次の機会に…
  • 8. Copyright © 2014 NTT DATA Corporation 8 (補足)構成管理ツールに何を使うか?  ポイント 「メンバのスキルセット」、「プロジェクトの状況」を 考慮して選択すればよいと思います。 (Chef、Puppet、Ansible、…)  今の時点での私見 色々なプロジェクトに関係するため、 ・メンバのスキルセット: プログラマとは限らない ・プロジェクトの状況: メンバの変更もある Ansibleの出来ることと使い勝手のバランスが程よいです
  • 9. Copyright © 2014 NTT DATA Corporation 9 まず結論=なんのために?  トレーサビリティの確保  共通の言葉づくり  ノウハウの蓄積と発展
  • 10. Copyright © 2014 NTT DATA Corporation 10 1:トレーサビリティの確保  目標 • 「誰が」「何を」「どうしたら」「どうなった」を把握 • 状況を事前に把握し、さらに問題発生時に迅速に対応  方法の例 Git、SVN等でプレイブックを管理 - name: copy_xml_files template: src={{ item }}.j2 dest=/etc/hadoop/conf/{{ item }} with_items: - core-site.xml - hdfs-site.xml - yarn-site.xml - mapred-site.xml - hadoop-metrics2.properties commit c438909edbe91bcab0c10910366048bf0e27d1e3 Author: hoge <hoge@example.com> Date: Fri Jul 11 06:37:09 2014 +0000 サーバ名を変数化 commit 0c2a475379dcaab333122c1fae0d153beda266aa Author: fuga <fuga@example.com> Date: Fri Jul 11 00:19:15 2014 +0900 Add zookeeper log rotation settings. プレイブックの例 コミットログの例
  • 11. Copyright © 2014 NTT DATA Corporation 11 1:トレーサビリティの確保(問題解決の例) Gitレポジトリ 管理サーバwith Ansible サーバグループA サーバグループB 作業者1 作業者2 (1)問題発生? (3)経緯の理解 (2)現状把握 (4)仮説・対策立案 (5)テスト環境で確認 (6)対策実施
  • 12. Copyright © 2014 NTT DATA Corporation 12 2:共通の言葉づくり  目標 • メンバとの迅速な情報共有 • 曖昧さの回避  方法の例 構成管理や運用作業をプレイブック化 - hosts: '{{ server | default("hadoop_cdh5_pseudo") }}' gather_facts: no sudo: True sudo_user: hdfs tasks: - name: remove_tmp_dir shell: hdfs dfs -rm -r /tmp ignore_errors: True - name: make_intermediate_dir shell: hdfs dfs -mkdir -p /tmp/hadoop-yarn/staging/history/done_intermediate プレイブックの例
  • 13. Copyright © 2014 NTT DATA Corporation 13 2:共通の言葉づくりのケース例 作業者1 作業者2 Gitレポジトリ ○○のために □□を変えたい △△のために ××を変えたい  Ansibleプレイブックは、「順番に実行される」、「メモ書きのような明確さ」という特徴 =>変更意図や内容を把握しやすい。特に非プログラマでも。  GitHubのようなサービスに慣れていれば、Pullリクエストによる議論も可能 =>議論の証跡を残しながら、非同期的に作業可能  「とりあえずプレイブック化」という文化が染み付けば、 プレイブックが手順書/パラメータ一覧にもなる 作業者3 チームに加わったので プレイブックを確認します
  • 14. Copyright © 2014 NTT DATA Corporation 14 3:ノウハウの蓄積と発展  目標 • 行き当たりばったりの回避 • 開発~運用に関する煩雑なノウハウを継続的に 改善し続ける  方法の例 「ロール」を使って汎用化。 「変数」や「グループ」を使って階層化。 - hosts: "{{ server | default('hadoop_cdh5_pseudo') }}" roles: - common - users - screen - ntp - prompt - epel ロールを使う例 hadoop_cdh5_pseudo_fs_default_name: 'hdfs://cdh5-pseudo:8020' hadoop_cdh5_pseudo_mapred_job_tracker: 'cdh5-pseudo:8021' hadoop_cdh5_pseudo_ganglia_servers: '239.2.11.71:8649' 変数定義
  • 15. Copyright © 2014 NTT DATA Corporation 15 3:ノウハウの蓄積と発展のイメージ 作業者1 作業者2 Gitレポジトリ OSやHadoopの ロールを作りました OSロールを使います。 あとGangliaのロールを 作りました 作業者3 監視こみのHadoop 環境を作るプレイブックを 作りました  ノウハウは少しずつ溜まり、成熟されるもの  チームのノウハウを使いまわし、成熟させることができます (Ansibleにはロールやプレイブックなど、ノウハウ汎化と再利用のための仕組みがあります)
  • 16. Copyright © 2014 NTT DATA Corporation 16 まとめ Ansibleのような構成管理ツールを 何のために使うのか? 私は、  トレーサビリティの確保  共通の言葉づくり  ノウハウの蓄積と発展 に使います
  • 17. Copyright © 2011 NTT DATA Corporation Copyright © 2014 NTT DATA Corporation お問い合わせ先: 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス URL: http://oss.nttdata.co.jp/hadoop メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496