はじめに
くどうです。
Scale Setはこれまでの、ロードバランサー構成を一気にガッってやってくれる機能です。
では、構成したあとはどうやってWebサーバーとして動作させるのか?
その一つに構成管理ツールがあります。ChefだとかAnsibleだとか、いろいろとありますが、一応流行りなのでAnsibleを使ってhttpdをインストールしてみたいと思います。
本投稿では最初に、ScaleSetの機能を利用してサーバーを5台立てます。
そのうえでAnsibleを利用してhttpdをインストールしていきます。
最終的に、HTTPポートで(まだ)公開できていません。
Scale Set
5台のサーバーを立てます。
ポータルから Scale Setを検索します。
すると、WindowsとLinuxの2種類が見つかります。
今回はLinuxを選択します。
設定項目は、単体の仮想マシンを立てるときと同じ項目です。
Instance count では立てたいサーバーの数を入力し、Sizeを決定します。
これでしばらくすると完了します。
Scale Setで構成されるリソースは Scale Set、ロードバランサー、パブリックIP、仮想ネットワーク、ストレージアカウント(台数分)です。
ここで、SSHでアクセスするためにロードバランサーの受信NAT規則を確認します。
通常は50000~ からポート番号が割り当てられアクセスすることになります。
次にAnsibleでhttpdをインストールしていきます。
Ansibleでhttpdをインストール
Ansibleのインストールは割愛します。ググったらいっぱい出てきますので・・・
最初に、対象となるホストをhostsに記載します。
[azureuser@ansible ansibledir]$ cat hosts [scaleset1] 13.71.157.126 ansible_ssh_user=azureuser [scaleset2] 13.71.157.126 ansible_ssh_user=azureuser [scaleset3] 13.71.157.126 ansible_ssh_user=azureuser [scaleset4] 13.71.157.126 ansible_ssh_user=azureuser [scaleset5] 13.71.157.126 ansible_ssh_user=azureuser
次に、httpdをインストールするPlaybookです。
[azureuser@ansible ansibledir]$ cat install-httpd.yml - name: install yum httpd yum: name={{ item }} state=latest with_items: - httpd - name: start httpd service: name=httpd enabled=yes state=started
最後に、実行するためにPlaybookです。
それぞれ、ポートを指定します。hostsのファイルでうまく動作できなかったのでこっちに書いてます。
[azureuser@ansible ansibledir]$ cat httpd.yml - name: scaleset1 hosts: scaleset1 port: 50000 sudo: yes tasks: - include: install-httpd.yml - name: scaleset2 hosts: scaleset2 port: 50001 sudo: yes tasks: - include: install-httpd.yml - name: scaleset3 hosts: scaleset3 port: 50002 sudo: yes tasks: - include: install-httpd.yml - name: scaleset4 hosts: scaleset4 port: 50003 sudo: yes tasks: - include: install-httpd.yml - name: scaleset5 hosts: scaleset5 port: 50004 sudo: yes tasks: - include: install-httpd.yml
DryRunします。
hostsを指定し、SSHパスワードを聞かれるようにしています。
Scale SetでKeyを仕込む場合はKeyを設定します。
[azureuser@ansible ansibledir]$ ansible-playbook httpd.yml -i hosts --ask-pass --ask-sudo-pass SSH password: SUDO password[defaults to SSH password]: PLAY [scaleset1] ************************************************************** GATHERING FACTS *************************************************************** ok: [13.71.157.126] TASK: [install yum httpd] ***************************************************** ok: [13.71.157.126] => (item=httpd) TASK: [start httpd] *********************************************************** changed: [13.71.157.126] PLAY [scaleset2] ************************************************************** GATHERING FACTS *************************************************************** ok: [13.71.157.126] TASK: [install yum httpd] ***************************************************** ok: [13.71.157.126] => (item=httpd) TASK: [start httpd] *********************************************************** changed: [13.71.157.126] PLAY [scaleset3] ************************************************************** GATHERING FACTS *************************************************************** ok: [13.71.157.126] TASK: [install yum httpd] ***************************************************** ok: [13.71.157.126] => (item=httpd) TASK: [start httpd] *********************************************************** changed: [13.71.157.126] PLAY [scaleset4] ************************************************************** GATHERING FACTS *************************************************************** ok: [13.71.157.126] TASK: [install yum httpd] ***************************************************** ok: [13.71.157.126] => (item=httpd) TASK: [start httpd] *********************************************************** changed: [13.71.157.126] PLAY [scaleset5] ************************************************************** GATHERING FACTS *************************************************************** ok: [13.71.157.126] TASK: [install yum httpd] ***************************************************** ok: [13.71.157.126] => (item=httpd) TASK: [start httpd] *********************************************************** changed: [13.71.157.126] PLAY RECAP ******************************************************************** 13.71.157.126 : ok=15 changed=5 unreachable=0 failed=0
確認が取れたので実際に実行します。
・・・ここからHTTPでアクセス!って言いたいのですがLBにハマってます。
ただ、各サーバーにsshでログインしてHttpdが動作していることは確認しています。
まとめ
Scale Setは便利だが、いまいち資料がないのでハマっている最中です。
HTTPで公開する方法がわからない・・・・orz
ただ、Scale Setは多くのサーバーを一気に立てれるのは便利かな・・・
ではでは