Upload
moriwaka-kazuo
View
224
Download
3
Embed Size (px)
Citation preview
Red Hat Ansible Towerのご紹介Red Hat 株式会社2017-11-14
2
概要1. Ansible Engine
2. Ansible Tower
3. Ansible Towerの販売4. Ansible Towerの導入事例
IT運用自動化の課題運用管理自動化により、作業時間の短縮や、作業ミスの削減
↓やってみると……↓● 関係者のスキルレベルにギャップ → 翻訳が必要
– スクリプトで自動化したものをExcelでレビュー– メンテナンスも二重管理に
● 企業内に多様なハードウェア・ソフトウェアが存在– 「自動化のためのAPI」があるものは多いが利用方法はバラバラ– 複数製品にまたがる自動化が難しい– 自動化のしくみにより特定ベンダーへロックインされる懸念
Ansibleによる解決● 一つの言語で全てに対応
– 「そこそこ記述能力があって」「だいたいの関係者が読めそうなくらい」の難しさ
– 言語のバランスの良さで人気● 多数のソフトウェア・ハードウェアに対応
– 各製品用のコンポーネントをモジュールとして提供
課題の例「Webサーバを1台足す」タスクを自動化するだけでも様々な仕組みが必要になる
– VMwareで仮想マシンを作成→SOAP API– VM上のRHELにhttpdをインストール→シェルスクリプト– ロードバランサの設定を変更→ssh経由のコマンド
↓● Ansible Engineならひとつの言語で対応
ポピュラー運用管理自動化用途のOSSとしてAnsibleが一番人気過去5年のgoogle検索傾向:Ansible install, Puppet install, Chef install
2012年9月 2017年8月2016年
2015年10月Red Hatが買収
Ansible の ラインナップ
7
Red Hat Ansible Engine自動化を実現するための製品「Playbook」とよばれるスクリプトで手順を書き、コマンドラインから利用する
Red Hat Ansible TowerAnsible Engineを企業でうまく使うための製品権限管理やWeb UI、REST APIなど企業で必要な機能を提供し、内部でAnsible Engineを呼びだす
Red Hat Ansible Engine
Ansibleでできること
プロビジョニング オーケストレーション 構成管理 パッケージインストール 設定変更 ファイル転送
複数の機器・製品に対して自動で順序実行 サーバ/ルータ/スイッチ
/ファイアウォール/ロードバランサ/ストレージ/データベース/クラウド など
サービスの起動・終了 状態把握・確認 バッチ処理 アップデート実行 セキュリティパッチ
9
Ansibleの特徴
シンプル エージェントレスパワフル 管理対象にエージェント インストール不要 SSH or WinRMのみ
多数の製品・環境に対応し、様々な操作が可能 すぐ利用できるロールを多数提供
ソースコードではない 一つの言語(YAML) 冪等性
10
その他のLinux ディストリビューション
Ansibleで操作可能なOS
Ansibleで操作可能なNW製品ベンダー
Ansibleで操作可能なクラウド製品など
Ansibleで操作可能なアプリケーション等
Ansible の動作
playbookユーザー
ネットワークモジュール
クラウド
インベントリサーバー
API
15
ユーザはPlaybookと呼ばれるスクリプトを作成し、Ansibleで実行Ansibleは管理対象の各システムと通信し、Playbookの内容を実現
Playbookの例
playbookユーザー
ネットワークモジュール
クラウド
インベントリサーバー
API
16
- hosts: webservers vars: http_port: 80 max_clients: 200 remote_user: root tasks: - name: ensure apache is at the latest version yum: name: httpd state: latest
tasks: - name: キャッシュディレクトリ追加 file: path=/opt/cache state=directory - name: nginxをインストール yum: name=nginx state=latest - name: nginxを再起動 service: name=nginx state=restarted
Playbookはタスクを並べたもの
上から下へ順に実行していく
tasks: - name: apacheをインストール yum: name={{ item }} state=present with_items: - httpd - libselinux-python ループはタスク単位
with_itemsは item変数に代入して順に実行
Playbookの基本(1)
{{ 変数名 }} でタスクに変数を埋め込み
tasks: - name: cache dirを作成 file: path={{ cache_dir }} state=directory - name: nginxをインストール yum: name=httpd state=installed when: ansible_os_family == "RedHat"
条件文もタスク単位
そこまででnotifyの呼出がされていると
handlerは1回だけ実行
tasks: - name: cache dirを作成 file: path=/opt/cache state=directory - name: nginxをインストール yum: name=nginx state=latest notify: nginxを再起動handlers: - name: nginxを再起動 service: name=nginx state=restarted
Playbookの基本(2)
Red Hat Ansible Tower
Ansibleの課題● 定期実行などのジョブ管理機能がほしい● 皆がバラバラにAnsibleを利用すると「いつ、誰が、何に、何を」実行したかわからない– 誰が作ったか謎の仮想マシン→「このVM誰が使ってるの??」– → どこかでログを集約したい
● 「Ansibleで何でもできる権限」を誰にでもは渡せない– 例: VMwareの管理者権限、ネットワーク機器の管理者権限 etc.– →「特定Playbookの実行だけをさせる」ような制限つきの権限を渡す仕組みが欲しい
● 他システムとの連携
Ansible Towerによる解決● PlaybookをJob Templateとしてテンプレート化、
ジョブコントロール● 実行ログを集約・可視化● ユーザ権限管理 、監査ログの記録
– Project BのメンバーはProject Bに関しての操作だけができる– 「あらかじめ割りあてられたJob YYの実行」だけができるオペ
レータ用の操作画面● 他システムからREST APIによる呼び出し
Ansible Tower についてAnsible Towerは各種管理機能を提供し、ユーザはAnsible Tower経由でAnsibleを実行する
ジョブコントロール 可視化 権限管理
シンプル エージェントレスパワフル
23
ジョブコントロール スケジュール実行 ジョブの集中管理 / 一括実行 Ad-hoc Command の実行 ジョブの抽象化
権限管理● ユーザの認証機能(ログイン)● 複数のユーザをまとめたTeamの作成● ユーザ / Team 毎の権限設定
● Inventory (対象ホスト群)● Credentials (パスワード等)● Job Template (パラメータ+Playbook)● Project (Playbook群)
25
可視化 ダッシュボード
全体の実行結果 Jobの実行結果
Step毎の結果 ログ
Job Template 毎の実行結果 Inventory / Host 毎の実行結果
監査が可能
Ansible Towerの便利な機能
外部からRestful API経由でAnsible Towerの機能を実行 一度登録すると暗号化され編集時にも過去の登録内容は一切表示されません。
Restful API 通知機能 パスワード管理 Job 実行 / playbook 更新などの通知機能 Email / Slack / Twilio/ PagerDuty / HipChat / Webhook
OS に対してのステータス収集を行うJob Package / Service / Status
スキャン Job Fact Caching
一度収集したfactを指定時間だけ保持する。 fact収集を複数回実行することによる処理時間を短縮。
Activity Stream
全操作に対する実行履歴の時系列表示機能
Ansible Towerの便利な機能
Ansibleの販売
Ansible Engineで何が嬉しいの?● 自動化による効率化
– 定型作業を自動化できて作業負荷が下がる– 作業の品質向上、再現性向上、人的ミス回避
● Playbookを改善していくことで運用の品質を持続的に向上していく
– (Playbookが十分に良ければ)人的ミスによる手戻りなし● 1台ずつの確認作業削減
Ansible Towerで何が嬉しいの?● 管理者権限の部分的な譲渡による効率化
– セルフサービス化による効率化● 社内ユーザにAnsible Towerで直接作業を起動してもらう
→ やりとりの待ち時間短縮・事務的手続きの省略– 他システムとの連携による効率化
● 他システムのイベントを契機とした処理● 他システムとの連携
– REST API, 通知, etc.
誰に売るの?
● IT運用負荷の軽減を考えている人開発チーム、システム管理部門、ネットワーク管理部門、DevOpsチーム– Ansibleを既に使っていませんか?– IT関連で申請と受付がたくさんあって大変じゃないですか?– バラバラに作り込んで属人化していませんか?– アプリケーションやインフラの配備を頻繁にやっていますか?– プログラムがわからない人にもレビューしてほしいですよね?
誰に売るの?
● 「Ansible知ってますか?」と聞いて「知ってるけど会社で使うのはチョットなあ」と言っている人– 「チョット」と言っているところはだいたい……
● 管理面 → Ansible Towerの出番● Playbookを書ける人が少ない → トレーニングの出番● サポート → サポートだけならAnsible Engineかも
– Ansible Towerの見込み客としては有望かもしれない
Ansible Towerが合わない人は?
● 運用ではなく「構築だけ」をする人– 構築時には全部の権限を持っているケースが多い
そのためTowerは不要でAnsible Engineだけで用が足りがち→ 他の人や部門とのやりとりや関連がないか?を探す
● 一人で全部やっているところ– 「管理者一人で全部やってます!」という会社にはほぼ権
限管理の必要がない→ Ansible Towerの監査ログ収集や、エンドユーザにセルフサービスしてもらうのに興味があるか聞いてみる
誰に売れないの?● 自社内でPlaybookを書く/読む気が全くない人
– 「自動化する人が使うツール」で「買うと自動化される魔法」ではない→ 他のお客さんを探そう……
● 関係者全員がプログラマ– Ansibleの特徴「プログラムが書けない人にもだいたい読める」が
あまりマッチしない→ 他の人や部門とのやりとりや関連がないか?
価格は?
Ansible EngineおよびAnsible Towerのサブスクリプション費用は管理対象ノードの数により決まります。サブスクリプションは積みあげします。( 例: 160ノード管理したい場合は 100ノードの製品を2本購入する)Ansible Engine Networking Add-onのみ、管理台数にかかわらず1社で1本
unit Standard PremiumAnsible Tower 100 nodes 1,300,000 1,820,000Ansible Engine 100 nodes 650,000 910,000Ansible Tower with Ansible Engine 100 nodes 1,690,000 2,275,000Networking Add-on 1社 6,500,000
Ansible Towerは「高い」のか?
「定価100ノードで年間169万円で、これから開始ですね」「え、高くない?」「Ansible Towerを導入して自動化がうまくいったら、社内全体で週に何時間くらい時間を節約できそうですか?」「10時間くらいかな……」↑ここを考えて貰うのが重要「年48週稼動として、皆さんの時間”480時間”を169万円で買うと思うと、1時間あたり3000円くらいですよね……?」
Ansible 関連トレーニング「興味はあるけどPlaybookとかわからないなー」という場合にもトレーニングがあります
● DO007 Ansible Essentials: Simplicity in Automation Technical Overview (無償、英語ビデオコース)
● DO408 Automation with Ansible with exam (4.5日、教室、日本語、216,000円(税別))
● DO409 Automation with Ansible II: Ansible Tower(オンライン、英語、93,500円(税別))
パートナー向け無償トレーニングRed Hat認定パートナーにはパートナーセンターにてオンライントレーニングを提供中● How to Sell Ansible Tower by Red Hat
– 営業むけトレーニング● Ansible by Red Hat Foundations
– AnsibleとAnsible Towerの機能概要を見る演習● Automation with Ansible by Red Hat
– DO408の縮小版。Playbookを書けるようになるための演習
Ansible TowerとRed Hat他製品の連携
Red Hat他製品との統合● Red Hat Enterprise Linux
– 7.4からRHEL System Roles 同梱● Red Hat Insights
– 一部のアクションで対応用Playbookを生成● Red Hat CloudForms
– Ansible Towerと連携、Ansibleによる自動化対応● Red Hat Satellite
– Ansible Towerと連携、Ansibleによる自動化対応(予定)
Red Hat Insightsによる問題検出・緩和● 各RHELの状態をRed Hat Insightsへレポート● ルールにより障害につながる可能性が高い要素を検出
– 重大な問題が修正される前のバージョン– 典型的な設定の問題– 統計情報の異常– ファームウェアバージョンやISV製品との互換性
● 問題に対する緩和策をAnsible Playbookにより提供– 一部の問題のみ– 選択したホスト用に出力
Insights + Ansibleイメージ図1. 診断情報を定期送付
2. レポート表示/Playbook生成 3. Insights API経由でPlaybookを
Job Templateとして取り込み
4. 対策の実施
Red Hat Satelliteによるコンテンツ管理● Red Hat Satelliteによるコンテンツ(rpmパッケージ等)の
バージョン管理機能を活用する● コンテンツ管理と自動操作の組み合わせによる作業の再
現性を向上● 利用例) ① 「2017年5月15日版」のコンテンツビューを作成② テスト環境でAnsibleによるアップデート実施③ テスト環境で各種のテストを実施④ 「2017年5月15日版」を本番環境へ適用⑤ テスト環境でテスト済みのAnsible Playbookによるアップデートを実施
Satellite + Ansibleイメージ図
Satellite
コンテンツ同期
● サブスクリプション管理● パッケージを同期● 各サーバのインベントリ● コンテンツのバージョン管理
パッケージのインストールやアップデートを含む各種作業を
それぞれのサーバに指示
インストール・アップデート
パッケージの提供タイミングは基本的に「なるはや」
任意タイミングで社内用バージョン作成
更新指示インベントリ情報同期
Ansible Towerの導入事例
46
Ansible by Red Hat の顧客事例世界で、既に600社を超える企業に導入されています。
Narrative Clip 企業
服やカバンなどに取り付けると30秒ごとに自動で撮影を行い日常を記録してくれるウェアラブルカメラ: Narrative Clipを提供する企業です。 撮影された画像は(AWS上の)Narrative Cloudにアップロードされ保存されます。
課題 Narrative Clipのアプリケーションを支えるためには自動化されたデプロイを連続的に実行する必要がありました。 Ansible Towerを選択する前にAnsibleを使用していましたが、Ansible Serverへの管理Nodeの追加等の設定を手動で行う必要がありました。
解決策 Ansible Towerを用いて、EC2上へのインスタンスの作成と状態確認を実行しました。
効果 Ansible Towerの導入により、ほぼ自動でこれらの作業を実施することができるようになりました。
Lifesum 企業
Lifesumは、スマフォを使った健康管理アプリを提供する企業で、ヨーロッパを中心に1,300万DLを突破しています。 課題
LifesumのインフラはAWSのLinux上で動作しており、アプリケーションの展開やリモートコマンド実行を各種ツールやスクリプトを駆使して実行していましたが、複数の異なる環境を構築し管理するためには複雑で、多くの問題を抱えていました。 解決策
Ansibleを使用しコンフィグ管理、インスタンスの作成とアプリケーションの展開を自動化しました。 効果
Ansible導入後3ヶ月で運用に移行しました。 シンプルでエージェントレス設計のAnsibleを利用することで、コンフィグ管理とアプリケーションの展開が容易で円滑になりました。 反復可能なプロセスでplaybookを作成することにより設定ミスがなくなり、開発者は提供する製品の品質に注力することができました。 毎日何度も展開できるようになり必要に応じて迅速なロールバックも可能になりました。
BinckBank 企業
BinckBankは、オランダで最大のオンライン投資銀行で、76万以上の口座を保有しています。 課題
データセンターの複雑さが課題でした。 自動化製品を使用するにあたってトレーニングが不要なシンプルさが必要でした。 独自のスクリプトで自動化していましたが、作成やデバッグにかなりの時間を費やしていました。
解決策 Linux / Unix Serverに対してAnsibleを使用しました。
効果 Ansibleを使用することで正しく環境が構築できていることを示せるようになり、これまで問題が発生した際にインストールは正しく行われたか設定は間違っていないか等の疑念から長時間の確認作業を強いられていましたが、信頼されるようになりました。 500台以上のサーバに対して、事前の設定なく(エージェントのインストールが不要で)すぐに設定を行えるようになりました。 Ansible Towerを導入したことで社内の非技術者もAnsibleを利用できるようになりました。
THANK YOU
backup slide
モジュールのサポートcore 一部network community
Ansible Engine Red Hatにて Networking add-onがあれば コミュニティにて
Ansible Tower Ansible Engine 部分についてのサポートはなしAnsible Tower with Ansible
EngineRed Hatにて Networking add-
onがあれば コミュニティにて
http://docs.ansible.com/ansible/latest/modules_support.html
コミュニティプロジェクトと製品AWX
ProjectAnsible Project
Ansible Tower
Ansible Engine
サポート コミュニティ コミュニティ Red Hat Red Hat自動化 ○ ○
管理機能 ○ ○
頻繁にリリース
頻繁にリリース
AWXの中で選別した
バージョンを18ヶ月間
メンテナンス
2バージョン後の出荷まで
メンテナンスhttps://access.redhat.com/support/policy/updates/ansible-enginehttps://access.redhat.com/support/policy/updates/ansible-tower