{"id":6814,"date":"2022-03-07T00:51:47","date_gmt":"2022-03-07T08:51:47","guid":{"rendered":"https:\/\/www.xh86.me\/?p=6814"},"modified":"2022-03-07T00:51:47","modified_gmt":"2022-03-07T08:51:47","slug":"installation-kolla-all-in-one","status":"publish","type":"post","link":"https:\/\/www.xh86.me\/?p=6814","title":{"rendered":"Installation-kolla-all-in-one"},"content":{"rendered":"<pre># \u786c\u4ef6\u73af\u5883\u51c6\u5907\r\n\r\n1. CPU \/ \u5185\u5b58 \/ \u78c1\u76d8\r\n\t- \u6700\u5c0f\u914d\u7f6e\u4e3a\uff1a4C \/ 8G \/ 50G\r\n\t- \u5efa\u8bae\u4f7f\u7528 16G \u4ee5\u4e0a\u5185\u5b58\uff0c\u5982\u679c\u5f00\u542fcinder\u7684LVM\u540e\u7aef\uff0c\u9700\u8981\u5728\u52a0\u4e00\u5757\u78c1\u76d8\u3002\r\n2. \u7f51\u7edc\u914d\u7f6e\u6700\u5c11\u9700\u89812\u4e2a\u7f51\u53e3\r\n\t- \u4e00\u4e2a\u662f\u7ba1\u7406\u7f51\r\n\t- \u4e00\u4e2a\u865a\u62df\u673a\u4e1a\u52a1\u7f51\r\n3. \u64cd\u4f5c\u7cfb\u7edf CentOS 7 \u4ee5\u4e0a\u7cfb\u7edf\uff0c\u672c\u6587\u6863\u662f\u4f7f\u7528 CentOS \u6765\u505a demo\u3002\r\n4. \u64cd\u4f5c\u7cfb\u7edf\u9700\u8981\u80fd\u591f\u8bbf\u95ee\u5916\u90e8\u7f51\u7edc\r\n5. \u5173\u95ed selinux \u548c firewalld\r\n\r\n# \u5b89\u88c5\u524d\u51c6\u5907\r\n\r\n1. \u4fee\u6539 hosts \u6587\u4ef6\uff0c\u628a hostname \u5bf9\u5e94\u7684 ip \u5730\u5740\uff0c\u6dfb\u52a0\u5230\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u3002\r\n\r\n\t```\r\n\t[root@openstack-allinone ~]# cat \/etc\/hosts\r\n\t127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4\r\n\t::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\r\n\t10.211.55.9 openstack-allinone\r\n\t[root@openstack-allinone ~]#\r\n\t```\r\n2. \u5b89\u88c5 epel-release\r\n\r\n\t```\r\n\tsudo yum install -y epel-release\r\n\t```\r\n3. \u5b89\u88c5 python \u4f9d\u8d56\r\n\r\n\t```\r\n\tsudo yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python\r\n\t```\r\n4. \u5b89\u88c5\u865a\u62df\u73af\u5883\uff08\u53ef\u9009\uff09\r\n\t- \u76ee\u524d kolla \u4ee5\u53ca ansible \u652f\u6301\u5b89\u88c5\u5728\u865a\u62df\u73af\u5883\u4e2d\r\n\r\n\t\t```\r\n\t\tsudo yum install -y python-virtualenv\r\n\t\t```\r\n\t- \u5982\u679c\u76f4\u63a5\u5b89\u88c5\u5728\u88f8\u673a\u4e2d\uff0c\u53ef\u4ee5\u4e0d\u5b89\u88c5\u865a\u62df\u73af\u5883\u3002\u672c\u4f8b\u6ca1\u6709\u4f7f\u7528\u865a\u62df\u73af\u5883\r\n5. \u5b89\u88c5 ansible\uff082.5+\u7248\u672c\uff09\r\n\t- \u76ee\u524d kolla \u5df2\u7ecf\u4e0d\u518d\u652f\u6301 2.5 \u4ee5\u4e0b\u7684 ansible \u7684\u7248\u672c\r\n\r\n\t\t```\r\n\t\teasy_install pip    \/\/\u5b89\u88c5pip\r\n\t\tpip install -U pip  \/\/\u786e\u4fdd\u4f7f\u7528\u6700\u65b0\u7684pip\r\n\t\tpip install ansible  \/\/\u5b89\u88c5ansible\r\n\t\t```\r\n\t- \u56fd\u5185 pip \u5b89\u88c5\u901f\u5ea6\u8f83\u6162\u7684\u8bdd\uff0c\u53ef\u4ee5\u4f7f\u7528\u56fd\u5185\u7684 pip \u6e90\r\n\r\n\t\t```\r\n\t\tpip install ansible  -i https:\/\/pypi.tuna.tsinghua.edu.cn\/simple\r\n\t\t```\r\n\t- \u68c0\u67e5 ansible \u7248\u672c\r\n\r\n\t\t```\r\n\t\t[root@openstack-allinone ~]# ansible --version\r\n\t\tansible 2.8.2\r\n\t\t  config file = None\r\n\t\t  configured module search path = [u'\/root\/.ansible\/plugins\/modules', u'\/usr\/share\/ansible\/plugins\/modules']\r\n\t\t  ansible python module location = \/usr\/lib\/python2.7\/site-packages\/ansible\r\n\t\t  executable location = \/usr\/bin\/ansible\r\n\t\t  python version = 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]\r\n\t\t[root@openstack-allinone ~]#\r\n\t\t```\r\n\r\n# \u5b89\u88c5 kolla-ansible\r\n\r\n1. \u672c\u6b21\u5b89\u88c5\u6700\u65b0\u7684\u53d1\u5e03\u7248\u672c stein \u7248\u672c\uff0c\u6240\u4ee5\u6211\u4eec\u4f7f\u7528 stein \u7248\u672c\u7684 kolla-ansible\r\n2. \u5982\u679c\u64cd\u4f5c\u7cfb\u7edf\u6ca1\u6709\u5b89\u88c5 git \u9700\u8981\u9996\u5148\u5b89\u88c5 git\r\n\r\n\t```\r\n\tyum install -y git\r\n\t```\r\n3. \u4e4b\u540e\u514b\u9686 kolla-ansible \u7684\u4ee3\u7801\r\n\r\n\t```\r\n\tgit clone https:\/\/github.com\/openstack\/kolla-ansible.git -b stable\/stein\r\n\t```\r\n4. \u8be5\u6b65\u9aa4\u5982\u679c\u514b\u9686\u8f83\u6162\uff0c\u53ef\u4ee5\u81ea\u5df1\u4e0b\u8f7d\u538b\u7f29\u5305\uff0c\u6216\u8005\u914d\u7f6e git \u4ee3\u7406\r\n\r\n\t```\r\n\t[root@openstack-allinone kolla-ansible]# git branch \/\/\u68c0\u67e5\u5206\u652f\r\n\t* stable\/stein\r\n\t[root@openstack-allinone kolla-ansible]# pwd\r\n\t\/root\/kolla-ansible\r\n\t[root@openstack-allinone kolla-ansible]#\r\n\t```\r\n4. \u5b89\u88c5 kolla-ansible\r\n\r\n\t```\r\n\tcd ~\/kolla-ansible\r\n\tpip install . -i https:\/\/pypi.tuna.tsinghua.edu.cn\/simple\r\n\t```\r\n5. \u521b\u5efa\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\r\n\r\n\t```\r\n\tsudo mkdir -p \/etc\/kolla\r\n\tsudo chown $USER:$USER \/etc\/kolla\r\n\t```\r\n6. \u62f7\u8d1d globals.yml \u548c passwords.yml \u6587\u4ef6\u5230 \/etc\/kolla \u76ee\u5f55\u4e0b\r\n\r\n\t```\r\n\tcp -r \/usr\/share\/kolla-ansible\/etc_examples\/kolla\/* \/etc\/kolla\r\n\t```\r\n7. \u62f7\u8d1d allinone \u548c mutinode \u6587\u4ef6\u5230\u5f53\u524d\u5bb6\u76ee\u5f55\u4e0b\r\n\r\n\t```\r\n\tcp \/usr\/share\/kolla-ansible\/ansible\/inventory\/* ~\/\r\n\t```\r\n\r\n# \u914d\u7f6e Inventory \u548c globals.yml \u6587\u4ef6\r\n\r\n1. \u5728allinone\u7684\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e0d\u9700\u8981\u4fee\u6539Inventory\u6587\u4ef6\r\n2. \u4fee\u6539globals.yml\u6587\u4ef6\r\n\r\n\t```\r\n\tvi \/etc\/kolla\/globals.yml\r\n\t\u4fee\u6539\u5982\u4e0b\u9009\u9879\r\n\tkolla_install_type: \"source\"\r\n\topenstack_release: \"stein\"\r\n\tkolla_internal_vip_address: \"10.211.55.100\" \/\/\u8fd9\u4e2aip\u9700\u8981\u662f\u7ba1\u7406\u7f51\u540c\u4e00\u4e2a\u7f51\u6bb5\u7684\r\n\tnetwork_interface: \"eth0\"\r\n\tneutron_external_interface: \"eth1\"\r\n\tenable_cinder: \"yes\"\r\n\tenable_cinder_backend_lvm: \"yes\"\r\n\t   ......\u5176\u4ed6\u7684\u9ed8\u8ba4\u5373\u53ef\r\n\t```\r\n\r\n#  \u914d\u7f6e cinder \u7684 backend\r\n\r\n1. cinder \u9ed8\u8ba4\u4f7f\u7528\u7684\u662f cinder-volumes \u8fd9\u4e2a vg\uff0c\u8fd9\u4e2a vg \u9700\u8981\u624b\u52a8\u521b\u5efa\r\n\r\n\t```\r\n\t[root@openstack-allinone ~]# lsblk\r\n\tNAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT\r\n\tsda                    8:0    0   128G  0 disk\r\n\t\u251c\u2500sda1                 8:1    0   500M  0 part \/boot\r\n\t\u2514\u2500sda2                 8:2    0 127.5G  0 part\r\n\t  \u251c\u2500VolGroup-lv_root 253:0    0    50G  0 lvm  \/\r\n\t  \u251c\u2500VolGroup-lv_swap 253:1    0     2G  0 lvm  [SWAP]\r\n\t  \u2514\u2500VolGroup-lv_home 253:2    0  75.5G  0 lvm  \/home\r\n\tsdb                    8:16   0   100G  0 disk\r\n\tsr0                   11:0    1 146.4M  0 rom\r\n\tsr1                   11:1    1   603M  0 rom\r\n\t```\r\n2. \u4f7f\u7528 sdb \u521b\u5efa pv\r\n\r\n\t```\r\n\t[root@openstack-allinone ~]# pvcreate \/dev\/sdb\r\n\t  Physical volume \"\/dev\/sdb\" successfully created\r\n\t[root@openstack-allinone ~]#\r\n\t```\r\n3. \u521b\u5efa vg\r\n\r\n\t```\r\n\t[root@openstack-allinone ~]# vgcreate cinder-volumes \/dev\/sdb\r\n\t  Volume group \"cinder-volumes\" successfully created\r\n\t[root@openstack-allinone ~]#\r\n\t```\r\n\r\n# \u90e8\u7f72 openstack\r\n\r\n1. \u6267\u884c bootstrap\uff0c\u4f1a\u5b89\u88c5 docker \u4e00\u7c7b\u6240\u9700\u8981\u7684\u5de5\u5177\r\n\r\n\t```\r\n\tkolla-ansible  bootstrap-servers \/\/\u9ed8\u8ba4\u4f7f\u7528allinone\u6587\u4ef6\r\n\t```\r\n2. \u786e\u8ba4cpu\u662f\u5426\u652f\u6301\u786c\u4ef6\u865a\u62df\u5316\r\n\r\n\t```\r\n\tgrep -E 'svm|vmx' \/proc\/cpuinfo\r\n\t#\u5982\u679c\u6709\u56de\u663e\uff0c\u5219\u4e0b\u9762\u7684\u64cd\u4f5c\u4e0d\u9700\u8981\uff0c\u5982\u679c\u6ca1\u6709\u56de\u663e\uff0c\u8bf4\u660ecpu\u4e0d\u652f\u6301\u786c\u4ef6\u865a\u62df\u5316\uff0c\u9700\u8981\u4fee\u6539virt_type\r\n\tmkdir -p \/etc\/kolla\/config\/nova\r\n\tcat &lt;&lt; EOF &gt; \/etc\/kolla\/config\/nova\/nova-compute.conf\r\n\t[libvirt]\r\n\tvirt_type=qemu\r\n\tcpu_mode = none\r\n\tEOF\r\n\t```\r\n3. docker \u662f\u4ece docker hub \u4e0a\u9762 pull openstack \u955c\u50cf\uff0c\u56fd\u5185\u7684\u73af\u5883\u6709\u70b9\u6162\uff0c\u6240\u4ee5\u8fd9\u91cc\u914d\u7f6e\u4e86 docker \u52a0\u901f\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u4e0d\u914d\u7f6e\u8fd9\u4e2a\u6b65\u9aa4\r\n\r\n\t```\r\n\tsudo mkdir -p \/etc\/docker\r\n\tsudo tee \/etc\/docker\/daemon.json &lt;&lt;-'EOF'\r\n\t{\r\n\t  \"registry-mirrors\": [\"https:\/\/\u81ea\u5df1\u7684docker\u52a0\u901f\u5730\u5740.mirror.aliyuncs.com\"]\r\n\t}\r\n\tEOF\r\n\tsudo systemctl daemon-reload\r\n\tsudo systemctl restart docker\r\n\t```\r\n4. \u751f\u6210 kolla \u5bc6\u7801\r\n\r\n\t```\r\n\tkolla-genpwd\r\n\t```\r\n5. \u6267\u884c precheck\r\n\r\n\t```\r\n\tkolla-ansible prechecks\r\n\t```\r\n6. \u6267\u884c pull\uff08\u53ef\u4ee5\u4e0d\u6267\u884c\uff0cdeploy \u7684\u65f6\u5019\u4f1a\u81ea\u52a8 pull\uff09\r\n\r\n\t```\r\n\tkolla-ansible pull\r\n\t```\r\n7. \u6267\u884cdeploy\r\n\r\n\t```\r\n\tkolla-ansible deploy\r\n\t```\r\n\r\n# \u4f7f\u7528 openstack\r\n1. \u5b89\u88c5openstack client\r\n\r\n\t```\r\n\tpip install python-openstackclient -i https:\/\/pypi.tuna.tsinghua.edu.cn\/simple\r\n\t```\r\n2. \u751f\u6210admin-rc\u6587\u4ef6\r\n\r\n\t```\r\n\tkolla-ansible post-deploy\r\n\t\u9ed8\u8ba4\u662f\u751f\u6210\u7684\u6587\u4ef6\u540d\u662f: \/etc\/kolla\/admin-openrc.sh\r\n\t```\r\n\r\n3. \u6d4b\u8bd5openstack\u73af\u5883\r\n\r\n\t```\r\n\tsource  \/etc\/kolla\/admin-openrc.sh\r\n\t\/usr\/share\/kolla-ansible\/init-runonce\r\n\t```\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p># \u786c\u4ef6\u73af\u5883\u51c6\u5907 1. CPU \/ \u5185\u5b58 \/ \u78c1\u76d8 &#8211; \u6700\u5c0f\u914d\u7f6e\u4e3a\uff1a4C \/ 8G \/ 50G &#8211; \u5efa\u8bae\u4f7f\u7528  [&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,3],"tags":[],"class_list":["post-6814","post","type-post","status-publish","format-standard","hentry","category-linux","category-system"],"_links":{"self":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/6814","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=6814"}],"version-history":[{"count":1,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/6814\/revisions"}],"predecessor-version":[{"id":6815,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/6814\/revisions\/6815"}],"wp:attachment":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}