Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ansible tower 構築方法と使い方 with VMware モジュール Rev2.2

842 views

Published on

この資料は旧バージョンです。最新版は3.0で、Speaker Deckに公開しています。
以下ご確認ください。

https://speakerdeck.com/hokano/ansible-tower-gou-zhu-fang-fa-toshi-ifang-with-vmware-moziyuru-rev-3-dot-0

2018年2月15日更新のRev2.2です。
テンプレートからの仮想マシンのデプロイに関するプレイブックの説明を追加しました。

AnsibleTowerハンズオンガイド第二弾です。今回はVMwareモジュールを利用したvSphere環境の自動化も含まれます。是非お楽しみください!

Published in: Technology

Ansible tower 構築方法と使い方 with VMware モジュール Rev2.2

  1. 1. Ansible Tower 構築方法と使い方 with VMware モジュール レッドハット株式会社 パートナーソリューションアーキテクト部 岡野浩史 2018年 2月
  2. 2. 現在、企業のIT管理者は、多種多様なハードウェア、ソフトウェア、ク ラウド等々、多くのシステムの構築し、それを最新のIT環境として維持 していく必要に迫られています。そんな中、構築や管理の手間を劇的に 改善するツールとして Ansible Engine / Towerへの関心が高まってい ます。この資料は Ansible Towerに関する以下の点をハンズオン形式で 学ぶことを目的にしています。インストールに関しては手間をかけず、 DBも内蔵。使い方にフォーカスした資料です。 ・Ansible Tower (3.2.2) のインストール ・Ansible Tower の使い方 ・VMwareモジュールの使い方 Ansibleは、モジュールを利用することにより多くの機器やクラウド環境 の管理が可能です。今回はその一例として、VMwareモジュールを利用 して vSphere 環境の設定をAnsible Tower から行ってみます。2 資料作成の背景と目的
  3. 3. この資料はAnsible Tower の導入から Ansible Tower でのプレイブッ クの実行、権限管理など、Ansible Towerの使い方、さらには VMware モジュールを利用した、vSphere 6.5 の環境の自動化についてハンズオ ンで学んで頂くことを目的としています。vSphere 6.5の環境 (vCenter Server / ESXi ホスト)については、既にあるものを利用することを前提 としているためセットアップ方法は含まれません。また、VMware に関 する用語や機能の説明等も含まれません。Ansible Tower の使い方に フォーカスした資料ですので、構築に関しては簡単な記述にとどめてお ります。ご了承ください。 3 前提条件
  4. 4. Ansible Tower ~インストールとサンプルジョブの実行~
  5. 5. OS ・Red Hat Enterprise Linux 7.2 or later(64-bit) ・CentOS 7.2 or later(64-bit) ・Ubuntu 14.04 LTS(64-bit) ・Ubuntu 16.01 LTS(64-bit) スペック(抜粋) ・CPU: 2CPU / 20 forks* 推奨 (デフォルト設定は 5) ・メモリ:2GB 以上 ( 4GB / 100 forks ) ・ディスク容量:/var/に 20 GB の内の 10 GB 以上の空き領域 など Ansible : version 2.2 以降 5 インストール要件 - Ansible Tower 3.2.2 http://docs.ansible.com/ansible-tower/latest/html/installandreference/requirements_refguide.html その他 Disk IOPS やブラウザの条件等、詳しくはこちらをご確認ください *Forks とは?: リモートホストとの通信の際生成する並列プロセス数(詳細は下記参照) http://docs.ansible.com/ansible/latest/intro_configuration.html#forks
  6. 6. Ansible Tower のインストールにはインターネット接続が必要です。 本資料でもインターネット接続前提でインストール方法を示します。 http://docs.ansible.com/ansible-tower/latest/html/installandreference/install_notes_reqs.html 今回の資料は、RHEL7.4 をサーバー(GUI使用)でインストールしたも のを前提としています。また、インストール方法よりも使い方にフォー カスした資料となっています、その点はご了承下さい。 資料は以下のバージョンで動作確認しています。 Ansible : 2.4.2 Ansible Tower : 3.2.2 6 インストール要件 - 環境の前提
  7. 7. リポジトリの登録 など # subscription-manager repos --disable=* # subscription-manager repos --enable=rhel-7-server-rpms # subscription-manager repos --enable=rhel-7-server-extras-rpms # subscription-manager repos --enable=rhel-7-server-optional-rpms # yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm バイナリの取得とインストール # wget https://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz # tar xvzf ansible-tower-setup-latest.tar.gz # cd ansible-tower-setup # vim inventory admin_password=‘redhat’ pg_password =‘redhat’ rabbitmq_password =‘redhat’ # ./setup.sh7 インストール① 事前準備とAnsibleのインストール インストーラー設定ファイルに パスワードを記述 Ansible Tower インストール! Ansible Tower をインストールする端末への操作です
  8. 8. 8 インストールが完了することを確認!
  9. 9. 1. 操作端末よりブラウザで以下にアクセスし、 ライセンスの要求をクリックします。 https://<Ansible Tower IP Address>/ ※ID / Password は、 admin / redhat 2. FREE TOWER TRIAL - ENTERPRISE FEATURESを選択。 必要事項を記入し、"Submit" します。 9 インストール② Ansible Towerライセンス適応
  10. 10. 3. 登録したメールアドレス宛、以下のようなメールが来ます。 ライセンス発行には少し時間がかかります。(1営業日程度) 10 インストール② Ansible Towerライセンス適応
  11. 11. 4. 再度 Ansible Tower にブラウザでアクセスし、参照をクリック。 入手したライセンスファイルを選択、使用許諾にチェックして、送信をクリックします。 https://<Ansigle Tower IP Address>/ 11 インストール② Ansible Towerライセンス適応 以上でインストールは 完了です!!
  12. 12. Towerの概要から、Ansible 及び、Towerのバージョンを確認しておきましょう。 旧環境からUpdateした場合など、Tower 3.2.2 (or later) 、Ansible 2.4.2 (or later)になっ ていない場合はUpdateをお願いします! 12 インストール Ansible バージョン確認
  13. 13. 13 Ansible Tower - サンプルジョブの実行 サンプルジョブを実行する前に、SSH で Towerに接続し、Playbook が存在しないことを確認しておきます。 Tower 内のPlaybookの置き場は、/var/lib/awx/projects/ です。 後で確認しますが、Project 毎のディレクトリ構造となっています。 現状”空”です
  14. 14. 14 Ansible Tower - サンプルジョブの実行 Towerにログオンし、設定内容を確認しながらサンプルジョブを実 行してみましょう。プロジェクトをクリック。
  15. 15. 15 Ansible Tower - サンプルジョブの実行 Demo Project クリック。github のサンプルが指定されています 中身は、Hello World! を表示するだけのものです。 ansible-tower-samの中身
  16. 16. 16 Ansible Tower - サンプルジョブの実行 テンプレートをクリック。ジョブ実行のアイコン(ロケット)をク リックします
  17. 17. 17 Ansible Tower - サンプルジョブの実行 Jobが成功し、Hello World! が表示されました。
  18. 18. 18 Ansible Tower - サンプルジョブの実行 Gitを使った場合、実行したプレイブックのリビジョン情報が確認可能です。 ダウンロード元の Githubとリビジョン番号が同じであることを確認します。 https://github.com/ansible/ansible-tower-samples/commits/master/hello_world.yml
  19. 19. 19 Ansible Tower - サンプルジョブの実行 再度 SSH でTower に接続し、/var/lib/awx/projects/ を確認します。 Jobを実行したことにより、以下が実施されたことが分かります。 ・サンプルプロジェクト用のディレクトリの作成 ・hello_world.yml のダウンロード
  20. 20. Ansible Tower 使い方 ~Ansible Towerの理解、プレイブックの作成から実行まで~
  21. 21. Ansible Tower を理解する - 階層構造の把握!! 21 Ansible Tower を理解するためにはまず階層構造を把握しておくと良い。 Ansibleの階層構造。一番上の概念はOrganizationです。
  22. 22. Ansible 階層が持つ意味(概要) 22 ・組織(Organization) ・ジョブを実行するための、プロジェクト、インベントリ、認証情報、ジョブテンプレート などのAnsible Tower の構成要素をまとめて管理する単位。 ・Ansible Tower 管理者は複数の組織を管理するという構図 ・プロジェクト(Project) プレイブックを管理する単位。1つのプロジェクトには、1つのプレイブックオブジェクト (ローカルディレクトリ、Githubアドレスなど)が割り当てられる。 ・インベントリ(Inventory) 被管理ホストのホスト名や変数などの情報を保持する。 ※ 認証に関する情報(ユーザー名やパスワード)は別管理 次に大事なのは、各コンポーネントの大まかな意味と連携です。 重要なコンポーネントを下記します。
  23. 23. Ansible 階層が持つ意味(概要) 23 ・認証情報(Credential) 被管理ホストや、AWS、VMwareなどのクラウド環境への認証情報をまとめて管理するた めの仕組みを提供します。 ・ジョブテンプレート(Job Template) プロジェクト(プレイブック)、インベントリ、認証情報をまとめて、実行ジョブとして定 義したもの。これが出来れば、あとは実行するのみ。 ・ジョブ(Job) ジョブテンプレートを元に作成された実行情報、実行結果 の確認等行うことができる
  24. 24. プレイブック実行までの道のり 24 1. プレイブックの作成 プレイブックは Ansible Tower から直接作成できません。別途作成するか、Gitや Subversionなどからプレイブックを取得します。今回はプレイブックを作成します。 2. プロジェクト作成 プレイブックの取得場所 (Local / Github) を指定します。 3. インベントリの作成 管理するホストを登録します。 4. ホストの認証情報の作成 管理するホストの認証情報を設定します。 5. ジョブテンプレートの作成 2.プレイブックと、3.インベントリと、4ホスト認証情報を紐づけます。 6. ジョブの実行 テンプレートを実行します!!
  25. 25. プレイブック作成 – sl のインストール 25 1-1. プレイブックの作成(yamlファイル作成) 次に、直接 yaml ファイルを作成して実行させてみましょう。 今回は、sl を表示させるソフトをインストールしてみます。 # mkdir /var/lib/awx/projects/sl # vim /var/lib/awx/projects/sl/sl.yml # chown awx sl # chown awx sl/sl.yml awxユーザで実行されるため、オーナーを awxに変更しておく - name: SL Install hosts: all tasks: - name: epel Install yum: name: http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm state: present - name: SL Install yum: name: sl state: present ※sl のインストールには epel が必要となりますので事前に epel もインストールしています。
  26. 26. プレイブック作成 – Githubから取得 26 1-2. プレイブックの作成(Githubからのダウンロード) Githubからの取得(前セクションでサンプルジョブ実行!) プレイブックをGithubなどから取得することも可能です。 例えば、既存の“Demo Project”では、あらかじめ、SCM URLとして、 https://github.com/ansible/ansible-tower-samples が指定されています。 ジョブ実行の際は、githubからローカルにymlファイルがダウンロードされます。
  27. 27. プロジェクト作成 27 2. プロジェクトの作成 プロジェクトは、プレイブックを管理する仕組みを提供。早速作成します。 プロジェクトを選択し、追加をクリック
  28. 28. プロジェクト作成 28 2-1. プロジェクトの作成(ローカルファイル編) ホストローカルに作成したyamlファイルに対するプロジェクト作成例です。 ・プロジェクト名:SL-Project ・SCM Type:Manual ※ /var/lib/awx/project 配下のディレクトリが参照されます ・Playbook Directory:sl (先ほど作成したディレクトリを指定します)
  29. 29. プロジェクト作成 29 2-2. プロジェクトの作成(Github編) Githubを利用した際のプロジェクト作成例です。 ・プロジェクト名:SL-Project-Git ・SCM タイプ:Git ・SCM URL : https://github.com/coral-reaf/sl-inst 起動時の更新とは? Github 上のプレイブックが更新され た場合、ローカルプレイブックを更 新してから実行します。
  30. 30. プロジェクト作成 30 プロジェクトは権限設定が可能です。 権限については次章で説明します。
  31. 31. インベントリ作成 31 3. インベントリの作成 Tower によって管理されるホストを指定する仕組みです。 作成は、インベントリタブをクリックし、「+追加」- 「インベントリ」を選択。
  32. 32. インベントリ作成 32 名前 ”SL-Hosts” を付けて保存。組織は Default を選択。
  33. 33. インベントリ作成 33 「ホスト」 - 「+ホストの追加」で Ansible Tower のアドレスを入力 し、保存します。 ※もし、他にRHEL7などの管理対象のホストがあればそちらを指定してもOKです。
  34. 34. インベントリ作成 34 インベントリに関しては権限の委譲が可能です。 権限に関しては次章でご説明します。
  35. 35. ホスト認証情報の作成 35 4. ホストへの認証情報の作成 管理するホストやクラウドへの認証情報を一括管理する仕組みを提供します。 Ansible Towerでは不用意にホスト認証情報を渡すことなく、一括管理が可能です。 右上の設定アイコンをクリックし、認証情報をクリック
  36. 36. ホスト認証情報の作成 36 「+追加」で、ホストに対する認証情報を入力し保存します。 ・名前:SL-Cre ・タイプ:machine(ssh接続のサーバ) ・ユーザー名:root ・パスワード:redhat ※Typeではサーバの他 ・Network機器 ・クラウドプロバイダ (VMware vCenter, AWS, Azule など) に対する認証情報も登録可能です。
  37. 37. ホスト認証情報の作成 37 認証設定についても権限設定を行うことが可能です。 権限設定は組織を指定したときのみ指定が可能です。 権限設定については次章で説明します。
  38. 38. ジョブテンプレート作成 38 5. ジョブテンプレートの作成 以下3つの情報を紐づけて実行 Job を作成する機能を提供します。 ・プロジェクト(プレイブック) ・インベントリ(ホスト) ・ホストの認証情報 追加をクリックしジョブテンプレートを選択。
  39. 39. ジョブテンプレート作成 39 ジョブテンプレートは紐づけなので、2-4で作成してきたものを選択して紐づける感じ です。以下を入力(選択)し保存。 ・名前:SL-Job ・インベントリー:SL-Hosts ・プロジェクト:SL-Project ・Playbook:sl.yml ・認証情報(タイプ):Machine ・認証情報(名前):SL-Cre
  40. 40. ジョブテンプレート作成 40 ジョブテンプレートには、ユーザー、チームを指定して権限を付与することも可能です。 権限の機能については次章で説明します。
  41. 41. ジョブ実行 41 5. ジョブの実行 作成したジョブテンプレートの実行、スケジューリング、コピー、編集、のオペ レーションと、実行中のジョブのステータスがリアルタイムで確認できます。 今作成した、SL-Jobの実行(ロケット)をクリックします。 実行 スケジュール コピー 編集
  42. 42. ジョブ実行 42 実行中の画面 大小を繰り返し、動作中であることを表現 ステータス表示
  43. 43. ジョブ実行 43 成功しました 実行エラーになる場合は作成した sl.yml ファイルを見直してみてください。 また、https://github.com/coral-reaf/sl-inst からダウンロードも可能です。 正常終了時の表示例
  44. 44. ジョブ実行 – 確認 44 Tower に ssh 接続、sl を実行すると、確かにインストールされて いることが分かります。 # ssh root@<Ansible Tower IP Address> # sl
  45. 45. ジョブスケジューリング設定について 45 None(1回のみ実行)、分、時、 日、週、月、年 無制限、回数指定、 最終実行日時など 繰り返し頻度 ジョブは先述の通りアドホック実行も可能ですし、スケジューリング も可能です。スケジューリングは以下の通り、細かく指定可能です。
  46. 46. Ansible Tower 使い方 ~組織とユーザーの管理~
  47. 47. 強固で柔軟な権限管理 47 Ansibe Tower では以下のような対象に対し柔軟な権限設定が可能です。 ・Ansible Tower 管理者・監査・ユーザー ・組織 管理者・メンバー - プロジェクト (プレイブック) - ホスト認証情報 - ジョブ 管理対象ホストの認証情報 IT一括? 組織毎? プレイブック Ansible Tower への サーバ認証情報 ジョブ インベントリA インベントリB インベントリC
  48. 48. 組織管理者の権限(付与済み) 48 組織管理者には以下の権限が与えられています ・組織内に対するプロジェクトの作成と閲覧 Ansible Tower のローカルプレイブックの利用 ・インベントリ管理(管理対象ホストの登録と削除) ・ホスト認証情報の作成とジョブテンプレートへの適応 ・組織内のジョブテンプレートの作成とジョブの実行と実行結果の確認 ・組織内で行われたイベントの履歴の確認 (ホスト認証情報の作成、ジョブ作成、実行など) ・ユーザー作成・削除と組織内への権限の設定(管理者・メンバーなど) ※Tower管理者が作成したユーザーの削除は出来ない ・組織内の各コンポーネント(ジョブテンプレート等)への権限の委譲 権限の委譲は、組織を超えて定義可能です
  49. 49. 組織管理者の権限(制限) 49 以下の権限は付与されていません ・他の組織内のプロジェクト、ジョブテンプレートなどの閲覧、 実行、イベント履歴の閲覧など、他の組織にかかわるもの ※但し、Tower管理者や、他の組織で作成されたユーザーに、 自分の組織への権限(管理者・メンバーなど)追加は可能 ・Tower サーバへのsshでの直接アクセス ・Tower サーバに保存されている yaml ファイルの編集
  50. 50. 組織メンバーの権限(付与済み) 50 権限を付与されるまで出来ることが非常に限られます。以下が可能。 ・ホスト認証情報の作成・削除 管理者作成のものは閲覧できません、個人所有のもののみ可能 ・組織内のユーザー情報の一覧 ・自身に対して実行されたイベント一覧
  51. 51. 組織メンバーへの権限の与え方 51 組織管理者は以下の管理や実行権限を委譲することが可能 移譲対象ユーザーは同一組織内に限りません (他の組織で作成されたユーザーもOK) ・プロジェクト プロジェクト毎に、管理者 or 利用者 or 更新を付与 ・インベントリ インベントリ毎に、使用 or 管理者 or アドホック or 更新を付与 ・ホスト認証情報 認証情報毎に、管理者 or 利用者を付与 ・ジョブテンプレート テンプレート毎に、管理権限 or 実行権限を付与 上記権限が全てそろえば、ジョブテンプレート の作成と実行が可能になります!!
  52. 52. 組織とユーザーの動作確認 52 実際に組織とユーザーを新規に作成し、動作を確認してみましょう! 今回は、以下を実行してみます。 1. 組織を作成 2. ユーザーを作成し、組織内の管理者とメンバーとして割り当て 3. 組織管理者権限で、プロジェクト作成~ジョブの実行まで実施 4. ユーザーにジョブの実行権限を付与 5. ユーザーでジョブの実行!
  53. 53. 1.組織の作成 53 組織は一番上位の概念で、他のオブジェクトをまとめて管理するため の “入れ物” のイメージです。 前章では、インストール時に作成される “Default” 組織内にJob作成 を行いましたが、その他の組織を作成してみます。
  54. 54. 1.組織の作成 54 現在、Defaultだけなので、追加をクリックします。 名前:Mktg-Org を入力して保存。続いて、同様に Sales-Org を作成します。
  55. 55. 1.組織の作成 55 Mktg-Orgと、Sales-Org作成完了。 最終的なジョブを管理するための “入れ物” が出来上がりました。
  56. 56. 2.ユーザーの作成 56 Ansible Tower では様々なオブジェクトに対し権限設定が可能です。 組織に紐づけるための、以下の 4 ユーザーを作成します。 Sato Ichiro システム:ノーマルユーザー Sales-Org:管理者 Suzuki Jiro システム:ノーマルユーザー Sales-Org:メンバー Murata Ichiro システム:ノーマルユーザー Mktg-Org:管理者 Minami Jiro システム:ノーマルユーザー Mktg-Org:メンバー
  57. 57. 2.ユーザーの作成 57 ユーザーの作成はこちらから行います。
  58. 58. 2.ユーザーの作成 58 ユーザー作成画面です。ID、パスワードとメールアドレスなど記 入し、ユーザータイプは、標準ユーザーを選択します。 前々項の4名分作成します。 例)Murata Ichiro システム:ノーマルユーザー Mktg-Org:管理者
  59. 59. 2.ユーザーへの権限設定 59 作成したユーザーに対し、組織への権限(管理者 or 利用者)を付与し ます。組織管理画面を表示し、Adminis をクリック。Murataにチェッ クを入れてSAVEします。同様に、他の3ユーザーも作成します。 ※ユーザー作成時点で、指定された組織のUserには登録されています。 このため、単なる組織ユーザーは特に設定する必要はありません。
  60. 60. 2.ユーザーへの権限設定 60 最終的にこうなればOKです。
  61. 61. 3.組織管理者でログオン 61 Mktg-Org 管理者の、imurataでログオンします。まだ何もないので、 Projectから作成します。Projects タブをクリック。
  62. 62. 3.プロジェクト作成 62 名前:Mktg-Pro 組織:Mktg-Org(変更不可) SCM:Git URL:https://github.com/ansible/ansible-tower-samples
  63. 63. 3.インベントリ作成 63 前章同様、インベントリを作成し、ホストを追加します。
  64. 64. 3.インベントリ作成 64 前章同様、インベントリを作成し、ホストを追加します。 Host Name : Ansible Tower のアドレスを入力し保存をクリック。 ※Tower 以外にRHEL7等、利用可能なホストがある場合はそちらを指定頂いても構いません。
  65. 65. 3.ホスト認証情報作成 65 前章同様、ホスト認証情報を作成します。
  66. 66. 3.ホスト認証情報作成 66 追加をクリックの上、以下の情報を入力し保存。 ・名前:Mktg-Cre ・タイプ:マシン ・ユーザー名:root ・パスワード:redhat
  67. 67. 3.ジョブテンプレート作成 67 前章同様ジョブテンプレートを作成します。 名前:Mktg-job インベントリー:MktgInv プロジェクト:Mktg-Pro Playbook:hello_world.yml マシンの認証情報:Mktg-Cre
  68. 68. 3.ジョブの実行 68 テンプレートが出来たら一度実行してみましょう! Hello World! が表示されれば成功です!!
  69. 69. 4.権限の付与 – メンバー権限で出来ることの確認 69 では、組織管理者からログオフして、Mktg-orgのユーザー権限でログオ ンしてみます。jminami です。
  70. 70. 4.権限の付与 – メンバー権限で出来ることの確認 70 先ほど作成したプロジェクトや、インベントリ、ジョブテンプレート など全く表示されないことを確認します。
  71. 71. 4.権限の付与 – メンバー権限で出来ることの確認 71 先ほど作成したプロジェクトや、インベントリ、ジョブテンプレート など全く表示されないこと、また追加もできないことを確認します。
  72. 72. 4.権限の付与 72 ユーザーへの権限移譲の一例として、ジョブテンプレートの実行権限を 与えてみます。jminami からログオフし、imurataでログオンします。 ジョブテンプレートで、作成したジョブテンプレートの編集をクリック。
  73. 73. 4.権限の付与 73 パーミッションをクリックし、追加、Jiro Minamiにチェックを入れて、 実行権限を与えて、SAVEします。
  74. 74. 5.メンバーでジョブの実行! 74 ジョブテンプレートの権限移譲設定が完了しましたので、 imurata から ログオフし、jminami でログオンします。権限移譲されたジョブテンプ レートが今回は表示されていることを確認します。確認のため、ジョブ を実行し、問題なく終了することを確認します。
  75. 75. 他の組織ユーザーでログオン 75 Mktg-Orgでジョブテンプレートを作成しました。この組織向けに作成 したプロジェクトやジョブテンプレートなどが、この組織に所属しない ユーザーからどのように見えるか、Sales-Org管理者のisatoでログオン して確認してみてください。先ほど作成したプロジェクト、Mktg-Proは 閲覧できないと思います。
  76. 76. モジュールの使い方・ワークフロー ~ 例) VMware モジュールの使い方 ~
  77. 77. Ansible モジュール - 概要 77 Ansibleには様々な機器、ソフトウェア、クラウドと連携するための仕 組みがモジュールという形で提供されています。モジュールは、 Ansible と管理対象ノードとのやり取りを仲介する役割を果たします。 モジュールの一覧はこちらにあります。 http://docs.ansible.com/ansible/latest/modules_by_category.html 今回はこの中で、VMware モジュールを使って vSphere 環境の自動化 を行ってみます。
  78. 78. Ansible VMware モジュール 78 VMware モジュールは、こちらにあります。(2017年12月28日現在:32個) http://docs.ansible.com/ansible/latest/list_of_cloud_modules.html#vmware 例えば以下で示す、vmware_datacenter というモジュールを見てみます。 http://docs.ansible.com/ansible/latest/vmware_datacenter_module.html このモジュールを使うとvCenter Server が持つ、データセンターオブジェクト の操作が可能となるのですが、次項の様な情報があります。
  79. 79. Ansible VMware モジュール(例) 79 ・動作要件 python 2.6以降及び、PyVmomiが必要 ・Optionの記述 (必須か否か、デフォルト値、取りうる値) ・プレイブックの書き方の例 vmware_datacenter
  80. 80. Ansible モジュール 80 利用モジュールによって異なりますが、VMwareモジュールの利用には、 PyVmomi とpysphere が必要です。2つともインストールしておきます。インス トール先は Ansible Tower Server です。 # easy_install pysphere # easy_install PyVmomi
  81. 81. Ansible モジュール - winrm 用 81 VMwareモジュールとは関係ありませんが、後ほど PowerCLIのリモート実行に winrmを利用します。以下実行し、pip とwinrmをインストールしておきます。 # curl -O https://bootstrap.pypa.io/get-pip.py # python get-pip.py # pyp install pywinrm
  82. 82. Ansible VMware モジュール - 実施内容 82 では実際にVMware モジュールを使って以下のような自動化を行ってみましょう! 1.データーセンター及びクラスターの作成・削除 2.ESXi ホストの vCenter Serverへの追加・削除 3.ESXi ホストの設定 3-1.標準仮想スイッチの作成と NIC のアサイン 3-2.vmkernel ポートの作成と vMotion の有効化 3-3.ESXi ホストへの NFS データストアのマウント(PowerCLI利用) 4.テンプレートからのRHEL仮想マシンのデプロイ 5.httpd インストール、FW設定(80ポート解放)、httpdサービス起動・有効化
  83. 83. Ansible モジュール - DC/CLの作成 83 Ansible Tower を使ったデータセンターとクラスターの作成・削除を行ってみます。 モジュールは以下です。このモジュールの使い方を確認しながら進めてください。 http://docs.ansible.com/ansible/latest/vmware_datacenter_module.html Ansible Tower サーバーに root ユーザーでssh接続しプレイブックを作成します。 # mkdir /var/lib/awx/projects/ # mkdir dc-cl-cre # cd dc-cl-cre # vim t-createDC.yml 記述例)t-createDC.yml - hosts: all gather_facts: no tasks: - name: Create Datacenter local_action: module: vmware_datacenter hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" validate_certs: False datacenter_name: "{{dc_name}}" state: "{{dc_state}}" vCenter Server のホスト名、ユーザー名、パス ワードの情報及び、データセンター名とその”作成” or "削除" を指定する変数です。後ほど Ansible Towerのジョブテンプレートの中で定義します Tips:プレイブックはスペースなど記述フォーマットに敏感です。実行時 に記述にまつわるエラーが出た場合、記述のお作法を見直してみましょう。 vmware_datacenter モジュールの利用を宣言 https://github.com/coral-reaf/vmware よりダウンロードも可能
  84. 84. Ansible モジュール - DC/CLの作成 84 プレイブックの中身をもう少し詳しく見ていきます。 module: vmware_datacenter ---> 利用モジュールを宣言 hostname: "{{hostname}}" ---> モジュールで定義されているオプション "hostname"へ値を入力。"{{ }}"は、変数入力であることを示す。 ※変数への値の入力は、Towerの場合以下の二つ から行うことが出来ます。 ・Ansible同様、/group_vars/ 内のファイル # vim /var/lib/awx/projects/dc-cd-cre/group_vars/all.yml hostname: vcenter.local など。 ・ジョブテンプレート内の、Survey (後述) - hosts: all gather_facts: no tasks: - name: Create Datacenter local_action: module: vmware_datacenter hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" validate_certs: False datacenter_name: "{{dc_name}}" state: "{{dc_state}}"
  85. 85. Ansible モジュール - DC/CLの作成 85 https://<Ansible Tower IP>/ でAnsible Tower にログインします。 ユーザー名:admin パスワード:redhat
  86. 86. Ansible モジュール - DC/CLの作成 86 プロジェクトの追加をクリック
  87. 87. 87 Ansible モジュール - DC/CLの作成 キャプチャー画面を参考に、以下の設定を行い、保存をクリック
  88. 88. 88 Ansible モジュール - DC/CLの作成 インベントリーで、追加をクリックし、インベントリーを選択
  89. 89. 89 Ansible モジュール - DC/CLの作成 名前:vCenter を入力し、保存をクリック。さらに、ホストをクリックします
  90. 90. 90 Ansible モジュール - DC/CLの作成 ホストの追加をクリック
  91. 91. 91 Ansible モジュール - DC/CLの作成 vCenter Server のホスト名(IP アドレスも可)を入力し、保存をクリック
  92. 92. 92 Ansible モジュール - DC/CLの作成 キャプチャーを参照の上、認証情報を作成します。
  93. 93. 93 Ansible モジュール - DC/CLの作成 名前:TowerSSH、Type:Machineを選択し、Towerへの SSH ユーザー名とパ スワードを入力の上、保存をクリック
  94. 94. 94 Ansible モジュール - DC/CLの作成 もう一つ、vCenter Serverの認証情報も作成しておきます。 こちらは後ほどインベントリ情報を取得するために利用します。 名前:vCenter-Cre、Type:VMware vCenterを選択し、vCenterServerへの接 続情報(IPアドレス、ユーザー名、パスワード)を入力します。
  95. 95. 95 Ansible モジュール - DC/CLの作成 以下を参照の上、名前、インベントリー、プロジェクト、Playbook、認証情報 を入力し、保存をクリックさらに、SURVEYの編集をクリックします
  96. 96. 96 Ansible モジュール - DC/CLの作成 SURVEYでは、プレイブックに存在する変数への値の入力を行う機能を提供し ます。作成したプレイブックを vim で開きつつハンズオンを進めるとより理解 が深まります。以下を参照に入力し、Updateをクリックします。 プロンプト:データセンターの名前を入力します 回答の変数名:dc_name 回答タイプ:Text DEFAULT ANSWER:DC2
  97. 97. 97 Ansible モジュール - DC/CLの作成 今回入力した変数は、プレイブックの datacenter_nameで定義されている変数 "dc_name" への入力を定義するものです。他の4つの変数の分も作成します。 t-createDC.yml - hosts: all gather_facts: no tasks: - name: Create Datacenter local_action: module: vmware_datacenter hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" validate_certs: False datacenter_name: "{{dc_name}}" state: "{{dc_state}}"
  98. 98. 98 Ansible モジュール - DC/CLの作成 変数 dc_state これは、データセンターを存在状態にするか否かの設定です。 回答が特定の値を取る場合、説明の所に 取り得る値を書いておくと便利です。 今回の場合は "present" or "absent" で present : 存在状態にする absent:存在しない状態にする です。
  99. 99. 99 Ansible モジュール - DC/CLの作成 変数 hostname これは、vCenter Server の名前 or IP を定義します DEFAULT ANSWERには、vCenter Serverのホスト名もしくはIPアドレスを 入力します。
  100. 100. 100 Ansible モジュール - DC/CLの作成 変数 username これは、vCenter Server へのログインユーザーです。 DEFAULT ANSWERには、vCenter Server ログインするユーザー名を記述 します。 例)administrator@vsphere.local
  101. 101. 101 Ansible モジュール - DC/CLの作成 変数 password これは、前項ユーザーのパスワードを入力し、保存をクリック します。テンプレート作成画面に戻るので、もう一度保存をクリックします。 回答タイプに Password を選択すると、 DEFAULT ANSWERに入力した文字が、 隠し文字となります。
  102. 102. 102 Ansible モジュール - DC/CLの作成 ブラウザで、vCenter Server の画面を見ながら、”データセンターの作成”を実 行してみましょう!
  103. 103. 103 Ansible モジュール - DC/CLの作成 デフォルト値が入力されていることを確認し、LAUNCHをクリック!! *vCenter Serverの名前と、ユーザー名の入力値は消してあります。ご了承ください。
  104. 104. 104 Ansible モジュール - DC/CLの作成 ジョブが成功し、データセンターDC2が作成されることを確認します。
  105. 105. Ansible モジュール - DC/CLの作成 105 既存のデータセンター配下にクラスターを作成するプレイブックを作成します。 変数の取りうる値(choices欄)などは、下記モジュールを参照 http://docs.ansible.com/ansible/latest/vmware_cluster_module.html # cd /var/lib/awx/projects/dc-cl-cre # vim t-createCL.yml - hosts: all gather_facts: no tasks: - name: Create Cluster local_action: module: vmware_cluster hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" validate_certs: False datacenter_name: "{{dc_name}}" cluster_name: "{{cluster_name}}" enable_ha: "{{ha}}" enable_drs: "{{drs}}" enable_vsan: "{{vsan}}" state: "{{cluster_state}}" https://github.com/coral-reaf/vmware よりダウンロードも可能
  106. 106. Ansible モジュール - DC/CLの作成 106 ジョブテンプレートは下記参照
  107. 107. Ansible モジュール - DC/CLの作成 107 SURVEYは下記参照 Datacenterの例を参考にして、Survey を完成させてください。 左の他に、vCenter Server 名、ユー ザー名、パスワードの指定があります。 実行して、データセンター配下にクラス ターが作成されることを確認します。
  108. 108. Ansible モジュール - ESXiホストの構成の自動化 108 次に以下に示す ESXi ホストへの各種設定を行ってみます。 ・ESXi ホストの vCenter Server への登録 ・標準仮想スイッチの作成と NIC のアサイン ・vmkernelポートの作成(vMotion 有効化) ・ESXi ホストへの NFS データストアのマウント ※以降のスライドでは、モジュールの具体的な説明(オプションの記述方法の確認)や、ジョブテ ンプレート作成方法、Surveyの具体的な記述方法など、一部記載を省略しています。具体的な記述 方法については、前項までの内容及び、各モジュール内に記載の説明をご確認の上進めてください。
  109. 109. ESXi ホストの設定 - vCenter Server への登録 109 利用モジュール: vmware_host http://docs.ansible.com/ansible/latest/vmware_host_module.html プレイブック:t-add-host.yml https://github.com/coral-reaf/vmwareより入手可能 - hosts: all gather_facts: no tasks: - name: Add Remove ESXi host to vCenterServer vmware_host: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" validate_certs: False datacenter_name: "{{dc_name}}" cluster_name: "{{cl_name}}" esxi_hostname: "{{esxi_host}}" esxi_username: "{{esxi_user}}" esxi_password: "{{esxi_pass}}" state: "{{esxi_state}}" delegate_to: localhost - name: Manage Maintenance Mode local_action: module: vmware_maintenancemode hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" validate_certs: False esxi_hostname: "{{esxi_host}}" state: absent when: esxi_state == "present" t-add-host.yml 設定するesxi ホスト に関する情報 ホスト登録先を指定 ホストの登録と 削除の選択 ホストがメンテナンスモードの場合 はメンテナンスモードの解除を行う 利用モジュール: vmware_maintenancemode Towerのジョブテンプレート ・インベントリー:vCenter ・認証情報:TowerSSH ※Surveyは必要情報を適宜入力ください ジョブテンプレート も作成ください!!
  110. 110. ESXi ホストの設定 - 標準仮想スイッチの作成 110 利用モジュール: vmware_vswitch http://docs.ansible.com/ansible/latest/vmware_vswitch_module.html プレイブック:t-createVSS.yml https://github.com/coral-reaf/vmwareより入手可能 - hosts: 127.0.0.1 tasks: - name: Standard Switch Config action: module: vmware_vswitch hostname: "{{esxi_host}}" username: "{{esxi_user}}" password: "{{esxi_password}}" validate_certs: False switch: "{{vss_name}}" nics: "{{vmnic_name}}" mtu: "{{mtu}}" state: "{{vss_state}}" delegate_to: localhost t-createVSS.yml 仮想スイッチ情報の入力 名前、物理NIC、 MTU、作成・削除 Towerのジョブテンプレート ・インベントリー:vCenter ・認証情報:TowerSSH ※Surveyは必要情報を適宜入力ください vss_name: vSwitch1 nics: vmnic1 MTU:1500 state:present ジョブテンプレート も作成ください!!
  111. 111. ESXi ホストの設定 - vmkernel ポートの作成 111 利用モジュール: vmware_vswitch http://docs.ansible.com/ansible/latest/vmware_vmkernel_module.html プレイブック:t-manageVMKernel.yml https://github.com/coral-reaf/vmwareより入手可能 - hosts: 127.0.0.1 tasks: - name: vmkernel Config local_action: module: vmware_vmkernel hostname: "{{esxi_host}}" username: "{{esx_user}}" password: "{{esx_password}}" validate_certs: False vswitch_name: "{{vss_name}}" portgroup_name: "{{pg_name}}" vlan_id: "{{vlan_id}}" ip_address: "{{ip_address}}" subnet_mask: "{{subnet}}" enable_vmotion: "{{vmotion}}" enable_ft: "{{ft}}" enable_mgmt: "{{mgmt}}" enable_vsan: "{{vsan}}" t-manageVMKernel.yml vmkernel 情報の入力 名前、IP アドレス、サブネット、 各種サービスの有効化の有無 (vMotion / FT など) Towerのジョブテンプレート ・インベントリー:vCenter ・認証情報:TowerSSH ※Surveyは必要情報を適宜入力ください enable_vmotion: yes ...etc ジョブテンプレート も作成ください!!
  112. 112. ESXi ホストの設定 - NFS データストアのマウント 112 残念ながら2018年1月中旬現在 ESXi データストアを自動化するモジュールは 提供されていません。そこで、NFS マウント自体はVMware PowerCLI で実 現し、そのPowerCLIをプレイブックから実行することでNFSマウント操作を 行います。モジュールがない場合はこの様な連携が可能です。動きは以下の通 りです。 PowerCLI 実行ホストAnsible Tower vCenter Server winrm PowerCLI・PowerCLI実行ホストへの認証情報 ・SSHではなく winrm接続すること をインベントリに記載 vCenterServer への認証情報 *.ps1 *.batPlaybook Inventory winrmによりリモート実行 ※VMware PowerCLIに関する説明やインストール方法に関する説明はここでは行いません、ご了承ください
  113. 113. NFS データストアのマウント - プレイブック作成 113 利用モジュール: win_psexec http://docs.ansible.com/ansible/latest/win_psexec_module.html プレイブック:t-mount-nfs.yml https://github.com/coral-reaf/vmwareより入手可能 - hosts: all gather_facts: no tasks: - name: Execute Command on Windwos Host win_psexec: command: "{{command}}" t-mount-nfs.yml Windows 環境でリモートコマンドを 実行する win_psexecを利用します。 コマンドは変数 (Survey) 入力します。 手順は以下の通りです。 ・モジュール利用のプレイブックの作成 ・PowerCLIホストに接続するためのインベントリーの作成(winrm記述含む) ・PowerCLIスクリプトの作成 ・winrm接続するための認証情報の作成
  114. 114. NFS データストアのマウント - インベントリー作成 114 リモートでWindowsサーバーを操作するためのインベントリーをTower上に作 成します。ssh ではなく、winrm 接続となりますのでその旨記載します。 「ホストの作成」で PowerCLIを実行するホ スト名を入力します。 今回は vCenter Server (Windows版)と PowerCLI 実行ホ ストが同一であることを想定して いますが、両者が同一ホストであ る必要はありません。 ansible_connection: winrm ansible_winrm_server_cert_validation: ignore ansible_port: 5986 変数に以下を入力します
  115. 115. NFS データストアのマウント - PowerCLIスクリプト作成 115 PowerCLIを実行するホストに以下の二つのファイルを作成し、PowerCLIホスト上 の特定のホルダに置きます。(パスとファイルは後ほどSurveyで指定します) 1.mount_nfs.ps1 # VMware Automation Core Module の追加 import-module VMware.VimAutomation.Core # vCenter Server にログイン Connect-VIServer <vCenterIP> -user <User> -password <Password> # NFSマウント New-Datastore -nfs -vmhost <ESXi_IP> -name NFS -path <NFS_Path> -nfshost <nfs_serverIP> 2.mount_nfs.bat @echo off C:¥Windows¥System32¥WindowsPowerShell¥v1.0¥powershell.exe <file_path>¥mount_nfs.ps1 < >の部分はご自身の環境に合うものを入力ください mount_nfs.batを実行して nfsデータストアが マウントされることを確認しておきます。 ※二つのファイルは以下からダウンロードも可能です。 https://github.com/coral-reaf/vmware
  116. 116. 116 PowerCLI 実行ホストへ接続するための認証情報を作成します。 Credential Type : Machine PowerShellを実行するホストの認証情報、ユーザー名、パスワードを入力 NFS データストアのマウント - 認証情報作成
  117. 117. 117 以下を参照の上、名前、インベントリー、プロジェクト、Playbook、認証情報 (前項で作成したもの)を入力し、保存をクリックさらに、SURVEYの編集を クリックします NFS データストアのマウント - ジョブテンプレート作成
  118. 118. 118 Surveyに、以下を記述します。Default Answer には、PowerCLIホスト内 のmount_nfs.batのパス(c:¥ansible¥mount_nfs.bat など)を入力します。 NFS データストアのマウント - ジョブテンプレート作成 完成したら、ジョブを実行し、 ESXiホストにNFSがマウントされ ることを確認しておきましょう♪
  119. 119. 119 ESXiの一連の設定をワークフローで実行してみます。 ※それぞれのジョブテンプレートが必要となりますので、未作成の場合は事前に作成 しておいてください。 1.ESXi ホストのvCenter Serverへの登録 2.vSwitch の作成 3.vmkernel ポートの作成(vmotion 有効化) 4.NFSデータストアのマウント ESXi ホストの設定 - ワークフローで実行
  120. 120. 120 テンプレートから「追加」「ワークフローテンプレート」を選択 ESXi ホストの設定 - ワークフローで実行
  121. 121. 121 「保存」をクリックし、「ワークフローエディター」をクリック ESXi ホストの設定 - ワークフローで実行
  122. 122. 122 「Start」をクリックし、右ペインで「ESXiホストの追加テンプレート」 を選択します ESXi ホストの設定 - ワークフローで実行
  123. 123. 123 「ESXiホスト追加のテンプレート」上にある緑色の「+」をクリック 「成功した場合」を選択し、「仮想スイッチ作成のテンプレート」を選択 ESXi ホストの設定 - ワークフローで実行
  124. 124. 124 同様に、「vmkernelテンプレート」と「NFSマウントテンプレート」を 追加します。最終的に、以下の様なワークフローを作成し保存します。 ESXi ホストの設定 - ワークフローで実行
  125. 125. 125 ESXi ホストの設定 - ワークフローで実行 数が多いですが、Surveyも各テンプレートを参照しながら追加の上、ワーク フローを保存します。
  126. 126. 126 ESXi ホストの設定 - ワークフローで実行 実行してうまく動作することを確認します。
  127. 127. Ansible モジュール - 仮想マシンの作成と設定 127 次に以下に示す仮想マシンの作成に関する自動化を行ってみます。 ・テンプレートからのRHEL仮想マシンのデプロイ 同時に、VMware Toolsを使ってIP、ホスト名などをカスタマイズします ・仮想マシンが起動するまで待ちます(VMwareToolsの応答を待つ) ・httpd インストール、FW設定(80/443の解放)、httpdサービス起動・有効化 ※このハンズオンではあらかじめ、VMware toolsインストール済みの、RHEL7.xの仮想マシンテ ンプレートを準備の上進めてください。名前はプレイブックで指定可能ですが、ここでは "RHEL74-Temp"を想定しています。仮想マシンの作成方法等は割愛しています、ご了承ください。 仮想マシンの起動確認にVMwareToolsの応答を利用していますが、厳密には ssh接続が可能になるタイミングとは異なるため、後述するtools応答のプレイ ブックではVMwareToolsの応答確認後、Delayを置いています。環境によって 最適値があると思います。このあたりも色々確認してみて下さい♬
  128. 128. Ansible モジュール - 仮想マシンの作成 128 利用モジュール: vmware_guest http://docs.ansible.com/ansible/latest/vmware_guest_module.html プレイブック:t-cloneVM-cust.yml https://github.com/coral-reaf/vmwareより入手可能 - hosts: 127.0.0.1 tasks: - name: Boot up instance vmware_guest: hostname: "{{hostname}}" username: "{{user_name}}" password: "{{password}}" datacenter: DC cluster: CL name: "{{vmname}}{{item}}" template: "{{template}}" networks: - name: VM Network ip: 192.168.1.{{item}} netmask: <subnet> gateway: <gateway ip> state: poweredon disk: - datastore: NFS size_gb: 15 type: thin validate_certs: no customization: dns_servers: <dns ip> with_sequence: count={{number}} t-cloneVM-cust.yml Towerのジョブテンプレート ・インベントリー:vCenter ・認証情報:TowerSSH
  129. 129. Ansible モジュール - プレイブックの説明 129 今回はテンプレートからのデプロイということで、デプロイする仮想マシンの数を、 最終行、with_sequence で指定しています。その他、変数の意味は以下の通りです。 name: {{vmname}}{{item}} ・・・仮想マシン名の指定です vmnameには、Surveyで値を入力ください itemには繰り返し回数1,2,…が自動的に入力されます。Surveyでの指定は不要です。 ip: 192.168.21.{{item}} この書き方で、仮想マシンのIPは、192.168.21.1、192.168.21.2・・・ となります。お好みのIPとなる様記述ください。こちらの変数{{item}}も上記 同様別途Surveyで定義する必要はありません。繰り返し回数の自動入力です。 dhcpを利用したい場合は、ip~<gateway ip>の所をtype: dhcpで置き換えて、 下の緑字のdns_serversの部分を#でコメントアウトすればOKです。 with_sequence: {{number}} デプロイする仮想マシンの数を繰り返しの数により設定しています。 Surveyより指定します。 - hosts: 127.0.0.1 tasks: - name: Boot up instance vmware_guest: hostname: "{{hostname}}" username: "{{user_name}}" password: "{{password}}" datacenter: DC cluster: CL name: "{{vmname}}{{item}}" template: "{{template}}" networks: - name: VM Network ip: 192.168.1.{{item}} netmask: <subnet> gateway: <gateway ip> state: poweredon disk: - datastore: NFS size_gb: 15 type: thin validate_certs: no customization: dns_servers: <dns ip> with_sequence: count={{number}} t-cloneVM-cust.yml ※<>の値や、仮想ディスクを作成するデータストア(ここではNFS、ネット ワーク名)などには、環境に応じた値をプレイブック内に記述ください ジョブテンプレートも作成ください!!
  130. 130. Ansible モジュール- VMware Tools の応答を待つ 130 利用モジュール: vmware_guest http://docs.ansible.com/ansible/latest/vmware_guest_tools_wait_module.html プレイブック:t-wait-tools-mod.yml https://github.com/coral-reaf/vmwareより入手可能 - hosts: 127.0.0.1 tasks: - name: Wait Tools VM vmware_guest_tools_wait: hostname: "{{hostname}}" username: "{{user_name}}" password: "{{password}}" validate_certs: False name: "{{vmname}}{{item}}" folder: /DC/ delegate_to: localhost register: facts with_sequence: count={{number}} - name: Wait for reachable over ssh wait_for_connection: delay: 120 t-wait-tools-mod.yml Towerのジョブテンプレート ・インベントリー:vCenter ・認証情報:TowerSSH ※Surveyは必要情報を適宜入力ください nameに関しては、前項の仮想マシン名に合わせてください {{item}}は繰り返し数が自動入力されます。(前頁参照) 最終行でdelayを入れているのは、vmwartoolsの返答を返すタイミン グと、ssh接続が可能になる(次頁でhttpdのインストールを行うため 必要)タイミングのずれを修正するためのものです。 ジョブテンプレートも作成ください!!
  131. 131. Ansible モジュール - httpdのインストールと設定 131 仮想マシンのデプロイ、Toolsの応答待ちは、VMwareモジュールで対応でき ましたが、ここからは、仮想マシンOSへのアクセスとなりますのでインベン トリ情報の取得がキーとなります。方法は以下の通りいくつかあります。 1. 固定IPでアクセス 2. ホスト名とIPアドレスをDNS登録して、ホスト名でアクセス 3. vCenter Server のインベントリ情報を取得してアクセス 今回は3の方法を利用してみます。
  132. 132. Ansible モジュール - httpdのインストールと設定 132 vCenter Server が持つ、仮想マシンインベントリ情報取得のため、Tower上 に、以下の様なインベントリーを作成します。 「インベントリー」 → 「追加」(インベントリーを選択) 名前:httpd インストールホスト を入力し、保存をクリックします。
  133. 133. Ansible モジュール - httpdのインストールと設定 133 さらに、「ソース」→ 「追加」をクリックし以下を入力します。 名前:vcenter、認証情報:vCenter-Cre、ソース:VMware vCenter オプション:上書き、変数の上書き、起動時の更新全てチェック✔
  134. 134. Ansible モジュール - httpdのインストールと設定 134 「同期プロセスの開始」ボタンをクリックし、Error無く同期が完了すること を確認します。保存すればインベントリ作成は完了です。
  135. 135. Ansible モジュール - httpdのインストールと設定 135 利用モジュール:yum, service, firewalld http://docs.ansible.com/ansible/latest/yum_module.html http://docs.ansible.com/ansible/latest/service_module.html http://docs.ansible.com/ansible/latest/firewalld_module.html プレイブック:httpd-inst.yml https://github.com/coral-reaf/vmwareより入手可能 次に、yumインストールモジュールを使って プレイブックの作成を行います。 - hosts: all tasks: - name: httpd install & Firewall (80/443) config yum: name: httpd state: latest - name: httpd running & Enabled service: name: httpd state: started enabled: yes - name: Firewall Setting 80 firewalld: service: http zone: public state: enabled permanent: true immediate: true - name: Firewall Setting 443 firewalld: service: https zone: public state: enabled permanent: true immediate: true httpd-inst.yml
  136. 136. Ansible モジュール - httpdのインストールと設定 136 以下を参照し、ジョブテンプレートを作成します。インベントリーは先ほど作 成した、httpd インストールホストを利用します。(プロジェクトは必要に応 じ、事前に作成の上実施ください)
  137. 137. Ansible モジュール - httpdのインストールと設定 137 「仮想マシンのデプロイ」→「VMware Toolsの応答を待つ」→「httpdのイ ンストール、FWの設定、デーモンの有効化」のワークフローを作成します。 Surveyも追加の上、ワークフローを保存し実行してみます。
  138. 138. 138 デプロイした仮想マシンに対してブラウザで接続でき れば成功です!お疲れさまでした!!
  139. 139. THANK YOU plus.google.com/+RedHat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHatNewslinkedin.com/company/red-hat

×