これまでの操作は、単に仮想マシンを作成したり、ストレージを接続したりと、従来のオペレーションと大きな差はありません。 しかし、Heat や Ansible等のツールと組み合わせることで、これまではできなかった新しいシステム構築・管理を行う事が可能になります。
2つのテンプレートをダウンロード。このテンプレートは、N台のWEBサーバーを起動して、自動的にロードバランサー配下で動作するように設定しています。
wget https://raw.githubusercontent.com/irixjp/josug-34th-materials/master/cluster.yaml
--2017-06-09 13:52:41-- https://raw.githubusercontent.com/irixjp/josug-34th-materials/master/cluster.yaml Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.8.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.8.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3187 (3.1K) [text/plain] Saving to: ‘cluster.yaml.1’ 100%[======================================>] 3,187 --.-K/s in 0s 2017-06-09 13:52:42 (58.1 MB/s) - ‘cluster.yaml.1’ saved [3187/3187]
wget https://raw.githubusercontent.com/irixjp/josug-34th-materials/master/lb_server.yaml
--2017-06-09 13:52:43-- https://raw.githubusercontent.com/irixjp/josug-34th-materials/master/lb_server.yaml Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.8.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.8.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1904 (1.9K) [text/plain] Saving to: ‘lb_server.yaml.1’ 100%[======================================>] 1,904 --.-K/s in 0s 2017-06-09 13:52:44 (71.2 MB/s) - ‘lb_server.yaml.1’ saved [1904/1904]
2台のWEBサーバーを起動して、LB配下に収めます。
heat stack-create -f cluster.yaml -P 'cluster_size=2' lbv2
WARNING (shell) "heat stack-create" is deprecated, please use "openstack stack create" instead WARNING (shell) "heat stack-list" is deprecated, please use "openstack stack list" instead +--------------------------------------+------------+--------------------+----------------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+------------+--------------------+----------------------+--------------+ | 869d331d-cc74-4cba-87cf-16f6c7a82dad | lbv2 | CREATE_IN_PROGRESS | 2017-06-09T04:52:50Z | None | +--------------------------------------+------------+--------------------+----------------------+--------------+
heat resource-list -n 2 lbv2
WARNING (shell) "heat resource-list" is deprecated, please use "openstack stack resource list" instead +---------------+--------------------------------------+------------------------------------------------------------+--------------------+----------------------+-------------------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | stack_name | +---------------+--------------------------------------+------------------------------------------------------------+--------------------+----------------------+-------------------------------+ | floating_ip | 7814b6fd-1ce9-4e56-bb9c-b5a381ce8072 | OS::Neutron::FloatingIP | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | listener | 114ac517-de54-4dea-8b61-2fff2127c82f | OS::Neutron::LBaaS::Listener | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | loadbalancer | d6da234e-a3bf-43bd-a64a-016acbff4a3e | OS::Neutron::LBaaS::LoadBalancer | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | monitor | 94ac5c01-0850-4ea4-a42d-ddb199bdbac9 | OS::Neutron::LBaaS::HealthMonitor | CREATE_IN_PROGRESS | 2017-06-09T04:52:51Z | lbv2 | | pool | 61a813e2-6de9-478f-92f0-d960009b6fb5 | OS::Neutron::LBaaS::Pool | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | sec_group | 42892932-cac5-41bc-8a3e-b0259bb523db | OS::Neutron::SecurityGroup | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | web_cluster | 02746a9d-36dd-4194-aae8-2ac6a90fe544 | OS::Heat::ResourceGroup | CREATE_IN_PROGRESS | 2017-06-09T04:52:51Z | lbv2 | | 0 | | file:///home/openstack/josug-34th-materials/lb_server.yaml | CREATE_IN_PROGRESS | 2017-06-09T04:53:06Z | lbv2-web_cluster-tkp5b4dvjpmh | | 1 | | file:///home/openstack/josug-34th-materials/lb_server.yaml | CREATE_IN_PROGRESS | 2017-06-09T04:53:06Z | lbv2-web_cluster-tkp5b4dvjpmh | +---------------+--------------------------------------+------------------------------------------------------------+--------------------+----------------------+-------------------------------+
nova list
+--------------------------------------+-------------------------------------------------------+--------+------------+-------------+----------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-------------------------------------------------------+--------+------------+-------------+----------+ | da158627-bfce-4e87-9f71-f704b406d779 | lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 | BUILD | spawning | NOSTATE | | | 9351a738-e7f8-43e0-98e8-3592b9bc3a89 | lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 | BUILD | spawning | NOSTATE | | +--------------------------------------+-------------------------------------------------------+--------+------------+-------------+----------+
COMPETEになるのを待ちます。
heat stack-list
WARNING (shell) "heat stack-list" is deprecated, please use "openstack stack list" instead +--------------------------------------+------------+-----------------+----------------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+------------+-----------------+----------------------+--------------+ | 869d331d-cc74-4cba-87cf-16f6c7a82dad | lbv2 | CREATE_COMPLETE | 2017-06-09T04:52:50Z | None | +--------------------------------------+------------+-----------------+----------------------+--------------+
heat output-show lbv2 --all
WARNING (shell) "heat output-show" is deprecated, please use "openstack stack output show" instead "http://192.168.99.207:80"
URL=http://192.168.99.207:80
echo $URL
http://192.168.99.207:80
#watch -n 1 -d curl -s $URL
curl -s $URL
lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4
curl -s $URL
lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3
for i in {0..10}; do echo `curl -s $URL`; sleep 1; done
lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3
サーバー台数を5台に変更します。
heat stack-list
WARNING (shell) "heat stack-list" is deprecated, please use "openstack stack list" instead +--------------------------------------+------------+-----------------+----------------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+------------+-----------------+----------------------+--------------+ | 869d331d-cc74-4cba-87cf-16f6c7a82dad | lbv2 | CREATE_COMPLETE | 2017-06-09T04:52:50Z | None | +--------------------------------------+------------+-----------------+----------------------+--------------+
heat stack-update -f cluster.yaml -P 'cluster_size=5' lbv2
WARNING (shell) "heat stack-update" is deprecated, please use "openstack stack update" instead WARNING (shell) "heat stack-list" is deprecated, please use "openstack stack list" instead +--------------------------------------+------------+--------------------+----------------------+----------------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+------------+--------------------+----------------------+----------------------+ | 869d331d-cc74-4cba-87cf-16f6c7a82dad | lbv2 | UPDATE_IN_PROGRESS | 2017-06-09T04:52:50Z | 2017-06-09T04:58:25Z | +--------------------------------------+------------+--------------------+----------------------+----------------------+
nova list
+--------------------------------------+-------------------------------------------------------+--------+------------+-------------+----------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-------------------------------------------------------+--------+------------+-------------+----------------------+ | da158627-bfce-4e87-9f71-f704b406d779 | lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 | ACTIVE | - | Running | work-net=172.16.11.6 | | 9351a738-e7f8-43e0-98e8-3592b9bc3a89 | lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 | ACTIVE | - | Running | work-net=172.16.11.2 | | 1f724095-7271-4372-883f-3dc208cd2208 | lb-er-tkp5b4dvjpmh-2-yojpnxusewf4-server-vf76a3q67zzc | BUILD | spawning | NOSTATE | | | 399ff877-0e75-4d79-9a7d-b4982d7970e0 | lb-er-tkp5b4dvjpmh-3-if6qrgbagned-server-kysxv6ztj4pz | BUILD | spawning | NOSTATE | | | 6b261ad9-1d61-455e-9922-5d0ed3b9ed2f | lb-er-tkp5b4dvjpmh-4-zelct2mvwmdu-server-r2ltebdlwtwi | BUILD | spawning | NOSTATE | | +--------------------------------------+-------------------------------------------------------+--------+------------+-------------+----------------------+
heat resource-list -n 2 lbv2
WARNING (shell) "heat resource-list" is deprecated, please use "openstack stack resource list" instead +-------------------+--------------------------------------+------------------------------------------------------------+--------------------+----------------------+----------------------------------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | stack_name | +-------------------+--------------------------------------+------------------------------------------------------------+--------------------+----------------------+----------------------------------------------+ | floating_ip | 7814b6fd-1ce9-4e56-bb9c-b5a381ce8072 | OS::Neutron::FloatingIP | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | listener | 114ac517-de54-4dea-8b61-2fff2127c82f | OS::Neutron::LBaaS::Listener | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | loadbalancer | d6da234e-a3bf-43bd-a64a-016acbff4a3e | OS::Neutron::LBaaS::LoadBalancer | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | monitor | 94ac5c01-0850-4ea4-a42d-ddb199bdbac9 | OS::Neutron::LBaaS::HealthMonitor | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | pool | 61a813e2-6de9-478f-92f0-d960009b6fb5 | OS::Neutron::LBaaS::Pool | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | sec_group | 42892932-cac5-41bc-8a3e-b0259bb523db | OS::Neutron::SecurityGroup | CREATE_COMPLETE | 2017-06-09T04:52:51Z | lbv2 | | config_simple_web | 036b05e6-766d-4dd9-8952-b36a4477ae92 | OS::Heat::SoftwareConfig | CREATE_COMPLETE | 2017-06-09T04:53:11Z | lbv2-web_cluster-tkp5b4dvjpmh-1-a32yubr5zi4t | | config_simple_web | 7c6f5345-9638-433e-988c-c2f8cbc89940 | OS::Heat::SoftwareConfig | CREATE_COMPLETE | 2017-06-09T04:53:11Z | lbv2-web_cluster-tkp5b4dvjpmh-0-cbwjvkjueslv | | member | 6f5110d7-c18b-433c-b6ff-39639aee1c48 | OS::Neutron::LBaaS::PoolMember | CREATE_COMPLETE | 2017-06-09T04:53:11Z | lbv2-web_cluster-tkp5b4dvjpmh-0-cbwjvkjueslv | | member | 8c9a9d59-96ca-44d3-8d36-af69a599f54c | OS::Neutron::LBaaS::PoolMember | CREATE_COMPLETE | 2017-06-09T04:53:11Z | lbv2-web_cluster-tkp5b4dvjpmh-1-a32yubr5zi4t | | server | 9351a738-e7f8-43e0-98e8-3592b9bc3a89 | OS::Nova::Server | CREATE_COMPLETE | 2017-06-09T04:53:11Z | lbv2-web_cluster-tkp5b4dvjpmh-1-a32yubr5zi4t | | server | da158627-bfce-4e87-9f71-f704b406d779 | OS::Nova::Server | CREATE_COMPLETE | 2017-06-09T04:53:11Z | lbv2-web_cluster-tkp5b4dvjpmh-0-cbwjvkjueslv | | web_cluster | 02746a9d-36dd-4194-aae8-2ac6a90fe544 | OS::Heat::ResourceGroup | UPDATE_IN_PROGRESS | 2017-06-09T04:58:27Z | lbv2 | | 0 | 2149bbd2-9d85-4cfe-94ae-a476fe6e3d99 | file:///home/openstack/josug-34th-materials/lb_server.yaml | UPDATE_COMPLETE | 2017-06-09T04:58:29Z | lbv2-web_cluster-tkp5b4dvjpmh | | 1 | cc334989-b68d-4f4f-940a-43c5f2c42e2e | file:///home/openstack/josug-34th-materials/lb_server.yaml | UPDATE_COMPLETE | 2017-06-09T04:58:29Z | lbv2-web_cluster-tkp5b4dvjpmh | | 2 | 691c7410-ca75-4f0b-ad63-1dd8d55e1245 | file:///home/openstack/josug-34th-materials/lb_server.yaml | CREATE_IN_PROGRESS | 2017-06-09T04:58:29Z | lbv2-web_cluster-tkp5b4dvjpmh | | 3 | 20c8dcbe-4193-45ac-aabd-7c7e0df84811 | file:///home/openstack/josug-34th-materials/lb_server.yaml | CREATE_IN_PROGRESS | 2017-06-09T04:58:29Z | lbv2-web_cluster-tkp5b4dvjpmh | | 4 | c6ea0089-10dd-4bd3-905f-0de0840b136c | file:///home/openstack/josug-34th-materials/lb_server.yaml | CREATE_IN_PROGRESS | 2017-06-09T04:58:29Z | lbv2-web_cluster-tkp5b4dvjpmh | | config_simple_web | 35f9de4a-dcfc-48c7-9e4e-d1517da58728 | OS::Heat::SoftwareConfig | CREATE_COMPLETE | 2017-06-09T04:58:35Z | lbv2-web_cluster-tkp5b4dvjpmh-2-yojpnxusewf4 | | member | | OS::Neutron::LBaaS::PoolMember | INIT_COMPLETE | 2017-06-09T04:58:35Z | lbv2-web_cluster-tkp5b4dvjpmh-2-yojpnxusewf4 | | server | 1f724095-7271-4372-883f-3dc208cd2208 | OS::Nova::Server | CREATE_IN_PROGRESS | 2017-06-09T04:58:35Z | lbv2-web_cluster-tkp5b4dvjpmh-2-yojpnxusewf4 | | config_simple_web | e553de38-2cc1-45fa-9873-4123337d8e2b | OS::Heat::SoftwareConfig | CREATE_COMPLETE | 2017-06-09T04:58:36Z | lbv2-web_cluster-tkp5b4dvjpmh-4-zelct2mvwmdu | | member | | OS::Neutron::LBaaS::PoolMember | INIT_COMPLETE | 2017-06-09T04:58:36Z | lbv2-web_cluster-tkp5b4dvjpmh-4-zelct2mvwmdu | | server | 6b261ad9-1d61-455e-9922-5d0ed3b9ed2f | OS::Nova::Server | CREATE_IN_PROGRESS | 2017-06-09T04:58:36Z | lbv2-web_cluster-tkp5b4dvjpmh-4-zelct2mvwmdu | | config_simple_web | f7561eef-ed77-4834-9530-b5f22a1fa1f4 | OS::Heat::SoftwareConfig | CREATE_COMPLETE | 2017-06-09T04:58:38Z | lbv2-web_cluster-tkp5b4dvjpmh-3-if6qrgbagned | | member | | OS::Neutron::LBaaS::PoolMember | INIT_COMPLETE | 2017-06-09T04:58:38Z | lbv2-web_cluster-tkp5b4dvjpmh-3-if6qrgbagned | | server | 399ff877-0e75-4d79-9a7d-b4982d7970e0 | OS::Nova::Server | CREATE_IN_PROGRESS | 2017-06-09T04:58:38Z | lbv2-web_cluster-tkp5b4dvjpmh-3-if6qrgbagned | +-------------------+--------------------------------------+------------------------------------------------------------+--------------------+----------------------+----------------------------------------------+
COMPLETEになるのを待ちます
heat stack-list
WARNING (shell) "heat stack-list" is deprecated, please use "openstack stack list" instead +--------------------------------------+------------+-----------------+----------------------+----------------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+------------+-----------------+----------------------+----------------------+ | 869d331d-cc74-4cba-87cf-16f6c7a82dad | lbv2 | UPDATE_COMPLETE | 2017-06-09T04:52:50Z | 2017-06-09T04:58:25Z | +--------------------------------------+------------+-----------------+----------------------+----------------------+
#watch -n 1 -d curl -s $URL
curl -s $URL
lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4
for i in {0..10}; do echo `curl -s $URL`; sleep 1; done
lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 lb-er-tkp5b4dvjpmh-3-if6qrgbagned-server-kysxv6ztj4pz lb-er-tkp5b4dvjpmh-2-yojpnxusewf4-server-vf76a3q67zzc lb-er-tkp5b4dvjpmh-4-zelct2mvwmdu-server-r2ltebdlwtwi lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3 lb-er-tkp5b4dvjpmh-0-cbwjvkjueslv-server-7taw4pzl72m4 lb-er-tkp5b4dvjpmh-3-if6qrgbagned-server-kysxv6ztj4pz lb-er-tkp5b4dvjpmh-2-yojpnxusewf4-server-vf76a3q67zzc lb-er-tkp5b4dvjpmh-4-zelct2mvwmdu-server-r2ltebdlwtwi lb-er-tkp5b4dvjpmh-1-a32yubr5zi4t-server-omynekqbbqi3
heat stack-delete -y lbv2
WARNING (shell) "heat stack-delete" is deprecated, please use "openstack stack delete" instead Request to delete stack lbv2 has been accepted.
heat stack-list
WARNING (shell) "heat stack-list" is deprecated, please use "openstack stack list" instead +----+------------+--------------+---------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +----+------------+--------------+---------------+--------------+ +----+------------+--------------+---------------+--------------+
nova list
+----+------+--------+------------+-------------+----------+ | ID | Name | Status | Task State | Power State | Networks | +----+------+--------+------------+-------------+----------+ +----+------+--------+------------+-------------+----------+