Ansible softlayer

102
-1

Published on

How to use Ansible with Softlayer

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
102
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ansible softlayer

  1. 1. 東京SoftLayer勉強会#自動化#Chef#Ansible#Puppet
  2. 2. Hideaki Tokida @tokida • 最近気になるっているのはOpenWhisk。イベ ント駆動型アプリケーションサーバです。 OSSなのでSoftLayerでも動きます。
  3. 3. Infrastracutre as a Code • Ansibleは代表的な構成管理ツールの1つで す。最近ではInfrastructures as a Codeで すね。インフラを制御するためのソフトで す。
  4. 4. Infrastructures as Code before 設計書に設定内容を記述 設計書をレビュー (変更点をドキュメントで指摘) 設計書に「見ながら」サーバを設定 試験書を「見ながら」試験を実施 設計書を元に「テスト仕様書」を記述ファイルで版管理 • 今までのインフラ構築は「大体」手作業が 多いですね。レビューをしても人為的なミ スでそのとおりとは限りません。
  5. 5. Infrastructures as Code after Git等のソース管理ツールを利用 したレビュー 設定定義を「使って」サーバを設定 試験定義を「使って」試験を実施 設計を元に「テスト」を記述 「設定内容」を定義ファイルに記述 git等で履歴を管理 • コード化することにより「レビュー」「実 行」「テスト」「履歴」が一貫性を持ち冪 等性を持って運営することが出来ます。
  6. 6. Ansible • そのな構成管理を実現するための実装の1つ が「Ansible」
  7. 7. Python • None Agent • Install Application • Configuration server • 多くのことが出来ます。記述はYAML型式で 記載するだけ。プリセットされた多くのモ ジュールが構築を手助けしてくれます。
  8. 8. Ansibleで出来ること 1. 対象のサーバに対してはSSHを利用する、Windowsも対応 2. サーバ側にエージェント/クライアントの導入は不要 3. 設定ファイルはYAML型式で記述 4. 冪等性が考慮された多数のモジュールが標準で提供 5. 複数の処理をまとめて定義した「Playbook」を実行する 6. 特定条件で動くハンドラや条件分岐、ループなどが定義可能
  9. 9. Ansible & SoftLayer • インフラ部分である「SoftLayer」に対して Ansibleは何が出来るでしょうか?
  10. 10. Ansible + SoftLayer で出来ること 1. サーバのOSレイヤーではなく、「サーバ」自体をオーダ・キャンセル可能 2. 対象ホストのリストを動的にSoftLayerの内容とする 3. SoftLayerはまだExtra Moduleに正式には入っていない(プルリク待ち) 4. 上手く利用すればサーバのオーダから構築までを自動化可能
  11. 11. 1. Server Order & Cancel (ansible modules) 2. Inventroy host (ansible dynamic inventory) 3. Into Provtioning Script (ansible) • 3つの使い方が考えられます。
  12. 12. Python Order Server Cancel Server SoftLayer Virtual Server 1. Server Order & Cancel (ansible modules) • Softlayer-pythonの機能を利用してAPIを コールすることでAnsibleから制御を行う
  13. 13. > ansible-playbook softlayer_order.yml • 実行はSoftLayer-Pytonが利用できる端末か ら実施
  14. 14. Order Server Cncel Server
  15. 15. 現状のSOFTLAYER ANSIBLE MODULEの課題点 1. 冪等性が担保されて無い(2回実行するとサーバが繰り返し作成されてしまう) 2. Tagでサーバを管理(idでサーバを特定しない為削除する際に不便) 3. まだ正式版になっていない(プルリクに入っている状態)
  16. 16. > ansible -i softlayer.py dal09 -m ping 2. Inventroy host (ansible dynamic inventory) • ホストの情報(inventory)を動的に SoftLayerから取得する
  17. 17. https://github.com/WrathOfChris/ops/blob/master/softlayer/ansible/inventory/softlayer.py hostvars PublicIP単位 (sfl_) ・uuid,cpu,type,rack,state,ip_address,id,hostname,mem, private_ip_address, dns_name, region, key_name, kernel, domain, guid, launch_time hostnanme.domainame Ex) docker01.niandc.co.jp 単一IPアドレス region Ex) dal09 複数の該当するサーバのIPアドレス Domain Ex) niandc.co.jp 複数の該当するサーバのIPアドレス ・コード内 93⾏⽬ apikey => api_key に修正 ・softlayer.py には実⾏権限が必要です(chmod +x softlayer.py) ・sshで接続できる必要があります。 • 「データセンターの全てのサーバ」という 指定を行うことが出来る。また環境変数が 定義されるので必要に応じて処理に変化を 持たせることが可能
  18. 18. 現状のSOFTLAYER INVENTORY MODULEの課題点 1. いい感じで出力してくれる dynamic Inventry Scriptがないので自分で使いやすいモノを 自作したほうが便利? 拡張して利用しましょう docker01_p ansible_ssh_private_key_file=id_rsa ansible_ssh_host=10.x.x.11 等 • 実際の運用上必要なHostsの定義は自作した ほうが便利なことも多い。使い分ける。
  19. 19. -- postinstall TEXT 3. Into Provisioning Script (ansible)
  20. 20. server サーバを購入 起動後(Post)にShを実行 Ansibleが呼出され実行 YMLを取得 Pattern1 • SoftLayerの提供するProvisionScriptの シェルの中に組み込んでしまえば簡単に構 成が出来ます(Ansbileの導入が必要)
  21. 21. server ①サーバのオーダー処理 ②Inventroy対象を動的に生成 ③対象のサーバにAnsibleをPlaybookを使い処理を実行 YMLを取得 Pattern2 • もう一つのシナリは、オーダを実行し Inventoryを活用してホストの情報を取得し 適切なPlaybookを実行する事です。
  22. 22. 現状のSOFTLAYER PROVING SCRIPTの課題点 1. プロビジョニングスクリプトは難しいことをすると完全にシェル芸になりがち 2. Ansibleなどの構成ツールを使うことで汎用的に既存の資産を利用 3. サーバの構成がある程度変更になってもAnsibleが吸収出来る範囲内であればそのまま利 用可能
  23. 23. Ansible による自動化によるメリット • もうおわかりですね?
  24. 24. 第8回 Bluemixユーザー会 〜InterConnect 2016速報!新 サービス勉強会〜Wed, 16 Mar 2016 19:00 - 21:00 Swiftでイベントドリブン!バックエンドサービス「OpenWhisk」 https://bmxug.doorkeeper.jp/events/39959 • イベント駆動サーバ「OpenWishik」につい てBluemixユーザ会でお話しします。オープ ンソースでSoftLayerでも動きます。

×