{"id":26493,"date":"2023-11-04T07:04:19","date_gmt":"2024-01-04T15:57:09","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/"},"modified":"2025-08-11T21:33:39","modified_gmt":"2025-08-11T13:33:39","slug":"%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/","title":{"rendered":"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla"},"content":{"rendered":"<h1>\u6253\u5f00\u5806\u6808\u4e0e\u5bb9\u5668OpenStack\u5df2\u7ecf\u663e\u793a\u51fa\u4e86\u76f8\u5f53\u67af\u71e5\u7684\u6c1b\u56f4\u3002 \u5728\u6bcf\u5e74\u4e24\u6b21\u7684OpenStack Summit\u4e2d\uff0c\u5173\u4e8e\u7a33\u5b9a\u6027\u5df2\u7ecf\u88ab\u8ba8\u8bba\u5f97\u5dee\u4e0d\u591a\u4e86\uff0c\u73b0\u5728\u5927\u5bb6\u66f4\u52a0\u5173\u6ce8\u7684\u662f\u4e0b\u4e00\u4e2a\u5c06\u4f1a\u6709\u54ea\u4e9b\u65b0\u7279\u6027\u3002 \u5728\u8fd9\u4e2a\u9886\u57df\u7684\u65b0\u524d\u6cbf\u4e4b\u4e00\u5c31\u662f\u5bb9\u5668\u4f7f\u7528\u3002 \u5b9e\u73b0\u5bb9\u5668\u73af\u5883\u7684Magnum\uff0c\u5b9e\u73b0OpenStack\u73af\u5883\u63d0\u4f9b\u7684Kolla\u548c\u63d0\u4f9b\u7f51\u7edc\u529f\u80fd\u7684Kuryr\u5728\u4e0a\u4e00\u6b21\uff082016\u5e7410\u6708\uff09\u5728\u5df4\u585e\u7f57\u90a3\u7684\u4f1a\u8bae\u4e0a\u4e5f\u5f15\u8d77\u4e86\u5f88\u591a\u7684\u70ed\u8bae\u3002 \u5728\u6700\u65b0\u7684Ocata\u53d1\u884c\u7248\u4e2d\u4e5f\u5bf9\u8fd9\u4e9b\u8fdb\u884c\u4e86\u8be6\u5c3d\u7684\u4ecb\u7ecd\u3002<br \/>\n\u56e0\u6b64\uff0c\u8fd9\u6b21\u6211\u4eec\u5c06\u7814\u7a76Kolla\u3002 \u9996\u5148\uff0c\u8ba9\u6211\u4eec\u5c1d\u8bd5\u5b89\u88c5\u5b83\u3002<\/p>\n<h2>\u4ec0\u4e48\u662f\u79d1\u62c9\uff1f\u516c\u5f0f\u6587\u4ef6\u5728\u8fd9\u91cc\u9644\u8fd1\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">docs.openstack.org \u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">github \u4e0a\u306b\u516c\u958b\u3055\u308c\u305f kolla \u306e\u30bd\u30fc\u30b9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">docker hub \u306b\u3042\u308b Kolla \u306e\u30da\u30fc\u30b8<\/ul>\n<p>Kolla \u73b0\u5728\u6709\u4e24\u4e2a\u5b50\u9879\u76ee\u3002\u7531\u4e8e kolla-kubernetes \u662f\u4f9d\u8d56\u4e8e kolla-ansible \u8fdb\u884c\u5f00\u53d1\u7684\uff0c\u6240\u4ee5\u5728\u672c\u6587\u4e2d\u6211\u4eec\u5148\u5c1d\u8bd5\u5b89\u88c5 kolla-ansible\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">kolla-ansible<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">kolla-kubernetes<\/ul>\n<p>\u53e6\u5916\uff0c\u76ee\u524d\u5728Kolla\u4e0a\u63d0\u4f9b\u7684OpenStack\u9879\u76ee\u5982\u4e0b\u6240\u793a\u3002\u53ea\u8981\u6709\u8fd9\u4e9b\uff0c\u5927\u591a\u6570\u95ee\u9898\u4f3c\u4e4e\u90fd\u80fd\u89e3\u51b3\u3002<\/p>\n<p>Aodh &lt;http:\/\/docs.openstack.org\/developer\/aodh\/&gt;__<\/p>\n<p>Barbican &lt;http:\/\/docs.openstack.org\/developer\/barbican\/&gt;__<\/p>\n<p>Bifrost &lt;http:\/\/docs.openstack.org\/developer\/bifrost\/&gt;__<\/p>\n<p>Ceilometer &lt;http:\/\/docs.openstack.org\/developer\/ceilometer\/&gt;__<\/p>\n<p>Cinder &lt;http:\/\/docs.openstack.org\/developer\/cinder\/&gt;__<\/p>\n<p>CloudKitty &lt;http:\/\/docs.openstack.org\/developer\/cloudkitty\/&gt;__<\/p>\n<p>Congress &lt;http:\/\/docs.openstack.org\/developer\/congress\/&gt;__<\/p>\n<p>Designate &lt;http:\/\/docs.openstack.org\/developer\/designate\/&gt;__<\/p>\n<p>Freezer &lt;https:\/\/wiki.openstack.org\/wiki\/Freezer-docs&gt;__<\/p>\n<p>Glance &lt;http:\/\/docs.openstack.org\/developer\/glance\/&gt;__<\/p>\n<p>Gnocchi &lt;http:\/\/docs.openstack.org\/developer\/gnocchi\/&gt;__<\/p>\n<p>Heat &lt;http:\/\/docs.openstack.org\/developer\/heat\/&gt;__<\/p>\n<p>Horizon &lt;http:\/\/docs.openstack.org\/developer\/horizon\/&gt;__<\/p>\n<p>Ironic &lt;http:\/\/docs.openstack.org\/developer\/ironic\/&gt;__<\/p>\n<p>Karbor &lt;http:\/\/docs.openstack.org\/developer\/karbor\/&gt;__<\/p>\n<p>Keystone &lt;http:\/\/docs.openstack.org\/developer\/keystone\/&gt;__<\/p>\n<p>Kuryr &lt;http:\/\/docs.openstack.org\/developer\/kuryr\/&gt;__<\/p>\n<p>Magnum &lt;http:\/\/docs.openstack.org\/developer\/magnum\/&gt;__<\/p>\n<p>Manila &lt;http:\/\/docs.openstack.org\/developer\/manila\/&gt;__<\/p>\n<p>Mistral &lt;http:\/\/docs.openstack.org\/developer\/mistral\/&gt;__<\/p>\n<p>Monasca &lt;http:\/\/wiki.openstack.org\/wiki\/monasca&gt;__<\/p>\n<p>Murano &lt;http:\/\/docs.openstack.org\/developer\/murano\/&gt;__<\/p>\n<p>Neutron &lt;http:\/\/docs.openstack.org\/developer\/neutron\/&gt;__<\/p>\n<p>Nova &lt;http:\/\/docs.openstack.org\/developer\/nova\/&gt;__<\/p>\n<p>Octavia &lt;http:\/\/docs.openstack.org\/developer\/octavia\/&gt;__<\/p>\n<p>Panko &lt;http:\/\/docs.openstack.org\/developer\/panko\/&gt;__<\/p>\n<p>Rally &lt;http:\/\/docs.openstack.org\/developer\/rally\/&gt;__<\/p>\n<p>Sahara &lt;http:\/\/docs.openstack.org\/developer\/sahara\/&gt;__<\/p>\n<p>Searchlight &lt;http:\/\/docs.openstack.org\/developer\/searchlight\/&gt;__<\/p>\n<p>Senlin &lt;http:\/\/docs.openstack.org\/developer\/senlin\/&gt;__<\/p>\n<p>Solum &lt;http:\/\/docs.openstack.org\/developer\/solum\/&gt;__<\/p>\n<p>Swift &lt;http:\/\/docs.openstack.org\/developer\/swift\/&gt;__<\/p>\n<p>Tacker &lt;http:\/\/docs.openstack.org\/developer\/tacker\/&gt;__<\/p>\n<p>Tempest &lt;http:\/\/docs.openstack.org\/developer\/tempest\/&gt;__<\/p>\n<p>Trove &lt;http:\/\/docs.openstack.org\/developer\/trove\/&gt;__<\/p>\n<p>Vmtp &lt;http:\/\/vmtp.readthedocs.io\/en\/latest\/&gt;__<\/p>\n<p>Watcher &lt;http:\/\/docs.openstack.org\/developer\/watcher\/&gt;__<\/p>\n<p>Zaqar &lt;http:\/\/docs.openstack.org\/developer\/zaqar\/&gt;__<\/p>\n<p>Zun &lt;http:\/\/wiki.openstack.org\/wiki\/zun&gt;__<\/p>\n<p>\u6b64\u5916\uff0cKolla \u8fd8\u63d0\u4f9b\u4e86\u57fa\u7840\u8bbe\u65bd\u7ec4\u4ef6\u3002\u5982\u679c\u6ca1\u6709\u8fd9\u4e9b\u7ec4\u4ef6\uff0c\u5b89\u88c5\u4e5f\u5c31\u65e0\u6cd5\u987a\u5229\u8fdb\u884c\u4e86\uff0c\u8fd9\u662f\u5f53\u7136\u7684\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ceph implementation for Cinder, Glance and Nova<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">collectd, InfluxDB, and Grafana for performance monitoring.<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Elasticsearch and Kibana to search, analyze, and visualize log messages.<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">HAProxy and Keepalived for high availability of services and their endpoints.<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Heka A distributed and scalable logging system for OpenStack services.<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kafka A distributed streaming platform.<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">MariaDB and Galera Cluster for highly available MySQL databases<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">MongoDB as a database back end for Ceilometer and Gnocchi<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Open vSwitch and Linuxbridge back ends for Neutron<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">RabbitMQ as a messaging back end for communication between services.<\/ul>\n<h1>\u5b89\u88c5<br \/>\n\u597d\u7684\uff0c\u6211\u4eec\u6765\u7ee7\u7eed\u8fdb\u884c\u5b89\u88c5\u5427\u3002\u9605\u8bfb\u5feb\u901f\u5165\u95e8\u6307\u5357\u540e\uff0c\u60a8\u4f1a\u53d1\u73b0\u786c\u4ef6\u8981\u6c42\u7684\u8bf4\u660e\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">2 network interfaces<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">8GB main memory<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">40GB disk space<\/ul>\n<p>\u6211\u51c6\u5907\u597d\u7684\u5b89\u88c5\u73af\u5883\u662f MacBook Air Early 2015 (macOS Sierra 10.12.3)\u3002\u867d\u7136\u5185\u5b58\u53ea\u67094GB\uff0c\u4f46\u6211\u5e0c\u671b\u80fd\u591f\u5c3d\u529b\u5c06\u5176\u8fd0\u884c\u3002\u53e6\u5916\uff0c\u63a8\u8350\u7684\u73af\u5883\u662f\u88f8\u91d1\u5c5e\u6216\u865a\u62df\u673a\uff0c\u6240\u4ee5\u6211\u5c06\u5c1d\u8bd5\u4f7f\u7528Vagrant+Virtualbox\u6765\u8fdb\u884c\u5168\u4e00\u4f53\u5316\u914d\u7f6e\u3002<\/p>\n<p>\u4ee5\u4e0b\u662f\u7528\u4e8e\u5f00\u53d1\u73af\u5883\u7684 Vagrantfile \u4e2d\u63cf\u8ff0\u7684\u865a\u62df\u673a\u914d\u7f6e\uff0c\u4f9b\u53c2\u8003\u3002<\/p>\n<div>\n<div class=\"post-table\">Machine TypeCPUMemoryAll-in-One44096Operator11024Control12048Compute11024Storage11024Network11024<\/p>\n<h2>\u51c6\u5907\u865a\u62df\u673a\u73af\u5883\u4f7f\u7528Vagrant\u548cVirtualBox\u521b\u5efa\u865a\u62df\u673a\u73af\u5883\u3002<\/p>\n<pre class=\"post-pre\"><code>$ vagrant init centos\/7;\r\nA `Vagrantfile` has been placed in this directory. You are now\r\nready to `vagrant up` your first virtual environment! Please read\r\nthe comments in the Vagrantfile as well as documentation on\r\n`vagrantup.com` for more information on using Vagrant.\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u7684 Vagrantfile \u5927\u81f4\u662f\u8fd9\u6837\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"no\">Vagrant<\/span><span class=\"p\">.<\/span><span class=\"nf\">configure<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"2\"<\/span><span class=\"p\">)<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">config<\/span><span class=\"o\">|<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">box<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"centos\/7\"<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">hostname<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"KollaEvSV\"<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"s2\">\"private_network\"<\/span><span class=\"p\">,<\/span> <span class=\"ss\">ip: <\/span><span class=\"s2\">\"192.168.33.10\"<\/span>\r\n   <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">provider<\/span> <span class=\"s2\">\"virtualbox\"<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">vb<\/span><span class=\"o\">|<\/span>\r\n     <span class=\"n\">vb<\/span><span class=\"p\">.<\/span><span class=\"nf\">memory<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"2048\"<\/span>\r\n  <span class=\"k\">end<\/span>\r\n<span class=\"k\">end<\/span>\r\n<\/code><\/pre>\n<h2>\u5728CentOS7\u4e2d\u914d\u7f6e\u73af\u5883\u3002\u6211\u5011\u5c07\u5728CentOS7\u4e0a\u6e96\u5099\u74b0\u5883\u3002<\/p>\n<pre class=\"post-pre\"><code>$ yum update\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5c06\u786e\u8ba4\u63a5\u53e3\u5df2\u7ecf\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ip add\r\n1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN qlen 1\r\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\r\n    inet 127.0.0.1\/8 scope host lo\r\n       valid_lft forever preferred_lft forever\r\n    inet6 ::1\/128 scope host \r\n       valid_lft forever preferred_lft forever\r\n2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000\r\n    link\/ether 52:54:00:1f:db:b7 brd ff:ff:ff:ff:ff:ff\r\n    inet 10.0.2.15\/24 brd 10.0.2.255 scope global dynamic eth0\r\n       valid_lft 84834sec preferred_lft 84834sec\r\n    inet6 fe80::5054:ff:fe1f:dbb7\/64 scope link \r\n       valid_lft forever preferred_lft forever\r\n3: eth1: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000\r\n    link\/ether 08:00:27:fc:26:5f brd ff:ff:ff:ff:ff:ff\r\n    inet 192.168.33.10\/24 brd 192.168.33.255 scope global eth1\r\n       valid_lft forever preferred_lft forever\r\n    inet6 fe80::a00:27ff:fefc:265f\/64 scope link \r\n       valid_lft forever preferred_lft forever\r\n<\/code><\/pre>\n<h2>\u73af\u5883\u7684\u51c6\u5907<br \/>\n\u6211\u5011\u5c07\u7e7c\u7e8c\u9032\u884c Kolla \u90e8\u7f72\u6240\u9700\u8edf\u9ad4\u7684\u5b89\u88dd\u3002\u7531\u65bc\u6211\u5011\u627e\u4e0d\u5230 Ocata \u7248\u672c\u7684\u6700\u4f4e\u8981\u6c42\uff0c\u56e0\u6b64\u5c07\u53c3\u8003 Newton \u7248\u672c\u7684\u8981\u6c42\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ansible (&gt;2.0.0)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker (&gt;1.10.0)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker Python (&gt;1.6.0)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Python Jinja2 (&gt;2.8.0)<\/ul>\n<p>\u9996\u5148\uff0c\u5b89\u88c5 EPEL \u548c PIP\u3002<\/p>\n<pre class=\"post-pre\"><code># yum install epel-release\r\n# yum install python-pip\r\n# pip install -U pip\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5c06\u5b89\u88c5\u7528\u4e8ePIP\u5305\u7ba1\u7406\u5668\u7684\u5e93\u3002<\/p>\n<pre class=\"post-pre\"><code># yum install python-devel libffi-devel gcc openssl-devel\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\u662f\u5b89\u88c5 Ansible\u3002<\/p>\n<pre class=\"post-pre\"><code># yum install ansible\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u73b0\u72b6\u4e0bAnsible 1.9.6\u4e0d\u80fd\u6ee1\u8db3\u8981\u6c42\uff0c\u6240\u4ee5\u9700\u8981\u8fdb\u884c\u8f6f\u4ef6\u5305\u5347\u7ea7\u3002<\/p>\n<pre class=\"post-pre\"><code># pip install -U ansible\r\n# ansible --version\r\nansible 2.2.1.0\r\n  config file = \/etc\/ansible\/ansible.cfg\r\n  configured module search path = Default w\/o overrides\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\u662fDocker\u7684\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code># curl -sSL https:\/\/get.docker.io | bash\r\n# docker --version\r\nDocker version 17.03.0-ce, build 60ccb22\r\n<\/code><\/pre>\n<p>\u5982\u679c\u89c9\u5f97\u7248\u672c\u6807\u8bb0\u6709\u4e9b\u5947\u602a\uff0c\u90a3\u4e48\u770b\u6765\u4ece2017\u5e743\u6708\u7684\u53d1\u5e03\u8d77\u5df2\u7ecf\u6539\u53d8\u4e86\u3002<\/p>\n<p>\u5c06docker-engine\u6ce8\u518c\u5230systemd\u3002<\/p>\n<pre class=\"post-pre\"><code># mkdir -p \/etc\/systemd\/system\/docker.service.d\r\n# tee \/etc\/systemd\/system\/docker.service.d\/kolla.conf &lt;&lt;-'EOF'\r\n[Service]\r\nMountFlags=shared\r\nEOF\r\n\r\n# systemctl daemon-reload\r\n# systemctl restart docker\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\u662fDocker Python\u7684\u5b89\u88c5\u3002\u540c\u6837\u8fdb\u884c\u5347\u7ea7\u3002<\/p>\n<pre class=\"post-pre\"><code># yum install python-docker-py\r\n# pip install -U docker-py\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u5b89\u88c5NTP\u3002<\/p>\n<pre class=\"post-pre\"><code># yum install ntp\r\n# systemctl enable ntpd.service\r\n# systemctl start ntpd.service\r\n\r\n# ntpq -p\r\n     remote           refid      st t when poll reach   delay   offset  jitter\r\n==============================================================================\r\n x.ns.gin.ntt.ne 249.224.99.213   2 u    1   64    1   48.796  -15.726   0.902\r\n r031229.203112. 203.112.1.4      4 u    -   64    1   28.593    6.632  11.210\r\n 153-128-30-125. 133.243.238.243  2 u    1   64    1   18.442   -3.141   0.000\r\n sv01.azsx.net   10.84.87.146     2 u    -   64    1   12.920   -2.351   0.000\r\n<\/code><\/pre>\n<p>\u5f53Libvirtd\u6b63\u5728\u8fd0\u884c\u65f6\uff0c\u9700\u8981\u5c06\u5176\u505c\u6b62\u3002<\/p>\n<pre class=\"post-pre\"><code># systemctl stop libvirtd.service\r\n# systemctl disable libvirtd.service\r\n<\/code><\/pre>\n<p>\u4e5f\u4e0d\u8981\u5fd8\u4e86\u5c06\u4e3b\u673a\u6dfb\u52a0\u5230\u5217\u8868\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4\r\n::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\r\n10.0.2.15   koollaEvSV       KollaEvSV\r\n<\/code><\/pre>\n<h2>Kolla \u90e8\u7f72\u597d\u5566\uff0c\u7ec8\u4e8e\u53ef\u4ee5\u5f00\u59cb\u5904\u7406Kolla\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code># pip install kolla-ansible\r\n<\/code><\/pre>\n<p>\u5c06globals.yml\u548cpasswords.yml\u590d\u5236\u5230\/etc\/kolla\/\u3002<\/p>\n<pre class=\"post-pre\"><code># cp -r \/usr\/share\/kolla-ansible\/etc_examples\/kolla \/etc\/kolla\/\r\n<\/code><\/pre>\n<p>\u5c06\u5e93\u5b58\u6587\u4ef6\u590d\u5236\u5230\u5f53\u524d\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>cp \/usr\/share\/kolla-ansible\/ansible\/inventory\/* .\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u8fdb\u884c\u63a5\u53e3\u8bbe\u7f6e\uff0c\u7f16\u8f91\/etc\/kolla\/globals.yml\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>network_interface: \"eth0\"\r\nneutron_external_interface: \"eth1\"\r\n<\/code><\/pre>\n<p>\u8bf7\u4f7f\u7528 kolla-genpwd \u8fdb\u884c\u5bc6\u7801\u751f\u6210\u3002\u751f\u6210\u7ed3\u679c\u5c06\u4fdd\u5b58\u5728 \/etc\/kolla\/passwords.yml \u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>kolla-genpwd\r\n<\/code><\/pre>\n<p>\u597d\u4e86\uff0c\u5230\u8fd9\u91cc\u4e3b\u673a\u7684\u51c6\u5907\u5de5\u4f5c\u5c31\u5b8c\u6210\u4e86\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u76f8\u5f53\u7e41\u7410\uff0c\u662f\u5427\u3002\u9488\u5bf9\u8fd9\u79cd\u60c5\u51b5\uff0c\u6211\u542c\u8bf4\u53ef\u4ee5\u4f7f\u7528\u547d\u4ee4 kolla-ansible -i &lt;&gt; bootstrap-servers \u8fdb\u884c\u5feb\u901f\u8bbe\u7f6e\u3002\u771f\u5e0c\u671b\u5f53\u521d\u80fd\u77e5\u9053\u8fd9\u4e2a\u547d\u4ee4\uff01<\/p>\n<h2>\u6784\u5efa\u5bb9\u5668\u955c\u50cf<br \/>\n\u8bf7\u7f16\u8f91\/etc\/systemd\/system\/docker.service.d\/kolla.conf\u6587\u4ef6\uff0c\u5e76\u8fdb\u884c\u4ee5\u4e0b\u66f4\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code>[Service]\r\nMountFlags=shared\r\nExecStart=\r\nExecStart=\/usr\/bin\/docker daemon --mtu 1400\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code># systemctl daemon-reload\r\n# systemctl restart docker\r\n<\/code><\/pre>\n<p>\u4eceDocker\u955c\u50cf\u4e2d\u62c9\u53d6\u3002<\/p>\n<pre class=\"post-pre\"><code># kolla-ansible pull\r\n# docker images\r\nREPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE\r\nkolla\/centos-binary-neutron-server              4.0.0               8dedaf87d819        31 hours ago        727 MB\r\nkolla\/centos-binary-nova-compute                4.0.0               35da27fc5586        31 hours ago        1.23 GB\r\nkolla\/centos-binary-neutron-openvswitch-agent   4.0.0               d276dcdfcbb6        31 hours ago        727 MB\r\nkolla\/centos-binary-neutron-metadata-agent      4.0.0               e1c0bf5f7745        31 hours ago        703 MB\r\nkolla\/centos-binary-heat-api                    4.0.0               66332a0e6ad4        31 hours ago        644 MB\r\nkolla\/centos-binary-neutron-dhcp-agent          4.0.0               445442cd0f01        31 hours ago        703 MB\r\nkolla\/centos-binary-neutron-l3-agent            4.0.0               445442cd0f01        31 hours ago        703 MB\r\nkolla\/centos-binary-heat-api-cfn                4.0.0               ce92766d3ff1        31 hours ago        644 MB\r\nkolla\/centos-binary-nova-ssh                    4.0.0               3b0f5591ecc8        31 hours ago        723 MB\r\nkolla\/centos-binary-nova-placement-api          4.0.0               8a16c227e835        31 hours ago        755 MB\r\nkolla\/centos-binary-nova-conductor              4.0.0               65a844b9889e        31 hours ago        703 MB\r\nkolla\/centos-binary-nova-api                    4.0.0               d90b06229654        31 hours ago        755 MB\r\nkolla\/centos-binary-nova-consoleauth            4.0.0               487d0b6926d3        31 hours ago        704 MB\r\nkolla\/centos-binary-nova-scheduler              4.0.0               92bdcfc854ac        31 hours ago        703 MB\r\nkolla\/centos-binary-nova-novncproxy             4.0.0               7f246ab0d8f5        31 hours ago        704 MB\r\nkolla\/centos-binary-kolla-toolbox               4.0.0               d771b993a59b        31 hours ago        730 MB\r\nkolla\/centos-binary-keystone                    4.0.0               9b0c48681973        31 hours ago        677 MB\r\nkolla\/centos-binary-glance-registry             4.0.0               68da81d330c4        31 hours ago        757 MB\r\nkolla\/centos-binary-horizon                     4.0.0               dc5a666631eb        31 hours ago        863 MB\r\nkolla\/centos-binary-haproxy                     4.0.0               420fb3e8ce55        31 hours ago        439 MB\r\nkolla\/centos-binary-cron                        4.0.0               74a89fe112f0        31 hours ago        418 MB\r\nkolla\/centos-binary-openvswitch-db-server       4.0.0               37f21379cad8        31 hours ago        440 MB\r\nkolla\/centos-binary-heat-engine                 4.0.0               ab9138c4719c        31 hours ago        644 MB\r\nkolla\/centos-binary-glance-api                  4.0.0               bc61de7fba03        31 hours ago        816 MB\r\nkolla\/centos-binary-fluentd                     4.0.0               5b98e39f1285        31 hours ago        720 MB\r\nkolla\/centos-binary-nova-libvirt                4.0.0               b21c5bacfbcf        31 hours ago        966 MB\r\nkolla\/centos-binary-openvswitch-vswitchd        4.0.0               b047dd6e83cd        31 hours ago        440 MB\r\nkolla\/centos-binary-memcached                   4.0.0               927246be7bd2        31 hours ago        418 MB\r\nkolla\/centos-binary-rabbitmq                    4.0.0               c9e9af5a39b9        31 hours ago        477 MB\r\nkolla\/centos-binary-mariadb                     4.0.0               7c9305397257        31 hours ago        808 MB\r\nkolla\/centos-binary-keepalived                  4.0.0               b8fb9f966ac4        31 hours ago        423 MB\r\n\r\n<\/code><\/pre>\n<p>\u63d0\u4f9b\u4e86\u5927\u7ea631\u4e2a\u9884\u8bbe\u7684\u56fe\u50cf\uff0c\u8fd9\u4e9b\u56fe\u50cf\u53ea\u9700\u8fd0\u884cdocker run\u547d\u4ee4\u5c31\u53ef\u4ee5\u5de5\u4f5c\uff0c\u771f\u662f\u4ee4\u4eba\u5fc3\u6f6e\u6f8e\u6e43\u554a\u3002<\/p>\n<p>\u7ee7\u7eed\u8fdb\u884c\u8bbe\u7f6e\u3002\u8bf7\u8fd4\u56de\u7f16\u8f91\/etc\/kolla\/globals.yml\u6587\u4ef6\uff0c\u5e76\u8bbe\u7f6ekolla_internal_vip_address\u7684\u503c\u3002\u8bf7\u6307\u5b9a\u540c\u4e00\u5b50\u7f51\u4e2d\u672a\u4f7f\u7528\u7684\u5730\u5740\u3002<\/p>\n<pre class=\"post-pre\"><code>kolla_internal_vip_address: \"10.0.2.16\"\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c\u8bf7\u786e\u8ba4\u865a\u62df\u5316\u786c\u4ef6\u52a0\u901f\u7684\u652f\u6301\u60c5\u51b5\u3002\u7531\u4e8e\u8fd4\u56de\u7684\u662f\u96f6\uff0c\u56e0\u6b64\u6211\u4eec\u5c06\u4f7f\u7528 Nova \u6765\u4f7f\u7528 QEMU\u3002<\/p>\n<pre class=\"post-pre\"><code># egrep -c '(vmx|svm)' \/proc\/cpuinfo\r\n0\r\n# mkdir -p \/etc\/kolla\/config\/nova\r\n# cat &lt;&lt; EOF &gt; \/etc\/kolla\/config\/nova\/nova-compute.conf\r\n[libvirt]\r\nvirt_type = qemu\r\ncpu_mode = none\r\nEOF\r\n<\/code><\/pre>\n<h2>\u7ec8\u4e8e\u90e8\u7f72\u5b8c\u6210\u4e86\u2026\u2026\u4e0d\u8fc7<br \/>\n\u51c6\u5907\u5de5\u4f5c\u57fa\u672c\u5b8c\u6210\u4e86\u3002\u4f46\u662f\uff0c\u4e0d\u80fd\u5fd8\u8bb0\u7684\u662f\u8fd9\u6b21\u73af\u5883\u7684\u4e0d\u7a33\u5b9a\u6027\u3002\u5982\u679c\u7ee7\u7eed\u90e8\u7f72\uff0c\u80af\u5b9a\u4f1a\u53d1\u751f\u4e0d\u6109\u5feb\u7684\u4e8b\u60c5\u3002\u67e5\u770b\u63a7\u5236\u90e8\u7f72\u7684\u811a\u672c\uff0c\u4f3c\u4e4e\u662f\u901a\u8fc7\u68c0\u67e5 \/etc\/kolla\/globals.yml \u6587\u4ef6\u6765\u8fdb\u884c\u8bbe\u7f6e\u3002\u8ba9\u6211\u6309\u7167\u6211\u7684\u4e3b\u89c2\u610f\u89c1\u5c06\u6b64\u5904\u7684\u63cf\u8ff0\u6700\u5c0f\u5316\u8bd5\u8bd5\u770b\u3002<\/p>\n<p>\u6211\u653e\u7f6e\u4e86\u7f16\u8f91\u8fc7\u7684globals.yml\u6587\u4ef6\u5728\u8fd9\u91cc\uff0c\u8bf7\u53c2\u8003\u4e00\u4e0b\u3002<\/p>\n<p>\u5728\u4f7f\u7528kolla-ansible\u7684prechecks\u529f\u80fd\u65f6\uff0c\u6211\u4eec\u4f1a\u5bf9\u4e4b\u524d\u7684\u914d\u7f6e\u548c\u73af\u5883\u8fdb\u884c\u786e\u8ba4\u3002\u5c3d\u7ba1\u53ef\u80fd\u4f1a\u51fa\u73b0\u8bb8\u591a\u9519\u8bef\uff0c\u4f46\u6211\u4eec\u9700\u8981\u9010\u4e00\u89e3\u51b3\u5b83\u4eec\u3002\u53ea\u5269\u4e0b\u4e00\u70b9\u70b9\u4e86\uff01<\/p>\n<pre class=\"post-pre\"><code>kolla-ansible prechecks -i all-in-one\r\n(...)\r\nPLAY RECAP *********************************************************************\r\nlocalhost                  : ok=126  changed=0    unreachable=0    failed=0  \r\n<\/code><\/pre>\n<p>\u592a\u68d2\u4e86\uff0c\u901a\u904e\u4e86\uff01\u7acb\u5373\u90e8\u7f72\u5427\u3002<\/p>\n<h2>OpenStack Kolla\u7684\u90e8\u7f72\u90a3\u6211\u4eec\u7acb\u5373\u6765\u8bd5\u8bd5\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>kolla-ansible deploy -i all-in-one\r\n(...)\r\nPLAY RECAP *********************************************************************\r\nlocalhost                  : ok=265  changed=116  unreachable=0    failed=0\r\n<\/code><\/pre>\n<p>\u771f\u662f\u51fa\u4e4e\u610f\u6599\u7684\u5feb\u554a\u3002\u867d\u7136\u53ea\u662f\u4e3b\u89c2\u611f\u53d7\uff0c\u5927\u7ea6\u53ea\u9700\u51e0\u5206\u949f\u3002\u5982\u679c\u5728\u90e8\u7f72\u65f6\u51fa\u73b0\u95ee\u9898\uff0c\u53ef\u80fd\u8fd8\u53ef\u4ee5\u4f5c\u4e3a\u4e00\u79cd\u5b9e\u9645\u7684\u56de\u9000\u65b9\u6848\u3002<\/p>\n<pre class=\"post-pre\"><code># docker ps\r\nCONTAINER ID        IMAGE                                                 COMMAND             CREATED             STATUS              PORTS               NAMES\r\n660109e1c5a1        kolla\/centos-binary-horizon:4.0.0                     \"kolla_start\"       2 minutes ago       Up 2 minutes                            horizon\r\n065a055bb5f1        kolla\/centos-binary-heat-engine:4.0.0                 \"kolla_start\"       3 minutes ago       Up 3 minutes                            heat_engine\r\n83c25517a69f        kolla\/centos-binary-heat-api-cfn:4.0.0                \"kolla_start\"       3 minutes ago       Up 3 minutes                            heat_api_cfn\r\n6455729f0915        kolla\/centos-binary-heat-api:4.0.0                    \"kolla_start\"       3 minutes ago       Up 3 minutes                            heat_api\r\n2c39a5fb949a        kolla\/centos-binary-neutron-metadata-agent:4.0.0      \"kolla_start\"       5 minutes ago       Up 5 minutes                            neutron_metadata_agent\r\n6fc7abebd4f4        kolla\/centos-binary-neutron-l3-agent:4.0.0            \"kolla_start\"       5 minutes ago       Up 5 minutes                            neutron_l3_agent\r\n8d82d1231d27        kolla\/centos-binary-neutron-dhcp-agent:4.0.0          \"kolla_start\"       5 minutes ago       Up 5 minutes                            neutron_dhcp_agent\r\n1a19cb1b3711        kolla\/centos-binary-neutron-openvswitch-agent:4.0.0   \"kolla_start\"       5 minutes ago       Up 5 minutes                            neutron_openvswitch_agent\r\n2b9cad419219        kolla\/centos-binary-neutron-server:4.0.0              \"kolla_start\"       5 minutes ago       Up 5 minutes                            neutron_server\r\n9bce73422ce5        kolla\/centos-binary-openvswitch-vswitchd:4.0.0        \"kolla_start\"       5 minutes ago       Up 5 minutes                            openvswitch_vswitchd\r\n89964bb13a96        kolla\/centos-binary-openvswitch-db-server:4.0.0       \"kolla_start\"       5 minutes ago       Up 5 minutes                            openvswitch_db\r\n80ec59644b0e        kolla\/centos-binary-nova-compute:4.0.0                \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_compute\r\n51be30d1fe3b        kolla\/centos-binary-nova-novncproxy:4.0.0             \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_novncproxy\r\ne1c15eb9ff6d        kolla\/centos-binary-nova-consoleauth:4.0.0            \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_consoleauth\r\na1a8b9c91efa        kolla\/centos-binary-nova-conductor:4.0.0              \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_conductor\r\n9a9c023fd765        kolla\/centos-binary-nova-scheduler:4.0.0              \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_scheduler\r\n0415d5f8088e        kolla\/centos-binary-nova-api:4.0.0                    \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_api\r\neca65fa6a8e9        kolla\/centos-binary-nova-placement-api:4.0.0          \"kolla_start\"       8 minutes ago       Up 8 minutes                            placement_api\r\n23819b965280        kolla\/centos-binary-nova-libvirt:4.0.0                \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_libvirt\r\n138bf2fe6cd7        kolla\/centos-binary-nova-ssh:4.0.0                    \"kolla_start\"       8 minutes ago       Up 8 minutes                            nova_ssh\r\nf6836459471d        kolla\/centos-binary-glance-registry:4.0.0             \"kolla_start\"       10 minutes ago      Up 10 minutes                           glance_registry\r\ncd24476d69bb        kolla\/centos-binary-glance-api:4.0.0                  \"kolla_start\"       10 minutes ago      Up 10 minutes                           glance_api\r\n68e4de29feb1        kolla\/centos-binary-keystone:4.0.0                    \"kolla_start\"       11 minutes ago      Up 11 minutes                           keystone\r\n2934bf820687        kolla\/centos-binary-rabbitmq:4.0.0                    \"kolla_start\"       11 minutes ago      Up 11 minutes                           rabbitmq\r\n1f1645be9e37        kolla\/centos-binary-mariadb:4.0.0                     \"kolla_start\"       12 minutes ago      Up 12 minutes                           mariadb\r\n9a7fd746ba07        kolla\/centos-binary-memcached:4.0.0                   \"kolla_start\"       12 minutes ago      Up 12 minutes                           memcached\r\na5e0fb64ebc7        kolla\/centos-binary-keepalived:4.0.0                  \"kolla_start\"       13 minutes ago      Up 13 minutes                           keepalived\r\n9c818d0b52fb        kolla\/centos-binary-haproxy:4.0.0                     \"kolla_start\"       13 minutes ago      Up 13 minutes                           haproxy\r\n5a126c7b600c        kolla\/centos-binary-cron:4.0.0                        \"kolla_start\"       30 minutes ago      Up 30 minutes                           cron\r\n3677d3d6420a        kolla\/centos-binary-kolla-toolbox:4.0.0               \"kolla_start\"       30 minutes ago      Up 30 minutes                           kolla_toolbox\r\n425bf226015c        kolla\/centos-binary-fluentd:4.0.0                     \"kolla_start\"       30 minutes ago      Up 30 minutes                           fluentd\r\n<\/code><\/pre>\n<h2>\u5c1d\u8bd5\u4f7f\u7528\u5df2\u90e8\u7f72\u7684\u73af\u5883<br \/>\n\u4e3a\u4e86\u4f7f\u7528\u65b0\u6784\u5efa\u7684\u73af\u5883\uff0c\u6211\u4eec\u5c06\u751f\u6210\u4e00\u4e2a\u7528\u4e8e\u8fdb\u884c\u53d8\u91cf\u8bbe\u7f6e\u7b49\u64cd\u4f5c\u7684shell\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kolla-ansible post-deploy\r\n$ . \/etc\/kolla\/admin-openrc.sh\r\n$ env | grep OS_\r\nOS_USER_DOMAIN_NAME=default\r\nOS_PROJECT_NAME=admin\r\nOS_IDENTITY_API_VERSION=3\r\nOS_PASSWORD=UwK9kID4v7AQe4ISvILhkSZ1MvRk83fXexJ7RzCf\r\nOS_AUTH_URL=http:\/\/10.0.2.16:35357\/v3\r\nOS_USERNAME=admin\r\nOS_TENANT_NAME=admin\r\nOS_INTERFACE=internal\r\nOS_PROJECT_DOMAIN_NAME=default\r\n<\/code><\/pre>\n<p>\u5982\u679c\u6ca1\u6709\u5b89\u88c5OpenStack\u5ba2\u6237\u7aef\uff0c\u5c31\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code>pip install python-openstackclient\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u73af\u5883\u65e2\u6ca1\u6709\u5473\u9053\u4e5f\u6ca1\u6709\u5f62\u8c61\uff0c\u6240\u4ee5\u968f\u4fbf\u5f04\u4e00\u4e2a\u2026\u2026\u3002<\/p>\n<pre class=\"post-pre\"><code>$ nova boot --flavor m1.extra_tiny --image cirros test\r\n+--------------------------------------+------------------------------------------------------+\r\n| Property                             | Value                                                |\r\n+--------------------------------------+------------------------------------------------------+\r\n| OS-DCF:diskConfig                    | MANUAL                                               |\r\n| OS-EXT-AZ:availability_zone          |                                                      |\r\n| OS-EXT-SRV-ATTR:host                 | -                                                    |\r\n| OS-EXT-SRV-ATTR:hostname             | test                                                 |\r\n| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                                    |\r\n| OS-EXT-SRV-ATTR:instance_name        |                                                      |\r\n| OS-EXT-SRV-ATTR:kernel_id            |                                                      |\r\n| OS-EXT-SRV-ATTR:launch_index         | 0                                                    |\r\n| OS-EXT-SRV-ATTR:ramdisk_id           |                                                      |\r\n| OS-EXT-SRV-ATTR:reservation_id       | r-o71a4xpx                                           |\r\n| OS-EXT-SRV-ATTR:root_device_name     | -                                                    |\r\n| OS-EXT-SRV-ATTR:user_data            | -                                                    |\r\n| OS-EXT-STS:power_state               | 0                                                    |\r\n| OS-EXT-STS:task_state                | scheduling                                           |\r\n| OS-EXT-STS:vm_state                  | building                                             |\r\n| OS-SRV-USG:launched_at               | -                                                    |\r\n| OS-SRV-USG:terminated_at             | -                                                    |\r\n| accessIPv4                           |                                                      |\r\n| accessIPv6                           |                                                      |\r\n| adminPass                            | 79ZaWp3SUyps                                         |\r\n| config_drive                         |                                                      |\r\n| created                              | 2017-03-20T03:26:56Z                                 |\r\n| description                          | -                                                    |\r\n| flavor                               | m1.extra_tiny (db60905a-05b6-404d-959a-f8c2a047ddfd) |\r\n| hostId                               |                                                      |\r\n| host_status                          |                                                      |\r\n| id                                   | b956fb98-2295-45da-937c-96275924371e                 |\r\n| image                                | cirros (76898c08-10b7-4e49-812c-fa518cc60c51)        |\r\n| key_name                             | -                                                    |\r\n| locked                               | False                                                |\r\n| metadata                             | {}                                                   |\r\n| name                                 | test                                                 |\r\n| os-extended-volumes:volumes_attached | []                                                   |\r\n| progress                             | 0                                                    |\r\n| security_groups                      | default                                              |\r\n| status                               | BUILD                                                |\r\n| tags                                 | []                                                   |\r\n| tenant_id                            | 4faa7e528627446781136e9db40ed168                     |\r\n| updated                              | 2017-03-20T03:26:57Z                                 |\r\n| user_id                              | 90bf61329d924ca485a68bc18fd4db4a                     |\r\n+--------------------------------------+------------------------------------------------------+\r\n<\/code><\/pre>\n<p>\u51fa\u73b0\u4e86\uff01<\/p>\n<h1>\u6700\u540e<br \/>\n\u4f7f\u7528Kolla\u90e8\u7f72OpenStack\u5927\u7ea6\u82b1\u4e8610\u4e2a\u5c0f\u65f6\u3002\u5982\u679c\u719f\u6089Ansible\u548cOpenStack\u7684\u4eba\uff0c\u5e94\u8be5\u53ef\u4ee5\u66f4\u5feb\u8fd0\u884c\u3002\u81f3\u4e8e\u8fd9\u6b21\u4e3b\u9898\uff0c\u6210\u529f\u5728\u6027\u80fd\u8f83\u5dee\u7684Macbook Air\u4e0a\u4f7f\u7528Kolla\u90e8\u7f72\u4e86OpenStack\u3002\u6211\u8ba4\u4e3a\u5373\u4f7f\u662f\u5728DevStack\u4e0a\uff0c\u4e5f\u4f1a\u6709\u8d44\u6e90\u65b9\u9762\u7684\u56f0\u96be\uff0c\u4f46\u53ea\u9650\u5236\u5728\u6700\u4f4e\u9650\u5ea6\u7684\u60c5\u51b5\u4e0b\uff0c\u662f\u5426\u53ef\u4ee5\u8fd0\u884c\u5462\uff1f<\/p>\n<p>\u65e0\u8bba\u5982\u4f55\uff0c\u6211\u5bf9Kolla\u7684\u672a\u6765\u6709\u5f88\u9ad8\u7684\u671f\u671b\u3002<\/p>\n<p>\u6f33\u5dde\u5c71\u5730\u8d28\u5b66\u9662\u88ab\u79f0\u4e3a\u201c\u5168\u56fd\u77ff\u4e1a\u7c7b\u9662\u6821\u4e4b\u82b1\u201d\uff0c\u53c8\u56e0\u201c\u5c71\u57ce\u6c5f\u4e1c\u3001\u7164\u90fd\u7efc\u5408\u4f53\u201d\u8457\u79f0\uff1b\u662f\u798f\u5efa\u7701\u91cd\u70b9\u652f\u6301\u53d1\u5c55\u7684\u4f18\u52bf\u5b66\u79d1\u5b66\u6821\uff0c2019\u5e74\u5165\u9009\u798f\u5efa\u7701\u9ad8\u6c34\u5e73\u5927\u5b66\u884c\u5217\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6253\u5f00\u5806\u6808\u4e0e\u5bb9\u5668OpenStack\u5df2\u7ecf\u663e\u793a\u51fa\u4e86\u76f8\u5f53\u67af\u71e5\u7684\u6c1b\u56f4\u3002 \u5728\u6bcf\u5e74\u4e24\u6b21\u7684OpenStack Summit\u4e2d\uff0c [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-26493","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-227"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5728macbook-air\u4e0a\u5b89\u88c5\u4e86openstack-kolla\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5728macbook-air\u4e0a\u5b89\u88c5\u4e86openstack-kolla\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-04T15:57:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-11T13:33:39+00:00\" \/>\n<meta name=\"author\" content=\"\u9038, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u9038, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/\",\"name\":\"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2024-01-04T15:57:09+00:00\",\"dateModified\":\"2025-08-11T13:33:39+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\"},\"description\":\"\u5173\u4e8e\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\",\"name\":\"\u9038, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"caption\":\"\u9038, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla - Blog - Silicon Cloud","description":"\u5173\u4e8e\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\u7684\u6280\u672f\u6587\u7ae0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5728macbook-air\u4e0a\u5b89\u88c5\u4e86openstack-kolla\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla","og_description":"\u5173\u4e8e\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c1d\u8bd5\u5728macbook-air\u4e0a\u5b89\u88c5\u4e86openstack-kolla\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2024-01-04T15:57:09+00:00","article_modified_time":"2025-08-11T13:33:39+00:00","author":"\u9038, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u9038, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/","name":"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2024-01-04T15:57:09+00:00","dateModified":"2025-08-11T13:33:39+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487"},"description":"\u5173\u4e8e\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6211\u5c1d\u8bd5\u5728Macbook Air\u4e0a\u5b89\u88c5\u4e86OpenStack Kolla"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487","name":"\u9038, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","caption":"\u9038, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%9d%e8%af%95%e5%9c%a8macbook-air%e4%b8%8a%e5%ae%89%e8%a3%85%e4%ba%86openstack-kolla%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=26493"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26493\/revisions"}],"predecessor-version":[{"id":110984,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26493\/revisions\/110984"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=26493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=26493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=26493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}