{"id":1011,"date":"2021-10-11T21:47:05","date_gmt":"2021-10-12T04:47:05","guid":{"rendered":"https:\/\/www.xh86.me\/?p=1011"},"modified":"2021-10-11T21:47:05","modified_gmt":"2021-10-12T04:47:05","slug":"%e4%bd%bf%e7%94%a8kolla%e9%83%a8%e7%bd%b2openstack-stein%e7%89%88%e6%9c%ac","status":"publish","type":"post","link":"https:\/\/www.xh86.me\/?p=1011","title":{"rendered":"\u4f7f\u7528Kolla\u90e8\u7f72OpenStack Stein\u7248\u672c"},"content":{"rendered":"<p>\u5f00\u6e90\u7248\u672c\u7684OpenStack+Ceph\u7684\u7ec4\u5408\u5df2\u7ecf\u65e5\u8d8b\u7a33\u5b9a\uff0c\u6240\u4ee5\u642d\u5efa\u4e00\u6735\u79c1\u6709\u4e91\u73af\u5883\u7684\u96be\u5ea6\u5728\u9010\u6b65\u964d\u4f4e\u3002\u5f53\u7136OpenStack\u5b89\u88c5\u95ee\u9898\u5176\u5b9e\u4e00\u76f4\u6ca1\u6709\u5f97\u5230\u6709\u6548\u7684\u89e3\u51b3\uff0c\u5b66\u4e60\u66f2\u7ebf\u975e\u5e38\u9661\u5ced\u3002\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u57fa\u4e8eKolla\u9879\u76ee\u4f7f\u7528\u5bb9\u5668\u5316\u5feb\u901f\u90e8\u7f72OpenStack\u65b9\u6cd5\uff0c\u8be5\u90e8\u7f72\u65b9\u6cd5\u5df2\u7ecf\u5728\u5185\u90e8\u73af\u5883\u5f97\u5230\u4e86\u591a\u6b21\u9a8c\u8bc1\uff0c\u5b89\u88c5\u7b80\u4fbf\u5bb9\u6613\u7ef4\u62a4\u3002<\/p>\n<h1 id=\"1\u3001\u4e91\u5e73\u53f0\u89c4\u5212\">1\u3001\u4e91\u5e73\u53f0\u89c4\u5212<\/h1>\n<p>\u5728\u5b9e\u9645\u73af\u5883\u4e2d\uff0c\u6211\u4eec\u5728\u4e00\u53f02U\u7684\u8d85\u5fae\u56db\u5b50\u661f\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u4e86\u90e8\u7f72\u3002\u7531\u4e8e\u662f\u5185\u90e8\u4f7f\u7528\u7684\u7814\u53d1\u73af\u5883\uff0c\u4e3a\u4e86\u8282\u7ea6\u6210\u672c\uff0c\u6211\u4eec\u5e76\u6ca1\u6709\u90e8\u7f72\u9ad8\u53ef\u9760\u65b9\u6848\uff0c\u800c\u662f\u91c7\u7528\u4e86\u4e00\u53f0\u4f5c\u4e3a\u63a7\u5236\u8282\u70b9+\u8ba1\u7b97\u8282\u70b9+\u5b58\u50a8\u8282\u70b9\uff0c\u53e6\u5916\u4e09\u53f0\u4f5c\u4e3a\u8ba1\u7b97\u8282\u70b9+\u5b58\u50a8\u8282\u70b9\u7684\u65b9\u5f0f\u8fdb\u884c\u90e8\u7f72\u3002<\/p>\n<p>\u7531\u4e8eOpenStack\u6700\u65b0\u7684Ussari\u5728\u4f7f\u7528Kolla\u90e8\u7f72\u65f6\uff0c\u4e0d\u518d\u652f\u6301CentOS 7\u7248\u672c\uff0c\u6240\u4ee5\u8fd9\u91cc\u6211\u4eec\u9009\u5b9a\u4e86\u4e0a\u4e00\u4e2a\u7a33\u5b9a\u7248\u672cStein\u7248\u672c\u8fdb\u884c\u90e8\u7f72\u3002<\/p>\n<h2 id=\"\u786c\u4ef6\u914d\u7f6e\">\u786c\u4ef6\u914d\u7f6e<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u786c\u4ef6\u540d\u79f0<\/th>\n<th>\u914d\u7f6e\u89c4\u683c<\/th>\n<th>\u5907\u6ce8<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>CPU<\/td>\n<td>Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz x 2<\/td>\n<td>\u517140\u7ebf\u7a0b<\/td>\n<\/tr>\n<tr>\n<td>\u5185\u5b58<\/td>\n<td>DDR4 2400 MHz 64GB<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u786c\u76d8<\/td>\n<td>\u677f\u8f7d64 GB x 1<br \/>\n240 GB Intel SSD x 1<br \/>\n1.2 TB SAS x 5<\/td>\n<td>\u7ecf\u8fc7\u6d4b\u8bd5\uff0c\u7531\u4e8e\u677f\u8f7d64GB\u7a7a\u95f4\u8fc7\u5c0f\uff0c\u5728\u63a7\u5236\u8282\u70b9\u9700\u8981\u635f\u5931\u4e00\u5757SAS\u76d8\u7a7a\u95f4\u7528\u4e8eroot\u5206\u533a\u6302\u8f7d<\/td>\n<\/tr>\n<tr>\n<td>\u7f51\u5361<\/td>\n<td>\u5343\u5146 x 4<br \/>\n\u4e07\u5146 x 4<br \/>\nIPMI x 1<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"\u5206\u533a\u89c4\u5212\">\u5206\u533a\u89c4\u5212<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u78c1\u76d8<\/th>\n<th>\u89c4\u5212<\/th>\n<th>\u5907\u6ce8<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>64G<\/td>\n<td>\u7cfb\u7edf\u76d8<\/td>\n<td>\u4e0d\u8981\u4f7f\u7528LVM\u5206\u533a<\/td>\n<\/tr>\n<tr>\n<td>SSD 240G<\/td>\n<td>Ceph Journal<\/td>\n<td>1\u5757\u76d8<\/td>\n<\/tr>\n<tr>\n<td>SAS 1.2 T<\/td>\n<td>Ceph OSD<\/td>\n<td>5\u5757\u76d8<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"\u7f51\u7edc\u89c4\u5212\">\u7f51\u7edc\u89c4\u5212<\/h2>\n<h3 id=\"\u4ea4\u6362\u673a\u914d\u7f6e\">\u4ea4\u6362\u673a\u914d\u7f6e<\/h3>\n<ul>\n<li>\u6211\u4eec\u9ed8\u8ba4\u91c7\u7528\u4e86VLAN\u6a21\u5f0f\uff0c\u6240\u4ee5\u65e0\u987b\u5728\u4ea4\u6362\u673a\u4e0a\u8fdb\u884cTrunk\u914d\u7f6e<\/li>\n<\/ul>\n<h3 id=\"\u7f51\u7edc\u89c4\u5212-1\">\u7f51\u7edc\u89c4\u5212<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u7f51\u5361<\/th>\n<th>\u7f51\u7edc\u7c7b\u578b<\/th>\n<th>VLAN ID<\/th>\n<th>\u7f51\u6bb5<\/th>\n<th>\u8bf4\u660e<\/th>\n<th>\u7f51\u5173<\/th>\n<th>\u5907\u6ce8<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><\/td>\n<td>\u7ba1\u7406\u7f51\u7edc<\/td>\n<td>3<\/td>\n<td>192.168.10.0\/24<\/td>\n<td>OpenStack\u7ba1\u7406<\/td>\n<td>192.168.10.1<\/td>\n<td>192.168.10.201 &#8211; 204<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>\u5b58\u50a8\u7f51\u7edc<\/td>\n<td><\/td>\n<td>10.0.100.0\/24<\/td>\n<td>Ceph\u7f51\u7edc<\/td>\n<td>\u65e0\u9700\u7f51\u5173<\/td>\n<td>10.0.100.201 &#8211;\u00a0204<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>External\u7f51\u7edc<\/td>\n<td>3<\/td>\n<td>192.168.10.0\/24<\/td>\n<td>External\u7f51\u7edc<\/td>\n<td>192.168.10.1<\/td>\n<td>\u53ef\u5206\u914d\u5730\u5740192.168.10.100 &#8211; 192.168.10.200<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Tunnel\u7f51\u7edc<\/td>\n<td><\/td>\n<td>172.16.100.0\/24<\/td>\n<td>VxLAN\u901a\u8baf\u7f51\u7edc<\/td>\n<td><\/td>\n<td>172.16.100.201 &#8211; 204<\/td>\n<\/tr>\n<tr>\n<td>console<\/td>\n<td>IPMI<\/td>\n<td>4<\/td>\n<td>192.168.10.0\/24<\/td>\n<td><\/td>\n<td><\/td>\n<td>\u4e0e\u7ba1\u7406\u7f51\u5730\u5740\u4e00\u4e00\u5bf9\u5e94, 192.168.10.201<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"\u7f51\u5361\u914d\u7f6e\">\u7f51\u5361\u914d\u7f6e<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u4e3b\u673a\u540d<\/th>\n<th>em1(\u7ba1\u7406\u7f51\u5730\u5740)<\/th>\n<th>em2(\u5b58\u50a8\u7f51)<\/th>\n<th>em3(External\u7f51\u7edc)<\/th>\n<th>em4(Tunnel\u7f51\u7edc)<\/th>\n<th>\u5907\u6ce8<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>control201<\/td>\n<td>192.168.10.201<\/td>\n<td>10.0.100.201<\/td>\n<td>\n<pre>DEVICE=INTERFACE_NAME\r\nTYPE=Ethernet\r\nONBOOT=\"yes\"\r\nBOOTPROTO=\"none\"<\/pre>\n<\/td>\n<td>172.16.100.201<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>compute202<\/td>\n<td>192.168.10.202<\/td>\n<td>10.0.100.202<\/td>\n<td>\n<pre>DEVICE=INTERFACE_NAME\r\nTYPE=Ethernet\r\nONBOOT=\"yes\"\r\nBOOTPROTO=\"none\"<\/pre>\n<\/td>\n<td>172.16.100.202<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>compute203<\/td>\n<td>192.168.10.203<\/td>\n<td>10.0.100.203<\/td>\n<td>\n<pre>DEVICE=INTERFACE_NAME\r\nTYPE=Ethernet\r\nONBOOT=\"yes\"\r\nBOOTPROTO=\"none\"<\/pre>\n<\/td>\n<td>172.16.100.203<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>compute204<\/td>\n<td>192.168.10.204<\/td>\n<td>10.10.20.204<\/td>\n<td>\n<pre>DEVICE=INTERFACE_NAME\r\nTYPE=Ethernet\r\nONBOOT=\"yes\"\r\nBOOTPROTO=\"none\"<\/pre>\n<\/td>\n<td>172.16.100.203<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"OpenStack\u89c4\u5212\">OpenStack\u89c4\u5212<\/h2>\n<h3 id=\"\u5b89\u88c5\u7ec4\u4ef6\">\u5b89\u88c5\u7ec4\u4ef6<\/h3>\n<p>Ceph\u91c7\u7528\u5355\u72ec\u5b89\u88c5\u65b9\u5f0f\uff0c\u8fd9\u76ee\u524d\u4e5f\u662fKolla\u9879\u76ee\u4e3b\u63a8\u7684\u65b9\u5f0f\uff0c\u5728U\u7248\u672c\u4e2d\u5df2\u7ecf\u5f7b\u5e95\u4e0d\u652f\u6301\u901a\u8fc7Kolla\u5b89\u88c5Ceph\u4e86\u3002\u6211\u4eec\u4e3b\u8981\u5b89\u88c5OpenStack\u6838\u5fc3\u6a21\u5757\uff0c\u53e6\u5916\u5b89\u88c5\u7684\u662f\u65e5\u5fd7\u6536\u96c6ELK\u7684\u76f8\u5173\u6a21\u5757\uff0c\u4fbf\u4e8e\u8fd0\u7ef4\u3002<\/p>\n<ul>\n<li>Horizon<\/li>\n<li>Nova<\/li>\n<li>Keystone<\/li>\n<li>Cinder<\/li>\n<li>Glance<\/li>\n<li>Neutron<\/li>\n<li>Heat<\/li>\n<\/ul>\n<h1 id=\"2\u3001\u90e8\u7f72\u51c6\u5907\">2\u3001\u90e8\u7f72\u51c6\u5907<\/h1>\n<h2 id=\"\u90e8\u7f72\u67b6\u6784\u56fe\">\u90e8\u7f72\u67b6\u6784\u56fe<\/h2>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/sunqi.site\/images\/pasted-60.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/sunqi.site\/images\/pasted-60.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"upload successful\" \/><\/div><\/p>\n<h2 id=\"\u670d\u52a1\u5668\u524d\u671f\u51c6\u5907\">\u670d\u52a1\u5668\u524d\u671f\u51c6\u5907<\/h2>\n<ul>\n<li>BIOS\u914d\u7f6e\uff1a\u5728BIOS\u4e2d\u6253\u5f00VT\uff0c\u5e76\u4e14\u6b63\u786e\u914d\u7f6eIPMI\u5730\u5740\uff0c\u65b9\u4fbf\u8fdc\u7a0b\u7ba1\u7406<\/li>\n<li>RAID\u914d\u7f6e\uff1a\u6240\u6709\u78c1\u76d8\u9700\u8981\u914d\u7f6e\u6210NON-RAID\u6a21\u5f0f<\/li>\n<li>\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\uff1a\n<ul>\n<li>\u4f7f\u7528CentOS 7\u5149\u76d8\u8fdb\u884c\u6700\u5c0f\u5316\u5b89\u88c5<\/li>\n<li>\u4e0d\u8981\u4f7f\u7528LVM\u5206\u533a<\/li>\n<li>\u914d\u7f6e\u4e3b\u673a\u540d<\/li>\n<li>\u914d\u7f6e\u7b2c\u4e00\u5757\u7f51\u5361\uff0c\u5e76\u914d\u7f6e\u81ea\u52a8\u542f\u52a8<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"\u7f51\u5361\u914d\u7f6e-1\">\u7f51\u5361\u914d\u7f6e<\/h2>\n<h3 id=\"em1\">em1<\/h3>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11<\/pre>\n<\/td>\n<td>\n<pre>cat &lt;&lt; EOF &gt; \/etc\/sysconfig\/network-scripts\/ifcfg-em1\r\nTYPE=Ethernet\r\nBOOTPROTO=static\r\nNAME=em1\r\nDEVICE=em1\r\nONBOOT=yes\r\nIPADDR=192.168.10.201\r\nNETMASK=255.255.255.0\r\nGATEWAY=192.168.10.1\r\nDNS1=114.114.114.114\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"em2\">em2<\/h3>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10<\/pre>\n<\/td>\n<td>\n<pre>cat &lt;&lt; EOF &gt; \/etc\/sysconfig\/network-scripts\/ifcfg-em2\r\nTYPE=Ethernet\r\nBOOTPROTO=static\r\nDEFROUTE=yes\r\nNAME=em2\r\nDEVICE=em2\r\nONBOOT=yes\r\nIPADDR=10.0.100.201\r\nNETMASK=255.255.255.0\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"em3\">em3<\/h3>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9<\/pre>\n<\/td>\n<td>\n<pre>cat &lt;&lt; EOF &gt; \/etc\/sysconfig\/network-scripts\/ifcfg-em3\r\nTYPE=Ethernet\r\nBOOTPROTO=static\r\nNAME=em3\r\nDEVICE=em3\r\nONBOOT=yes\r\nIPADDR=172.16.100.201\r\nNETMASK=255.255.255.0\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"em4\">em4<\/h3>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7<\/pre>\n<\/td>\n<td>\n<pre>cat &lt;&lt; EOF &gt; \/etc\/sysconfig\/network-scripts\/ifcfg-em4\r\nTYPE=Ethernet\r\nBOOTPROTO=none\r\nNAME=em4\r\nDEVICE=em4\r\nONBOOT=yes\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h1 id=\"3\u3001\u5b89\u88c5\u6b65\u9aa4\">3\u3001\u5b89\u88c5\u6b65\u9aa4<\/h1>\n<h2 id=\"3-1-\u51c6\u5907\u90e8\u7f72\u8282\u70b9\">3.1 \u51c6\u5907\u90e8\u7f72\u8282\u70b9<\/h2>\n<p>\u8be5\u8282\u70b9\u627f\u62c5\u4e86\u540e\u7eed\u6240\u6709\u7684\u90e8\u7f72\u6d41\u7a0b\uff0c\u8be5\u8282\u70b9\u53ef\u4ee5\u4f5c\u4e3aOpenStack\u63a7\u5236\u8282\u70b9\u590d\u7528\uff0c\u5305\u62ec\u8fd0\u884cOpenStack Kolla\u548cCeph Deploy\u3002<\/p>\n<p>\u6ce8\u610f\uff1a\u8282\u70b9\u4e4b\u95f4\u53ef\u4ee5\u901a\u8fc7\u5bc6\u7801\u6216\u8005\u5bc6\u94a5\u65b9\u5f0f\u8fdb\u884c\u8bbf\u95ee\uff0c\u9644\u5f55\u4e2d\u63d0\u4f9b\u4e86\u81ea\u52a8\u4e0a\u4f20\u5bc6\u94a5\u7684\u65b9\u5f0f\uff0c\u5efa\u8bae\u5728\u6b63\u5f0f\u5b89\u88c5\u524d\u914d\u7f6e\u5b8c\u6210\uff0c\u8fd9\u91cc\u4e0d\u63d0\u4f9b\u81ea\u52a8\u5316\u914d\u7f6e\u65b9\u6cd5\u3002<\/p>\n<h3 id=\"\u4e0b\u8f7d\u521d\u59cb\u5316\u811a\u672c\">\u4e0b\u8f7d\u521d\u59cb\u5316\u811a\u672c<\/h3>\n<p>\u76ee\u524d\u5df2\u7ecf\u5c06\u5e38\u7528\u7684\u64cd\u4f5c\u5199\u6210\u4e86Ansible\u811a\u672c\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5<\/pre>\n<\/td>\n<td>\n<pre>yum install -y git\r\ngit clone <a href=\"https:\/\/github.com\/xiaoquqi\/my_ansible_playbooks\" rel=\"nofollow\">https:\/\/github.com\/xiaoquqi\/my_ansible_playbooks<\/a>\r\n\r\ncd my_ansible_playbooks\r\nprepare_on_centos7.sh<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u4fee\u6539hosts-ini\u6587\u4ef6\">\u4fee\u6539hosts.ini\u6587\u4ef6<\/h3>\n<p>\u4fee\u6539hosts.ini\u6587\u4ef6\u6765\u521d\u59cb\u5316\u6240\u6709\u8282\u70b9<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5<\/pre>\n<\/td>\n<td>\n<pre># my_ansible_playbooks\/hosts.ini\r\ncompute201 ansible_host=192.168.10.201 ip=192.168.10.201 ansible_user=root\r\ncompute202 ansible_host=192.168.10.202 ip=192.168.10.202 ansible_user=root\r\ncompute203 ansible_host=192.168.10.202 ip=192.168.10.203 ansible_user=root\r\ncompute204 ansible_host=192.168.10.202 ip=192.168.10.204 ansible_user=root<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u521d\u59cb\u5316\u8282\u70b9\">\u521d\u59cb\u5316\u8282\u70b9<\/h3>\n<p>\u8be5\u6b65\u9aa4\u4e3b\u8981\u5305\u542b\u4e86\uff0c\u66f4\u65b0\u8f6f\u4ef6\uff0c\u4fee\u6539\u4e3b\u673a\u540d\uff0c\u589e\u52a0\/etc\/hosts\u7b49\u64cd\u4f5c\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7<\/pre>\n<\/td>\n<td>\n<pre>.\/run_ansible.sh playbooks\/bootstrap_centos7.yml\r\n.\/run_ansible.sh playbooks\/change_hostname.yml\r\n.\/run_ansible.sh playbooks\/update_etc_hosts.yml\r\n.\/run_ansible.sh playbooks\/install_docker.yml\r\n\r\n# \u5b89\u88c5pip\u548c\u7cfb\u7edf\u73af\u5883\u4e0b\u7684python docker\u6a21\u5757\uff0c\u5426\u5219\u5728precheck\u7684\u65f6\u5019\u4f1a\u53d1\u73b0\u6ca1\u6709\u5b89\u88c5docker\u6a21\u5757\r\n.\/run_ansible.sh playbooks\/install_pip2_package.yml<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u5b89\u88c5Ceph-Deploy\">\u5b89\u88c5Ceph Deploy<\/h3>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2<\/pre>\n<\/td>\n<td>\n<pre>yum install -y python3-pip\r\npip3 install pecan werkzeug<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9<\/pre>\n<\/td>\n<td>\n<pre>cat &lt;&lt; EOF &gt; \/etc\/yum.repos.d\/ceph.repo\r\n[ceph-noarch]\r\nname=Ceph noarch packages\r\nbaseurl=<a href=\"https:\/\/mirrors.aliyun.com\/ceph\/rpm-octopus\/el7\/noarch\/\" rel=\"nofollow\">https:\/\/mirrors.aliyun.com\/ceph\/rpm-octopus\/el7\/noarch\/<\/a>\r\nenabled=1\r\ngpgcheck=1\r\ntype=rpm-md\r\ngpgkey=<a href=\"https:\/\/mirrors.aliyun.com\/ceph\/keys\/release.asc\" rel=\"nofollow\">https:\/\/mirrors.aliyun.com\/ceph\/keys\/release.asc<\/a>\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2<\/pre>\n<\/td>\n<td>\n<pre>yum makecache\r\nyum install -y ceph-deploy<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u5b89\u88c5Kolla\">\u5b89\u88c5Kolla<\/h3>\n<p>\u7531\u4e8ePython Warning\u7684\u63d0\u793a\u4fe1\u606f\u5bfc\u81f4\u5728\u5b89\u88c5\u65f6\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\uff0c\u9700\u8981\u589e\u52a0\u5ffd\u7565Python Warning\u7684\u73af\u5883\u53d8\u91cf\uff0c\u5177\u4f53\u4fee\u590d\u4fe1\u606f\u5982\u4e0b\uff1a<a href=\"https:\/\/bugs.launchpad.net\/kolla-ansible\/+bug\/1888657\" target=\"_blank\" rel=\"noopener\">https:\/\/bugs.launchpad.net\/kolla-ansible\/+bug\/1888657<\/a><\/p>\n<p>\u76ee\u524d\u901a\u8fc7pip\u65b9\u5f0f\u8fd8\u6ca1\u67098.2.1\u8fd9\u4e2arelease\uff0c\u6240\u4ee5kolla\u7684\u5b89\u88c5\u4ece\u6e90\u4ee3\u7801\u4e2d\u8fdb\u884c\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7<\/pre>\n<\/td>\n<td>\n<pre>Ansible 2.2.0.0 used in Stein kolla-toolbox requires paramiko (no version\r\nconstraints), which installs latest cryptography package. It results in\r\nPython deprecation warning about Python 2:\r\n\r\n\/usr\/lib64\/python2.7\/site-packages\/cryptography\/__init__.py:39: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release.\r\n\r\nThis warning breaks kolla_toolbox module.<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16<\/pre>\n<\/td>\n<td>\n<pre>sudo yum -y install python-devel libffi-devel gcc openssl-devel libselinux-python\r\n\r\ngit clone <a href=\"https:\/\/github.com\/openstack\/kolla-ansible\" rel=\"nofollow\">https:\/\/github.com\/openstack\/kolla-ansible<\/a> --branch stable\/stein\r\ncd kolla-ansible\r\npip install . --ignore-installed PyYAML\r\n\r\n# \u865a\u62df\u73af\u5883\u8fd8\u9700\u8981\u518d\u5b89\u88c5\u4e00\u6b21ansible\uff0c\u5426\u5219kolla-ansible\u4f1a\u63d0\u793a\r\n# ERROR: kolla_ansible has to be available in the Ansible PYTHONPATH.\r\n# Please install both in the same (virtual) environment.\r\npip install 'ansible&lt;2.10'\r\n\r\nmkdir -p \/etc\/kolla\r\ncp -r $VENV_HOME\/share\/kolla-ansible\/etc_examples\/kolla\/* \/etc\/kolla\r\n\r\nmkdir -p \/root\/kolla\r\ncp $VENV_HOME\/share\/kolla-ansible\/ansible\/inventory\/* \/root\/kolla<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u751f\u6210\u5bc6\u7801\uff0c\u5982\u679c\u9700\u8981\u6307\u5b9a\u5bc6\u7801\uff0c\u53ef\u4ee5\u5230\/etc\/kolla\/password.yml\u4e2d\u4fee\u6539\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1<\/pre>\n<\/td>\n<td>\n<pre>kolla-genpwd<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2 id=\"3-2-\u90e8\u7f72Ceph\">3.2 \u90e8\u7f72Ceph<\/h2>\n<h3 id=\"\u90e8\u7f72\">\u90e8\u7f72<\/h3>\n<p>\u4e4b\u524d\u6709\u4e00\u7bc7\u8f6f\u6587\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u4f7f\u7528Ceph Deploy\u90e8\u7f72Ceph\u7684\u65b9\u6cd5\uff0c\u8fd9\u91cc\u4e0d\u518d\u8d58\u8ff0\uff0c\u4e0b\u9762\u76f4\u63a5\u7ed9\u51fa\u90e8\u7f72\u547d\u4ee4\uff0c\u8fd9\u91cc\u6211\u4eec\u53ea\u90e8\u7f72\u5757\u670d\u52a1\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31\r\n32\r\n33\r\n34\r\n35\r\n36<\/pre>\n<\/td>\n<td>\n<pre>mkdir -p \/root\/ceph\r\ncd \/root\/ceph\r\n\r\nexport CEPH_DEPLOY_REPO_URL=<a href=\"https:\/\/mirrors.aliyun.com\/ceph\/rpm-octopus\/el7\" rel=\"nofollow\">https:\/\/mirrors.aliyun.com\/ceph\/rpm-octopus\/el7<\/a>\r\nexport CEPH_DEPLOY_GPG_URL=<a href=\"https:\/\/mirrors.aliyun.com\/ceph\/keys\/release.asc\" rel=\"nofollow\">https:\/\/mirrors.aliyun.com\/ceph\/keys\/release.asc<\/a>\r\n\r\n# \u5982\u679c\u963f\u91cc\u6e90\u65e0\u6cd5\u4f7f\u7528\uff0c\u53ef\u4ee5\u4f7f\u7528163\u6e90\uff0c\u5e76\u4e14\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9arpm-octopus\uff0c\u6307\u5b9a\u5b89\u88c5\u7684Ceph\u7248\u672c\r\n#export CEPH_DEPLOY_REPO_URL=<a href=\"https:\/\/mirrors.163.com\/ceph\/rpm-octopus\/el7\" rel=\"nofollow\">https:\/\/mirrors.163.com\/ceph\/rpm-octopus\/el7<\/a>\r\n#export CEPH_DEPLOY_GPG_URL=<a href=\"https:\/\/mirrors.163.com\/ceph\/keys\/release.asc\" rel=\"nofollow\">https:\/\/mirrors.163.com\/ceph\/keys\/release.asc<\/a>\r\n\r\n# \u96c6\u7fa4\u521d\u59cb\u5316\uff0c\u8fd9\u4e00\u6b65\u4f1a\u751f\u6210\u521d\u59cb\u5316\u7684ceph.conf\uff0c\u53ef\u4ee5\u914d\u7f6e\u7f51\u7edc\u7b49\u4fe1\u606f\r\n#\r\n# \u5982\u679ccluster-network\u548cpublic-network\u9700\u8981\u5206\u5f00\uff0c\u53ef\u4ee5\u8fd9\u6837\u5b9a\u4e49\uff1a\r\n# ceph-deploy new --cluster-network 172.31.6.0\/24 --public-network 192.168.4.0\/24 node1 node2 node3\r\n\r\nceph-deploy new --public-network 10.0.100.0\/24 compute201\r\nceph-deploy install compute201 compute202 compute203 compute204\r\n\r\n# \u521d\u59cb\u5316monitor\uff0c\u5e76\u6536\u96c6keys\r\nceph-deploy mon create-initial\r\nceph-deploy admin compute201 compute202 compute203 compute204\r\n\r\nceph-deploy mgr create compute201\r\n\r\n# \u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\uff0c\u8fd9\u91cc\u6a21\u62df\u7684\u662f\u5c06RocksDB\u5b58\u653e\u81f3\u5355\u72ec\u7684SSD\u78c1\u76d8\uff0c\u76ee\u524d\u6587\u6863\u4e2d\u5e76\u6ca1\u6709\u7279\u522b\u6307\u51fa\u8fd9\u90e8\u5206\u7684\u5206\u914d\u6bd4\u4f8b\uff0c\u6240\u4ee5DB\u548cWAL\u90fd\u662f\u5206\u914d10G\uff0c\u5199\u5165\u7684\u57fa\u672c\u987a\u5e8f\u4e3aWAL -&gt; DB -&gt; DATA\r\n\r\npvcreate \/dev\/vdb\r\nvgcreate ceph-pool \/dev\/vdb\r\n\r\n# \u6bcf\u4e2aOSD\u5206\u914d\r\nlvcreate -n osd0.wal -L 10G ceph-pool\r\nlvcreate -n osd0.db -L 10G ceph-pool\r\nceph-deploy osd create --data \/dev\/vdd --block-db ceph-pool\/osd0.db --block-wal ceph-pool\/osd0.wal compute201\r\n\r\n# \u68c0\u67e5\u96c6\u7fa4\u72b6\u6001\r\nceph -s<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u751f\u6210\u914d\u7f6e\u6587\u4ef6\">\u751f\u6210\u914d\u7f6e\u6587\u4ef6<\/h3>\n<p>\u4e3aGlance\/Nova\/Cinder\u521b\u5efa\u8d44\u6e90\u6c60\u5e76\u751f\u6210\u9274\u6743\u6587\u4ef6<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11<\/pre>\n<\/td>\n<td>\n<pre>ceph osd pool create images 128\r\nceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images' -o \/etc\/ceph\/ceph.client.glance.keyring\r\n\r\nceph osd pool create volumes 128\r\nceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rx pool=images' -o \/etc\/ceph\/ceph.client.cinder.keyring\r\n\r\nceph osd pool create backups 128\r\nceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups' -o \/etc\/ceph\/ceph.client.cinder-backup.keyring\r\n\r\nceph osd pool create vms 128\r\nceph auth get-or-create client.nova mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rx pool=images' -o \/etc\/ceph\/ceph.client.nova.keyring<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u6ce8\u610f\uff1a<\/p>\n<h2 id=\"3-3-OpenStack\u90e8\u7f72\">3.3 OpenStack\u90e8\u7f72<\/h2>\n<h3 id=\"kolla\u914d\u7f6e\u6587\u4ef6\">kolla\u914d\u7f6e\u6587\u4ef6<\/h3>\n<h4 id=\"etc-kolla-globals-yml\">\/etc\/kolla\/globals.yml<\/h4>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25<\/pre>\n<\/td>\n<td>\n<pre>kolla_base_distro: \"centos\"\r\nkolla_install_type: \"source\"\r\nopenstack_release: \"stein\"\r\nkolla_internal_vip_address: \"192.168.10.123\"\r\n\r\ndocker_registry: <a href=\"http:\/\/registry.cn-beijing.aliyuncs.com\/\" rel=\"nofollow\">registry.cn-beijing.aliyuncs.com<\/a>\r\ndocker_namespace: \"openstack-dockers\"\r\n\r\nnetwork_interface: \"eth0\"\r\nstorage_interface: \"eth1\"\r\ntunnel_interface: \"eth3\"\r\nneutron_external_interface: \"eth2\"\r\n\r\nopenstack_logging_debug: \"True\"\r\nenable_haproxy: \"no\"\r\nenable_ceph: \"no\"\r\nenable_cinder: \"yes\"\r\nenable_cinder_backup: \"yes\"\r\nenable_fluentd: \"no\"\r\nenable_openstack_core: \"yes\"\r\nglance_backend_ceph: \"yes\"\r\nglance_backend_file: \"no\"\r\nglance_enable_rolling_upgrade: \"no\"\r\ncinder_backend_ceph: \"yes\"\r\nnova_backend_ceph: \"yes\"<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h4 id=\"multinode\">multinode<\/h4>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17<\/pre>\n<\/td>\n<td>\n<pre>[control]\r\ncompute201 ansible_host=192.168.10.123 ip=192.168.10.123 ansible_user=root\r\n\r\n[network]\r\ncompute201 ansible_host=192.168.10.123 ip=192.168.10.123 ansible_user=root\r\ncompute202 ansible_host=192.168.10.160 ip=192.168.10.160 ansible_user=root\r\n\r\n[compute]\r\ncompute201 ansible_host=192.168.10.123 ip=192.168.10.123 ansible_user=root\r\ncompute202 ansible_host=192.168.10.160 ip=192.168.10.160 ansible_user=root\r\n\r\n[monitoring]\r\ncompute201 ansible_host=192.168.10.123 ip=192.168.10.123 ansible_user=root\r\n\r\n[storage]\r\ncompute201 ansible_host=192.168.10.123 ip=192.168.10.123 ansible_user=root\r\ncompute202 ansible_host=192.168.10.160 ip=192.168.10.160 ansible_user=root<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u5b9a\u5236\u670d\u52a1\u914d\u7f6e\u6587\u4ef6\">\u5b9a\u5236\u670d\u52a1\u914d\u7f6e\u6587\u4ef6<\/h3>\n<h4 id=\"Ceph-Glance\">Ceph Glance<\/h4>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9<\/pre>\n<\/td>\n<td>\n<pre>mkdir -p \/etc\/kolla\/config\/glance\r\ntee \/etc\/kolla\/config\/glance\/glance-api.conf &lt;&lt; EOF\r\n[glance_store]\r\nstores = rbd\r\ndefault_store = rbd\r\nrbd_store_pool = images\r\nrbd_store_user = glance\r\nrbd_store_ceph_conf = \/etc\/ceph\/ceph.conf\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2<\/pre>\n<\/td>\n<td>\n<pre>cp \/etc\/ceph\/ceph.conf \/etc\/kolla\/config\/glance\/ceph.conf\r\ncp \/etc\/ceph\/ceph.client.glance.keyring \/etc\/kolla\/config\/glance\/ceph.client.glance.keyring<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h4 id=\"Ceph-Cinder\">Ceph Cinder<\/h4>\n<p>cinder_rbd_secret_uuid\u662f\u5728passwords.yml\u4e2d\u751f\u6210\u7684\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19<\/pre>\n<\/td>\n<td>\n<pre>mkdir -p \/etc\/kolla\/config\/cinder\r\nmkdir -p \/etc\/kolla\/config\/cinder\/cinder-volume\r\nmkdir -p \/etc\/kolla\/config\/cinder\/cinder-backup\r\n\r\nexport cinder_rbd_secret_uuid=$(grep cinder_rbd_secret_uuid \/etc\/kolla\/passwords.yml | awk '{print $2}')\r\n\r\ntee \/etc\/kolla\/config\/cinder\/cinder-volume.conf &lt;&lt; EOF\r\n[DEFAULT]\r\nenabled_backends=rbd-1\r\n\r\n[rbd-1]\r\nrbd_ceph_conf=\/etc\/ceph\/ceph.conf\r\nrbd_user=cinder\r\nbackend_host=rbd:volumes\r\nrbd_pool=volumes\r\nvolume_backend_name=rbd-1\r\nvolume_driver=cinder.volume.drivers.rbd.RBDDriver\r\nrbd_secret_uuid = $cinder_rbd_secret_uuid\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11<\/pre>\n<\/td>\n<td>\n<pre>tee \/etc\/kolla\/config\/cinder\/cinder-backup.conf &lt;&lt; EOF\r\n[DEFAULT]\r\nbackup_ceph_conf=\/etc\/ceph\/ceph.conf\r\nbackup_ceph_user=cinder-backup\r\nbackup_ceph_chunk_size = 134217728\r\nbackup_ceph_pool=backups\r\nbackup_driver = cinder.backup.drivers.ceph.CephBackupDriver\r\nbackup_ceph_stripe_unit = 0\r\nbackup_ceph_stripe_count = 0\r\nrestore_discard_excess_bytes = true\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u6240\u6709\u6587\u4ef6\u5fc5\u987b\u547d\u540d\u4e3aceph.client*<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4<\/pre>\n<\/td>\n<td>\n<pre>cp \/etc\/ceph\/ceph.conf \/etc\/kolla\/config\/cinder\/ceph.conf\r\ncp \/etc\/ceph\/ceph.client.cinder.keyring \/etc\/kolla\/config\/cinder\/cinder-volume\/ceph.client.cinder.keyring\r\ncp \/etc\/ceph\/ceph.client.cinder.keyring \/etc\/kolla\/config\/cinder\/cinder-backup\/ceph.client.cinder.keyring\r\ncp \/etc\/ceph\/ceph.client.cinder-backup.keyring \/etc\/kolla\/config\/cinder\/cinder-backup\/ceph.client.cinder-backup.keyring<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h4 id=\"Ceph-Nova\">Ceph Nova<\/h4>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9<\/pre>\n<\/td>\n<td>\n<pre>mkdir -p \/etc\/kolla\/config\/nova\r\n\r\ntee \/etc\/kolla\/config\/nova\/nova-compute.conf &lt;&lt; EOF\r\n[libvirt]\r\nimages_rbd_pool=vms\r\nimages_type=rbd\r\nimages_rbd_ceph_conf=\/etc\/ceph\/ceph.conf\r\nrbd_user=nova\r\nEOF<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3<\/pre>\n<\/td>\n<td>\n<pre>cp \/etc\/ceph\/ceph.conf \/etc\/kolla\/config\/nova\/ceph.conf\r\ncp \/etc\/ceph\/ceph.client.nova.keyring \/etc\/kolla\/config\/nova\/ceph.client.nova.keyring\r\ncp \/etc\/ceph\/ceph.client.cinder.keyring \/etc\/kolla\/config\/nova\/ceph.client.cinder.keyring<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u68c0\u67e5\">\u68c0\u67e5<\/h3>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7<\/pre>\n<\/td>\n<td>\n<pre># \u521d\u59cb\u5316\u8282\u70b9\uff0c\u4e0e\u4e0a\u8ff0\u6211\u4eec\u81ea\u5df1\u7684\u521d\u59cb\u5316\u6709\u91cd\u590d\u4e4b\u5904\r\nkolla-ansible -i multinode bootstrap-servers\r\n\r\nkolla-ansible -i multinode prechecks\r\n\r\n# \u62c9\u53d6\u6240\u6709\u955c\u50cf\r\nkolla-ansible -i multinode pull<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 id=\"\u90e8\u7f72-1\">\u90e8\u7f72<\/h3>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\r\n2<\/pre>\n<\/td>\n<td>\n<pre>kolla-ansible -i multinode deploy\r\nkolla-ansible -i multinode post-deploy<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h1 id=\"\u9644\u5f55\">\u9644\u5f55<\/h1>\n<h2 id=\"\u8282\u70b9\u4e92\u4fe1\">\u8282\u70b9\u4e92\u4fe1<\/h2>\n<p>\u8282\u70b9\u4e4b\u95f4\u4e92\u4fe1\u5efa\u8bae\u91c7\u7528key\u65b9\u5f0f\uff0c\u8fd9\u91cc\u5e76\u6ca1\u6709\u5b9e\u73b0\u5b8c\u5168\u81ea\u52a8\u5316\u624b\u6bb5\uff0c\u9700\u8981\u9996\u5148\u5728\u63a7\u5236\u8282\u70b9\u4e0a\u751f\u6210\u516c\u94a5\u548c\u79c1\u94a5\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1<\/pre>\n<\/td>\n<td>\n<pre>ssh-keygen<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>\u7136\u540e\u5c06~\/.ssh\/id_rsa.pub\u6587\u4ef6\u62f7\u8d1d\u81f3\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u4e24\u53f0\u8282\u70b9\u7684\u73af\u5883\u4e2d\u7684playbooks\/keys\u76ee\u5f55\u4e0b\uff0c\u518d\u66f4\u65b0\u6240\u6709\u8282\u70b9\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1<\/pre>\n<\/td>\n<td>\n<pre>.\/run_ansible.sh playbooks\/update_authorized_keys.yml<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2 id=\"\u90e8\u7f72\u51fa\u9519\u5982\u4f55\u8c03\u8bd5\">\u90e8\u7f72\u51fa\u9519\u5982\u4f55\u8c03\u8bd5<\/h2>\n<p>\u5982\u679c\u5728\u90e8\u7f72\u4e2d\u51fa\u73b0\u4efb\u4f55\u9519\u8bef\uff0c\u53ef\u4ee5\u6dfb\u52a0\u66f4\u591a\u7684Verbose\u6765\u5224\u65ad\u5177\u4f53\u95ee\u9898\uff0c\u6709\u53ef\u80fd\u662fkolla\u81ea\u8eabbug\uff0c\u4e5f\u6709\u53ef\u80fd\u662f\u914d\u7f6e\u7684\u95ee\u9898\uff0c\u5177\u4f53\u53ef\u4ee5\u6839\u636e\u8be6\u7ec6\u8f93\u51fa\u8fdb\u884c\u5224\u65ad\u3002<\/p>\n<figure>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1<\/pre>\n<\/td>\n<td>\n<pre>kolla-ansible -vvv -i multinode deploy<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u5f00\u6e90\u7248\u672c\u7684OpenStack+Ceph\u7684\u7ec4\u5408\u5df2\u7ecf\u65e5\u8d8b\u7a33\u5b9a\uff0c\u6240\u4ee5\u642d\u5efa\u4e00\u6735\u79c1\u6709\u4e91\u73af\u5883\u7684\u96be\u5ea6\u5728\u9010\u6b65\u964d\u4f4e\u3002\u5f53\u7136Open [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-1011","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/1011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1011"}],"version-history":[{"count":1,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/1011\/revisions"}],"predecessor-version":[{"id":1012,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/1011\/revisions\/1012"}],"wp:attachment":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}