ansible softlayer

24
東京SoftLayer勉強会 #自動化 #Chef #Ansible #Puppet

Upload: hideaki-tokida

Post on 16-Apr-2017

1.810 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Ansible softlayer

東京

SoftLayer勉

強会

#自動化

#Chef #Ansible #Puppet

Page 2: Ansible softlayer

Hideaki Tokida@tokida

• 最近気になるっているのはOpenWhisk。イベント駆動型アプリケーションサーバです。OSSなのでSoftLayerでも動きます。

Page 3: Ansible softlayer

Infrastracutre as a Code

• Ansibleは代表的な構成管理ツールの1つです。最近ではInfrastructures as a Codeですね。インフラを制御するためのソフトです。

Page 4: Ansible softlayer

Infrastructures as Codebefore

設計書に設定内容を記述

設計書をレビュー(変更点をドキュメントで指摘)

設計書に「見ながら」サーバを設定試験書を「見ながら」試験を実施

設計書を元に「テスト仕様書」を記述ファイルで版管理

• 今までのインフラ構築は「大体」手作業が多いですね。レビューをしても人為的なミスでそのとおりとは限りません。

Page 5: Ansible softlayer

Infrastructures as Codeafter

Git等のソース管理ツールを利用したレビュー

設定定義を「使って」サーバを設定

試験定義を「使って」試験を実施

設計を元に「テスト」を記述

「設定内容」を定義ファイルに記述

git等で履歴を管理

• コード化することにより「レビュー」「実行」「テスト」「履歴」が一貫性を持ち冪等性を持って運営することが出来ます。

Page 6: Ansible softlayer

Ansible

• そのな構成管理を実現するための実装の1つが「Ansible」

Page 7: Ansible softlayer

Python

• None Agent• Install Application• Configuration

server

• 多くのことが出来ます。記述はYAML型式で記載するだけ。プリセットされた多くのモジュールが構築を手助けしてくれます。

Page 8: Ansible softlayer

Ansibleで出来ること

1. 対象のサーバに対してはSSHを利用する、Windowsも対応

2. サーバ側にエージェント/クライアントの導入は不要

3. 設定ファイルはYAML型式で記述

4. 冪等性が考慮された多数のモジュールが標準で提供

5. 複数の処理をまとめて定義した「Playbook」を実行する

6. 特定条件で動くハンドラや条件分岐、ループなどが定義可能

Page 9: Ansible softlayer

Ansible & SoftLayer

• インフラ部分である「SoftLayer」に対してAnsibleは何が出来るでしょうか?

Page 10: Ansible softlayer

Ansible + SoftLayer で出来ること

1. サーバのOSレイヤーではなく、「サーバ」自体をオーダ・キャンセル可能

2. 対象ホストのリストを動的にSoftLayerの内容とする

3. SoftLayerはまだExtra Moduleに正式には入っていない(プルリク待ち)

4. 上手く利用すればサーバのオーダから構築までを自動化可能

Page 11: Ansible softlayer

1. Server Order & Cancel (ansible modules)

2. Inventroy host (ansible dynamic inventory)

3. Into Provtioning Script (ansible)

• 3つの使い方が考えられます。

Page 12: Ansible softlayer

Python

Order ServerCancel Server

SoftLayerVirtual Server

1. Server Order & Cancel (ansible modules) • Softlayer-pythonの機能を利用してAPIをコールすることでAnsibleから制御を行う

Page 13: Ansible softlayer

> ansible-playbook softlayer_order.yml

• 実行はSoftLayer-Pytonが利用できる端末から実施

Page 14: Ansible softlayer

Order Server Cncel Server

Page 15: Ansible softlayer

現状のSOFTLAYER ANSIBLE MODULEの課題点

1. 冪等性が担保されて無い(2回実行するとサーバが繰り返し作成されてしまう)

2. Tagでサーバを管理(idでサーバを特定しない為削除する際に不便)

3. まだ正式版になっていない(プルリクに入っている状態)

Page 16: Ansible softlayer

> ansible -i softlayer.py dal09 -m ping

2. Inventroy host (ansible dynamic inventory) • ホストの情報(inventory)を動的にSoftLayerから取得する

Page 17: Ansible softlayer

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.domainameEx) docker01.niandc.co.jp

単一IPアドレス

regionEx) dal09

複数の該当するサーバのIPアドレス

DomainEx) niandc.co.jp

複数の該当するサーバのIPアドレス

・コード内 93⾏⽬ apikey => api_key に修正・softlayer.py には実⾏権限が必要です(chmod +x softlayer.py)・sshで接続できる必要があります。

• 「データセンターの全てのサーバ」という指定を行うことが出来る。また環境変数が定義されるので必要に応じて処理に変化を持たせることが可能

Page 18: Ansible softlayer

現状のSOFTLAYER INVENTORY MODULEの課題点

1. いい感じで出力してくれる dynamic Inventry Scriptがないので自分で使いやすいモノを

自作したほうが便利? 拡張して利用しましょう

docker01_p ansible_ssh_private_key_file=id_rsa ansible_ssh_host=10.x.x.11 等

• 実際の運用上必要なHostsの定義は自作したほうが便利なことも多い。使い分ける。

Page 19: Ansible softlayer

-- postinstall TEXT

3. Into Provisioning Script (ansible)

Page 20: Ansible softlayer

server

サーバを購入

起動後(Post)にShを実行

Ansibleが呼出され実行

YMLを取得

Pattern1 • SoftLayerの提供するProvisionScriptのシェルの中に組み込んでしまえば簡単に構成が出来ます(Ansbileの導入が必要)

Page 21: Ansible softlayer

server

①サーバのオーダー処理

②Inventroy対象を動的に生成③対象のサーバにAnsibleをPlaybookを使い処理を実行

YMLを取得

Pattern2 • もう一つのシナリは、オーダを実行しInventoryを活用してホストの情報を取得し適切なPlaybookを実行する事です。

Page 22: Ansible softlayer

現状のSOFTLAYER PROVING SCRIPTの課題点

1. プロビジョニングスクリプトは難しいことをすると完全にシェル芸になりがち

2. Ansibleなどの構成ツールを使うことで汎用的に既存の資産を利用

3. サーバの構成がある程度変更になってもAnsibleが吸収出来る範囲内であればそのまま利

用可能

Page 23: Ansible softlayer

Ansible による自動化によるメリット

• もうおわかりですね?

Page 24: Ansible softlayer

第8回 Bluemixユーザー会 〜InterConnect 2016速報!新サービス勉強会〜Wed, 16 Mar 2016 19:00 - 21:00

Swiftでイベントドリブン!バックエンドサービス「OpenWhisk」

https://bmxug.doorkeeper.jp/events/39959

• イベント駆動サーバ「OpenWishik」についてBluemixユーザ会でお話しします。オープンソースでSoftLayerでも動きます。