سیستم عاملفناوریمدیریت سرورمقالات وب
نصب OpenStack Grizzly در عرض 10 دقیقه

همانطور که می دانید OpenStack روشی را برای تبدیل سرورهای فیزیکی به ابرهای خصوصی فراهم کرده است.در این مقاله قصد داریم ساده ترین و سریع ترین روش برای نصب OpenStack Grizzly را با هم مرور کنیم.
پیش نیازهای نصب:
اسکرپیت جدید برای نصب را می توانید از اینجا دانلود کنید.قبل از اینکه نصب را آغاز کنید باید مطمئن شوید که حداقل یک گره فیزیکی دارید که اوبونتو سرور 12.04 را اجرا می کند. اگر در حال نصب بر روی بیش از یک گره هستید باید مطمئن شوید که همه گره ها بر روی بلوک آی پی یکسانی هستند و قادرند قبل از پیشرفت کار با یکدیگر ارتباط داشته باشند. همه گره ها باید از طریق NAT فراهم شده توسط DHCP یا روتر ،به اینترنت دسترسی داشته باشند. اگر هنوز Vagrant را بر روی رایانه خود نصب نکرده اید باید هر دو مورد Vagrant و ویرچوال باکس (VirtualBox) را نصب کنید:
روی هر کدام از بسته های دانلود شده دابل کلیک کنید تا فرایند نصب آغاز گردد.
اسکریپت را دانلود و نصب کنید:
بر روی دستگاه محلی خود ترمینال را آغاز کنید و مطمئن شوید که git را نصب کرده اید. اگر هنوز git را نصب نکرده اید می توانید از اینجا دانلود کنید. حالا به دایرکتوری openstack بروید:
mkdir openstack; cd openstack
اسکریپت را از مخزن کلون کنید:
git clone https://github.com/rackerlabs/vagrantstack.git
حالا به دایرکتوری اسکرپیت بروید و نگاهی به آن بیندازید:
cd vagrantstack; ls
فایل نصب را ایجاد کنید:
اسکریپت راه اندازی که در مخزن وجود دارد متغیرهایی را در اختیار شما قرار می دهد . این متغیرها شامل تعداد گره ها برای کلاستر، آی پی گره و شبکه ای است که برای این منظور مورد استفاده قرار می گیرد. اسکریپت راه اندازی را با استفاده از دستور زیر شروع کنید:
./openstack_setup.sh
بعد از اینکه اسکریپت راه اندازی به خوبی تکمیل شد، شما یک فایل setuprc خواهید داشت که شبیه موارد زیر است:
export NUMBER_NODES=3
export NODE_1_HOSTNAME=nero
export NODE_1_IP=10.0.1.73
export NODE_2_HOSTNAME=spartacus
export NODE_2_IP=10.0.1.93
export NODE_3_HOSTNAME=invictus
export NODE_3_IP=10.0.1.94
export ROOT_PASSWD=af5b015ab50472e2368cdef95dfda120
export PUBLIC_NETWORK=10.0.1.0
export PRIVATE_NETWORK=10.0.55.0
export BRIDGE_INTERFACE=eth0
قبل از اینکه فرآیند نصب را ادامه دهید، نام رابط های شبکه بر روی گره ها را دوباره بررسی کنید.
kord@nero:~$ ifconfig -a |grep Ethernet
br100 Link encap:Ethernet HWaddr d4:3d:7e:33:f7:31
eth0 Link encap:Ethernet HWaddr d4:3d:7e:33:f7:31
اگر نام رابط اولیه شما چیزی متفاوت از eth0 است باید مطمئن شوید که فایل setuprc را ویرایش می کنید و مقدار BRIDGE_INTERFACE را به نام مناسب تغییر می دهید. اگر اینکار را انجام ندهید بعدا با مشکلات زیادی مواجه خواهید شد.
نکته: اگر از ویندوز باکس(Windows box) استفاده می کنید و نمی توانید اسکریپت ها را اجرا کنید ، می توانید فایل setuprc.example را به setuprc منتقل کنید و در صورت نیاز ویرایش کنید:
move setuprc.example setuprc
notepad setuprc
dos2unix setuprc
ارائه Chef Server:
همانطور که می دانید Chef Server، توسط Vagrant manager تولید و راه اندازی شد و باید 5 الی 10 دقیقه برای ساخت بر روی fast box و کانکشن زمان صرف شود. برای راه اندازی و شروع سرور می توانید از دستورات زیر استفاده کنید:
vagrant up
نکته: اگر رابط شبکه متعددی بر روی دسکتاپ یا لپ تاپ خود دارید، باید از میان این موارد یکی را به عنوان بریج انتخاب کنید. بعد از راه اندازی سرور، دستور زیر را تایپ کنید:
vagrant ssh
بعد از اینکه وارد سرور شدید، روت شوید و دایرکتوری vagrantstack را به شکل زیر تغییر دهید:
sudo su
cd /root/vagrantstack
حالا اسکریپت نصب را برای چاپ تنظیمات و پیکربندی گره اجرا کنید:
./openstack_install.sh
پیکربندی گره ها:
حالا باید به صورت دستی گره های خود را پیکربندی کنید. اسکریپت نصبی که اجرا می کنید دستوراتی را نشان می دهد که می توانید از آن به عنوان راهنما استفاده کنید.
- برای هر گره یک پسورد روت موقتی تنظیم کنید:
root@chef-server# ssh user@hostname
user@hostname$ sudo passwd root
[sudo] password for user:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
user@hostname$ exit
…
شما باید به جای User و Hostname ، موارد مناسب با گره خود را جایگزین کنید و این مراحل را برای هر گره تکرار کنید. برای هر گره، پسورد سوال می شود.
نکته: اسکریپت، مراقب غیر فعالسازی پسورد روت موقت بعد از نصب key خواهد بود.
- حالا کلید روت(root key) را برای هر گره از Chef server به دست آورید:
ssh-copy-id root@hostname
…
باز هم باید Hostname خود را با نام واقعی گره ها جایگزین کنید و این فرایند را برای هر کدام از گره های موجود در کلاستر خود تکرار نمایید.
توسعه گره ها:
اسکریپت توسعه ، Chef client را بر روی همه گره هایی که در فایل setuprc مشخص شده است نصب می کند. بعد از انجام اینکار، به طور دستی دستورات مرتبط با chef-client را اجرا کنید. نصب کلاینت ها را با تایپ دستورات زیر در Chef server آغاز کنید:
./openstack_deploy.sh
بعد از اینکه اسکریپت توسعه تکمیل شد، وارد هر گره شوید و به طور دستی دستورات زیر را اجرا کنید:
root@chef-server# ssh root@hostname
root@hostname# chef-client
…
همانطور که در مراحل قبلی انجام دادید، Hostnameرا با نام واقعی هر گره جایگزین کنید. اینکار را برای همه گره های موجود در کلاستر خود جایگزین نمایید. اگر می خواهید فرایند نصب را تسریع کنید، می توانید این دستورات را به طور همزمان بر روی همه گره ها اجرا کنید. اولین گرهی که در کلاستر شما وجود دارد به عنوان کنترلر همه کاره پیکربندی خواهد شد. این گره میزبان پایگاه داده OpenStack است . گره همه کاره به عنوان گره nova-compute عمل می کند. اگر در کلاستر خود بیش از یک گره داشته باشید، بقیه گره ها به عنوان گره nova-compute توسعه خواهند یافت.
شروعinstance:
بعد از اینکه گره همه کاره تنظیم شد، باید بتوانید برای OpenStack خود وارد رابط کاربری وب شوید. آی پی آدرس گره همه کاره را وارد کنید. این آی پی آدرس باید متغیر NODE1IP در محیط Chef server باشد:
http://10.0.1.73
کاربر پیش فرض برای رابط کاربری admin و پسورد پیش فرض نیز secrete است.
ایجاد آی پی ادرس شناور:
اگر بخواهید instance های شما ای پی آدرس خارجی داشته باشند می توانید آی پی های شناوری را از طریق دستورات زیر ایجاد کنید:
root@nero# nova-manage floating create –pool=mylocalips –ip_range=10.0.1.225/27
عیب یابی:
اگر به هنگام نصب به مشکلاتی برخورد کردید، مطمئن شوید که از کمک یک فرد متخصص بهره مند می شوید. در ادامه نیز پیشنهاداتی ارائه شده است که به هنگام بروز مشکل می توانید از آن استفاده کنید:
- مطمئن شوید که می توانید گره های خود را از Chef server و با نام پینگ کنید:
root@chef-server# ping nero
64 bytes from nero (10.0.1.100): icmp_req=1 ttl=64 time=0.463 ms
^C
— nero ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.463/0.463/0.463/0.000 ms
2.مطمئن شوید که می توانید Chef server خود را با استفاده از نام ا گره پینگ کنید:
root@chef-server# ssh nero
root@nero# ping chef-server
PING chef-server (10.0.1.57) 56(84) bytes of data.
64 bytes from chef-server (10.0.1.57): icmp_req=1 ttl=64 time=0.455 ms
^C
— chef-server ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.455/0.455/0.455/0.000 ms
- بررسی کنید که می توانید به صورت ریموت دستورات را بر روی هر گره و از طریق Chef server اجرا کنید:
root@chef-server# ssh nero uptime
09:59:04 up 12 days, 15:04, 0 users, load average: 0.10, 0.14, 0.14
- باید ببینید که سرور چه چیزی در مورد گره ها می داند.
root@chef-server# knife node list
invictus
nero
spartacus
- سینکی بر روی محیط مورد نظر و برای گره ها اجرا کنید:
root@chef-server# knife exec -E ‘nodes.transform(“chef_environment:_default”) { |n| n.chef_environment(“grizzly”) }’
6.بر روی هر گره chef-client را دوباره اجرا کنید:
root@chef-server# ssh nero
root@nero# chef-client
7.بررسی کنید که همه سرویس های OpenStack به درستی کار می کند:
root@nero:~# nova-manage service list
Binary Host Zone Status State Updated_At
nova-scheduler nero internal enabled 🙂 2013-08-23 17:10:45
nova-conductor nero internal enabled 🙂 2013-08-23 17:10:49
nova-cert nero internal enabled 🙂 2013-08-23 17:10:48
nova-consoleauth nero internal enabled 🙂 2013-08-23 17:10:48
nova-network nero internal enabled 🙂 2013-08-23 17:10:48
nova-compute nero nova enabled 🙂 2013-08-23 17:10:49
nova-network invictus internal enabled 🙂 2013-08-23 17:10:51
nova-compute invictus nova enabled 🙂 2013-08-23 17:10:47
nova-network spartacus internal enabled 🙂 2013-08-23 17:10:52
nova-compute spartacus nova enabled 🙂 2013-0