{"id":28376,"date":"2023-09-18T00:47:09","date_gmt":"2023-12-14T06:22:48","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/"},"modified":"2025-08-12T07:49:56","modified_gmt":"2025-08-11T23:49:56","slug":"%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/","title":{"rendered":"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker"},"content":{"rendered":"<h1>\u73af\u5883<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Tacker\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u74b0\u5883<\/ul>\n<\/li>\n<\/ul>\n<p>OpenStack\u4e0a\u306eVM<\/p>\n<p>OpenStack\u306e\u69cb\u7bc9\u306b\u95a2\u3057\u3066\u306f\u4ee5\u4e0b\u8a18\u4e8b\u3092\u53c2\u7167\uff08\u305f\u3060\u3057\u3001\u4ee5\u4e0b\u306e\u4f5c\u696d\u8a18\u9332\u306b\u306fHeat\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u542b\u307e\u308c\u306a\u3044\uff09<\/p>\n<p>https:\/\/qiita.com\/nakkoh\/items\/cdc0912e7d8b0f1088b7<\/p>\n<p>OS: Centos 8.5<br \/>\n\u30d7\u30ed\u30ad\u30b7\u74b0\u5883<\/p>\n<h1>\u5de5\u4f5c\u65e5\u5fd7\u8bf7\u6309\u7167\u516c\u5f0f\u6587\u6863\u7684\u6307\u5f15\u8fdb\u884c\u5b89\u88c5\u3002<br \/>\nhttps:\/\/docs.openstack.org\/tacker\/latest\/install\/kolla.html<\/p>\n<h2>\u4e8b\u5148\u51c6\u5907dnf\u7684\u4ee3\u7406\u670d\u52a1\u5668\u8bbe\u7f6e<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ sudo vi \/etc\/dnf\/dnf.conf\r\n[centos@tacker ~]$ cat \/etc\/dnf\/dnf.conf \r\n[main]\r\n\r\n...\r\n\r\nproxy=http:\/\/172.16.184.1:63128\/\r\n<\/code><\/pre>\n<p>\u5728\u4e2d\u6587\u4e2d\uff0c\u53ea\u9700\u8981\u4e00\u79cd\u9009\u9879\uff1a<br \/>\n\u5b89\u88c5git\u548cvim\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ sudo  dnf install git vim\r\n\r\n...\r\n\r\nComplete!\r\n<\/code><\/pre>\n<p>\u7981\u7528SELinux\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker kolla-ansible]$  sudo setenforce 0\r\n[centos@tacker kolla-ansible]$ getenforce\r\nPermissive\r\n[centos@tacker kolla-ansible]$ sudo vim \/etc\/selinux\/config\r\n[centos@tacker kolla-ansible]$ cat \/etc\/selinux\/config \r\n\r\n...\r\n\r\nSELINUX=disabled\r\n\r\n...\r\n\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5 Kola Ansible<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ https_proxy=http:\/\/172.16.184.1:63128\/ git clone https:\/\/github.com\/openstack\/kolla-ansible.git -b stable\/ussuri\r\nCloning into 'kolla-ansible'...\r\nremote: Enumerating objects: 135539, done.\r\nremote: Counting objects: 100% (13547\/13547), done.\r\nremote: Compressing objects: 100% (4693\/4693), done.\r\nremote: Total 135539 (delta 8350), reused 12532 (delta 7814), pack-reused 121992\r\nReceiving objects: 100% (135539\/135539), 24.25 MiB | 8.91 MiB\/s, done.\r\nResolving deltas: 100% (89055\/89055), done.\r\n[centos@tacker ~]$ cd kolla-ansible\/\r\n[centos@tacker kolla-ansible]$ sudo dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux\r\n\r\n...\r\n\r\n[centos@tacker kolla-ansible]$ sudo pip3 install --proxy=http:\/\/172.16.184.1:63128\/ -r requirements.txt\r\n\r\n...\r\n\r\n[centos@tacker kolla-ansible]$ sudo python3 setup.py install\r\n\r\n...\r\n\r\n[centos@tacker kolla-ansible]$ sudo dnf config-manager --add-repo https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\r\nAdding repo from: https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\r\n[centos@tacker kolla-ansible]$ sudo dnf install https:\/\/download.docker.com\/linux\/centos\/7\/x86_64\/stable\/Packages\/containerd.io-1.2.6-3.3.el7.x86_64.rpm\r\n\r\n...\r\n\r\nComplete!\r\n[centos@tacker kolla-ansible]$ sudo dnf install docker-ce docker-ce-cli\r\n\r\n...\r\n\r\nComplete!\r\n[centos@tacker kolla-ansible]$ sudo systemctl enable docker\r\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/docker.service \u2192 \/usr\/lib\/systemd\/system\/docker.service.\r\n[centos@tacker kolla-ansible]$ sudo systemctl restart docker\r\n[centos@tacker kolla-ansible]$ sudo pip3 install --proxy=http:\/\/172.16.184.1:63128\/ 'ansible&lt;2.10'\r\n\r\n...\r\n\r\nSuccessfully installed ansible-2.9.27\r\n[centos@tacker kolla-ansible]$ sudo pip3 install docker --proxy=http:\/\/172.16.184.1:63128\/\r\n\r\n...\r\n\r\nSuccessfully installed docker-5.0.3 websocket-client-1.2.3\r\n<\/code><\/pre>\n<p>\u4f7fCentOS\u7528\u6237\u80fd\u6267\u884cDocker\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker kolla-ansible]$ sudo usermod -g docker cento\r\n\r\n\uff08\u30ed\u30b0\u30a4\u30f3\u3057\u76f4\u3059\uff09\r\n\r\n[centos@tacker kolla-ansible]$ docker version\r\nClient: Docker Engine - Community\r\n Version:           20.10.12\r\n\r\n...\r\n\r\n<\/code><\/pre>\n<p>Docker\u7684\u4ee3\u7406\u670d\u52a1\u5668\u8bbe\u7f6e<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker kolla-ansible]$ sudo mkdir \/etc\/systemd\/system\/docker.service.d\r\n[centos@tacker kolla-ansible]$ http_proxy=http:\/\/172.16.184.1:63128\/\r\n[centos@tacker kolla-ansible]$ cat &lt;&lt;EOF | sudo tee \/etc\/systemd\/system\/docker.service.d\/http-proxy.conf\r\n&gt; [Service]\r\n&gt; Environment=\"HTTP_PROXY=${http_proxy}\"\r\n&gt; Environment=\"HTTPS_PROXY=${http_proxy}\"\r\n&gt; EOF\r\n[Service]\r\nEnvironment=\"HTTP_PROXY=http:\/\/172.16.184.1:63128\/\"\r\nEnvironment=\"HTTPS_PROXY=http:\/\/172.16.184.1:63128\/\"\r\n[centos@tacker kolla-ansible]$ sudo systemctl daemon-reload\r\n[centos@tacker kolla-ansible]$ sudo systemctl restart docker.service\r\n[centos@tacker kolla-ansible]$ docker info |grep -i proxy\r\n HTTP Proxy: http:\/\/172.16.184.1:63128\/\r\n HTTPS Proxy: http:\/\/172.16.184.1:63128\/\r\n[centos@tacker kolla-ansible]$ docker pull nginx\r\nUsing default tag: latest\r\n\r\n...\r\n\r\nStatus: Downloaded newer image for nginx:latest\r\ndocker.io\/library\/nginx:latest\r\n<\/code><\/pre>\n<h2>Tacker\u7684\u5b89\u88c5<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker kolla-ansible]$ sudo mkdir \/etc\/kolla\r\n[centos@tacker kolla-ansible]$ cp etc\/kolla\/globals.yml \/etc\/kolla\/\r\n[centos@tacker kolla-ansible]$ sudo cp etc\/kolla\/globals.yml \/etc\/kolla\/\r\n[centos@tacker kolla-ansible]$ sudo vim \/etc\/kolla\/globals.yml \r\n[centos@tacker kolla-ansible]$ diff etc\/kolla\/globals.yml \/etc\/kolla\/globals.yml \r\n34c34\r\n&lt; #kolla_install_type: \"binary\"\r\n---\r\n&gt; kolla_install_type: \"source\"\r\n53c53\r\n&lt; #kolla_internal_vip_address: \"10.10.10.254\"\r\n---\r\n&gt; kolla_internal_vip_address: \"10.0.0.178\"\r\n85c85\r\n&lt; #docker_namespace: \"kolla\"\r\n---\r\n&gt; docker_namespace: \"kolla\"\r\n243,244c243,244\r\n&lt; #enable_glance: \"{{ enable_openstack_core | bool }}\"\r\n&lt; #enable_haproxy: \"yes\"\r\n---\r\n&gt; enable_glance: \"no\"\r\n&gt; enable_haproxy: \"no\"\r\n246,250c246,250\r\n&lt; #enable_keystone: \"{{ enable_openstack_core | bool }}\"\r\n&lt; #enable_mariadb: \"yes\"\r\n&lt; #enable_memcached: \"yes\"\r\n&lt; #enable_neutron: \"{{ enable_openstack_core | bool }}\"\r\n&lt; #enable_nova: \"{{ enable_openstack_core | bool }}\"\r\n---\r\n&gt; enable_keystone: \"yes\"\r\n&gt; enable_mariadb: \"yes\"\r\n&gt; enable_memcached: \"yes\"\r\n&gt; enable_neutron: \"no\"\r\n&gt; enable_nova: \"no\"\r\n256c256\r\n&lt; #enable_barbican: \"no\"\r\n---\r\n&gt; enable_barbican: \"yes\"\r\n284,285c284,285\r\n&lt; #enable_heat: \"{{ enable_openstack_core | bool }}\"\r\n&lt; #enable_horizon: \"{{ enable_openstack_core | bool }}\"\r\n---\r\n&gt; enable_heat: \"no\"\r\n&gt; enable_horizon: \"yes\"\r\n308c308\r\n&lt; #enable_horizon_tacker: \"{{ enable_tacker | bool }}\"\r\n---\r\n&gt; enable_horizon_tacker: \"{{ enable_tacker | bool }}\"\r\n332c332\r\n&lt; #enable_mistral: \"no\"\r\n---\r\n&gt; enable_mistral: \"yes\"\r\n353c353\r\n&lt; #enable_openvswitch: \"{{ enable_neutron | bool and neutron_plugin_agent != 'linuxbridge' }}\"\r\n---\r\n&gt; enable_openvswitch: \"no\"\r\n372c372\r\n&lt; #enable_tacker: \"no\"\r\n---\r\n&gt; enable_tacker: \"yes\"\r\n[centos@tacker kolla-ansible]$ sudo cp etc\/kolla\/passwords.yml \/etc\/kolla\/passwords.yml\r\n[centos@tacker kolla-ansible]$ sudo kolla-genpwd\r\nsudo: kolla-genpwd: command not found\r\n<\/code><\/pre>\n<p>\u6ca1\u6709kolla-genpwd\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker kolla-ansible]$ which kolla-genpwd\r\n\/usr\/local\/bin\/kolla-genpwd\r\n[centos@tacker kolla-ansible]$ sudo -i\r\n[root@tacker ~]# echo $PATH\r\n\/usr\/local\/sbin:\/sbin:\/bin:\/usr\/sbin:\/usr\/bin:\/root\/bin\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u8def\u5f84\u9519\u8bef\uff0c\u9700\u8981\u4f7f\u7528\u6307\u5b9a\u8def\u5f84\u7684\u547d\u4ee4\u6267\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker kolla-ansible]$ sudo \/usr\/local\/bin\/kolla-genpwd\r\n[centos@tacker kolla-ansible]$ ll \/etc\/kolla\/passwords.yml \r\n-rw-r--r--. 1 root root 25608 Jan 27 08:58 \/etc\/kolla\/passwords.yml\r\n[centos@tacker kolla-ansible]$ sudo kolla-ansible deploy\r\nsudo: kolla-ansible: command not found\r\n[centos@tacker kolla-ansible]$ which kolla-ansible\r\n\/usr\/local\/bin\/kolla-ansible\r\n[centos@tacker kolla-ansible]$ sudo \/usr\/local\/bin\/kolla-ansible deploy\r\nwhich: no ansible in (\/sbin:\/bin:\/usr\/sbin:\/usr\/bin)\r\nERROR: Ansible is not installed in the current (virtual) environment.\r\n[centos@tacker kolla-ansible]$ pip3 list |grep ansible\r\nDEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.\r\nansible (2.9.27)\r\nkolla-ansible (10.4.1.dev11)\r\n[centos@tacker kolla-ansible]$ ansible --version\r\nansible 2.9.27\r\n  config file = None\r\n  configured module search path = ['\/home\/centos\/.ansible\/plugins\/modules', '\/usr\/share\/ansible\/plugins\/modules']\r\n  ansible python module location = \/usr\/local\/lib\/python3.6\/site-packages\/ansible\r\n  executable location = \/usr\/local\/bin\/ansible\r\n  python version = 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]\r\n[centos@tacker kolla-ansible]$ sudo ansible --version\r\nsudo: ansible: command not found\r\n[centos@tacker kolla-ansible]$ which ansible\r\n\/usr\/local\/bin\/ansible\r\n<\/code><\/pre>\n<p>\u518d\u6b21\u6267\u884c\u524d\uff0c\u8bf7\u5c06\u8def\u5f84\u6dfb\u52a0\u5230\/usr\/local\/bin\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker kolla-ansible]$ sudo -i\r\n[root@tacker ~]# vim ~\/.bash_profile\r\n\r\n...\r\n\r\nPATH=$PATH:\/usr\/local\/bin\r\n\r\nexport PATH\r\n[root@tacker ~]# source ~\/.bash_profile \r\n[root@tacker ~]# ansible --version\r\nansible 2.9.27\r\n  config file = None\r\n  configured module search path = ['\/root\/.ansible\/plugins\/modules', '\/usr\/share\/ansible\/plugins\/modules']\r\n  ansible python module location = \/usr\/local\/lib\/python3.6\/site-packages\/ansible\r\n  executable location = \/usr\/local\/bin\/ansible\r\n  python version = 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]\r\n[root@tacker ~]# kolla-ansible deploy\r\n\r\n...\r\n\r\nPLAY RECAP **************************************************************************************************************************************************\r\nlocalhost                  : ok=174  changed=114  unreachable=0    failed=0    skipped=73   rescued=0    ignored=1\r\n[root@tacker ~]# kolla-ansible post-deploy\r\nPost-Deploying Playbooks : ansible-playbook -i \/usr\/local\/share\/kolla-ansible\/ansible\/inventory\/all-in-one -e @\/etc\/kolla\/globals.yml -e @\/etc\/kolla\/passwords.yml -e CONFIG_DIR=\/etc\/kolla  \/usr\/local\/share\/kolla-ansible\/ansible\/post-deploy.yml \r\n[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details\r\n\r\nPLAY [Creating admin openrc file on the deploy node] ********************************************************************************************************\r\n\r\nTASK [Gathering Facts] **************************************************************************************************************************************\r\nok: [localhost]\r\n\r\nTASK [Template out admin-openrc.sh] *************************************************************************************************************************\r\nchanged: [localhost]\r\n\r\nPLAY RECAP **************************************************************************************************************************************************\r\nlocalhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \r\n[root@tacker ~]# exit\r\nlogout\r\n[centos@tacker kolla-ansible]$ docker ps --format \"table {{.ID}}\\t{{.Image}}\\t{{.Names}}\"\r\nCONTAINER ID   IMAGE                                                   NAMES\r\n9181eb900cac   kolla\/centos-source-tacker-server:ussuri                tacker_server\r\n6ead9905b4e1   kolla\/centos-source-tacker-conductor:ussuri             tacker_conductor\r\n60d6a3f14b08   kolla\/centos-source-barbican-worker:ussuri              barbican_worker\r\n398bea45971a   kolla\/centos-source-barbican-keystone-listener:ussuri   barbican_keystone_listener\r\nc75958b3b311   kolla\/centos-source-barbican-api:ussuri                 barbican_api\r\nbc100870eb12   kolla\/centos-source-mistral-executor:ussuri             mistral_executor\r\n03e5e3518985   kolla\/centos-source-mistral-event-engine:ussuri         mistral_event_engine\r\n32574b4a291d   kolla\/centos-source-mistral-engine:ussuri               mistral_engine\r\n18be2c380d3b   kolla\/centos-source-mistral-api:ussuri                  mistral_api\r\na29f30e7c8b2   kolla\/centos-source-horizon:ussuri                      horizon\r\n3898d6a95aa4   kolla\/centos-source-keystone:ussuri                     keystone\r\n0539385c9b2e   kolla\/centos-source-keystone-fernet:ussuri              keystone_fernet\r\nd9f9ef659290   kolla\/centos-source-keystone-ssh:ussuri                 keystone_ssh\r\nb89842f6a049   kolla\/centos-source-rabbitmq:ussuri                     rabbitmq\r\n9ee358042057   kolla\/centos-source-memcached:ussuri                    memcached\r\nebbdbe943859   kolla\/centos-source-mariadb:ussuri                      mariadb\r\n404c54bfc286   kolla\/centos-source-chrony:ussuri                       chrony\r\n37655e2fc5c2   kolla\/centos-source-cron:ussuri                         cron\r\ne6091f24c142   kolla\/centos-source-kolla-toolbox:ussuri                kolla_toolbox\r\n597e5bd0cbd6   kolla\/centos-source-fluentd:ussuri                      fluentd\r\n[centos@tacker kolla-ansible]$ sudo pip3 install python-tackerclient --proxy=http:\/\/172.16.184.1:63128\/\r\n\r\n...\r\n\r\nSuccessfully installed appdirs-1.4.4 attrs-21.4.0 autopage-0.5.0 cliff-3.10.0 cmd2-2.3.3 decorator-5.1.1 dogpile.cache-1.1.5 keystoneauth1-4.4.0 msgpack-1.0.3 munch-2.5.0 openstacksdk-0.61.0 os-service-types-1.7.0 osc-lib-2.4.2 oslo.context-3.4.0 oslo.log-4.6.1 oslo.serialization-4.2.0 pyinotify-0.9.6 pyperclip-1.8.2 python-dateutil-2.8.2 python-keystoneclient-4.4.0 python-tackerclient-1.9.0 requestsexceptions-1.4.0 simplejson-3.17.6 wcwidth-0.2.5\r\n[centos@tacker kolla-ansible]$ sudo pip3 install python-openstackclient --proxy=http:\/\/172.16.184.1:63128\/\r\n\r\n...\r\n\r\nSuccessfully installed certifi-2021.10.8 charset-normalizer-2.0.10 python-cinderclient-8.2.0 python-novaclient-17.6.0 python-openstackclient-5.7.0 requests-2.27.1\r\n\r\n[centos@tacker kolla-ansible]$ sudo cat \/etc\/kolla\/admin-openrc.sh &gt; \/tmp\/admin-openrc.sh\r\n[centos@tacker kolla-ansible]$ . \/tmp\/admin-openrc.sh\r\n[centos@tacker kolla-ansible]$ openstack vim list\r\n\r\n<\/code><\/pre>\n<h2>\u6ce8\u518cOpenStack\u865a\u62df\u57fa\u7840\u8bbe\u65bd\u7ba1\u7406\u5668<br \/>\n\u5c06Tacker\u4f5c\u4e3aOpenStack\u7684VIM\u8fdb\u884c\u6ce8\u518c\u3002<br \/>\n\u5728vim_config.yaml\u4e2d\u6307\u5b9aOpenStack\u7684\u8bbf\u95ee\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ vim .\/vim_config.yaml\r\n[centos@tacker ~]$ cat .\/vim_config.yaml \r\nauth_url: 'http:\/\/172.16.183.2:5000\/v3'\r\nusername: 'admin'\r\npassword: '40f579a20797456d'\r\nproject_name: 'admin'\r\nproject_domain_name: 'Default'\r\nuser_domain_name: 'Default'\r\n<\/code><\/pre>\n<p>\u4f7f\u7528 Tacker \u7684 OpenStack \u547d\u4ee4\u5c06 VIM \u8fdb\u884c\u6ce8\u518c\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ source \/tmp\/admin-openrc.sh\r\n[centos@tacker ~]$ openstack vim register \\\r\n&gt;     --config-file .\/vim_config.yaml \\\r\n&gt;     --is-default --fit-width openstack-admin-vim\r\n+----------------+------------------------------------------------+\r\n| Field          | Value                                          |\r\n+----------------+------------------------------------------------+\r\n| auth_cred      | {                                              |\r\n|                |     \"username\": \"admin\",                       |\r\n|                |     \"user_domain_name\": \"Default\",             |\r\n|                |     \"cert_verify\": \"True\",                     |\r\n|                |     \"project_id\": null,                        |\r\n|                |     \"project_name\": \"admin\",                   |\r\n|                |     \"project_domain_name\": \"Default\",          |\r\n|                |     \"auth_url\": \"http:\/\/172.16.183.2:5000\/v3\", |\r\n|                |     \"key_type\": \"barbican_key\",                |\r\n|                |     \"secret_uuid\": \"***\",                      |\r\n|                |     \"password\": \"***\"                          |\r\n|                | }                                              |\r\n| auth_url       | http:\/\/172.16.183.2:5000\/v3                    |\r\n| created_at     | 2022-01-28 08:31:57.393679                     |\r\n| description    |                                                |\r\n| id             | 9564d5fb-03b9-4486-82d5-831cba1e6288           |\r\n| is_default     | True                                           |\r\n| name           | openstack-admin-vim                            |\r\n| placement_attr | {                                              |\r\n|                |     \"regions\": [                               |\r\n|                |         \"RegionOne\"                            |\r\n|                |     ]                                          |\r\n|                | }                                              |\r\n| project_id     | 92c7420e81e641a696b72eb7aa67fa12               |\r\n| status         | PENDING                                        |\r\n| type           | openstack                                      |\r\n| updated_at     | None                                           |\r\n| vim_project    | {                                              |\r\n|                |     \"name\": \"admin\",                           |\r\n|                |     \"project_domain_name\": \"Default\"           |\r\n|                | }                                              |\r\n+----------------+------------------------------------------------+\r\n[centos@tacker ~]$ openstack vim list\r\n+--------------------------------------+---------------------+----------------------------------+-----------+------------+-----------+\r\n| ID                                   | Name                | Tenant_id                        | Type      | Is Default | Status    |\r\n+--------------------------------------+---------------------+----------------------------------+-----------+------------+-----------+\r\n| 9564d5fb-03b9-4486-82d5-831cba1e6288 | openstack-admin-vim | 92c7420e81e641a696b72eb7aa67fa12 | openstack | True       | REACHABLE |\r\n+--------------------------------------+---------------------+----------------------------------+-----------+------------+-----------+\r\n<\/code><\/pre>\n<h2>\u521b\u5efa\u548c\u4e0a\u4f20VNF\u5305<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">VNF\u30d1\u30c3\u30b1\u30fc\u30b8<\/ul>\n<\/li>\n<\/ul>\n<p>VNFD\u3001VM\u306e\u30a4\u30e1\u30fc\u30b8\u3001\u30b9\u30af\u30ea\u30d7\u30c8\u3001\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\u3092\u30d1\u30c3\u30b1\u30fc\u30b8\u30f3\u30b0\u3057\u305fzip\u30d5\u30a1\u30a4\u30eb\u306e\u3053\u3068<\/p>\n<p>VNFD(VNF Descriptor)<\/p>\n<p>TOSCA\u3067\u5b9a\u7fa9\u3055\u308c\u305fVNF\u306e\u30c8\u30dd\u30ed\u30b8\u306b\u5bfe\u3057\u3066\u3001\u3069\u306e\u3088\u3046\u306b\u30c7\u30d7\u30ed\u30a4\u3084\u30aa\u30da\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u304b\u3092\u5b9a\u7fa9\u3057\u305f\u3082\u306e<\/p>\n<p>TOSCA(Topology and Orchestration Specification for Cloud Applications)<\/p>\n<p>\u30af\u30e9\u30a6\u30c9\u4e0a\u306b\u5c55\u958b\u3055\u308c\u308b\u30b7\u30b9\u30c6\u30e0\u69cb\u6210\uff08\u30c8\u30dd\u30ed\u30b8\uff09\u3092\u5b9a\u7fa9\u3057\u305f\u3082\u306e<br \/>\nTOSCA\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u7570\u306a\u308b\u30d9\u30f3\u30c0\u9593\u306e\u30af\u30e9\u30a6\u30c9\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304a\u3088\u3073\u30b5\u30fc\u30d3\u30b9\u3092\u30b9\u30e0\u30fc\u30ba\u306b\u5c0e\u5165\u3067\u304d\u3001\u591a\u7a2e\u591a\u69d8\u306a\u30af\u30e9\u30a6\u30c9\u3092\u307e\u305f\u304c\u3063\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u53ef\u642c\u6027\u3092\u78ba\u4fdd\u3057\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u79fb\u884c\u3084\u9023\u643a\u3092\u5bb9\u6613\u306b\u3067\u304d\u308b\u30e1\u30ea\u30c3\u30c8\u304c\u5f97\u3089\u308c\u308b<\/p>\n<p>\u53c2\u9605<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">https:\/\/docs.openstack.org\/tacker\/latest\/user\/vnf-package.html<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">https:\/\/thinkit.co.jp\/article\/9767<\/ul>\n<p>\u521b\u5efaCSAR\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ mkdir -p .\/sample_vnf_package_csar\/TOSCA-Metadata \\\r\n&gt;     .\/sample_vnf_package_csar\/Definitions \\\r\n&gt;     .\/sample_vnf_package_csar\/Files\r\n<\/code><\/pre>\n<p>\u5728\u4f7f\u7528userdata\u4e4b\u524d\uff0c\u8fd8\u9700\u8981\u521b\u5efa\u4ee5\u4e0b\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ mkdir -p .\/sample_vnf_package_csar\/BaseHOT\/simple \\\r\n&gt;     .\/sample_vnf_package_csar\/UserData\r\n<\/code><\/pre>\n<p>\u521b\u5efaTOSCA.meta\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ cat &lt;&lt;EOF &gt; .\/sample_vnf_package_csar\/TOSCA-Metadata\/TOSCA.meta\r\n&gt; TOSCA-Meta-File-Version: 1.0\r\n&gt; Created-by: Dummy User\r\n&gt; CSAR-Version: 1.1\r\n&gt; Entry-Definitions: Definitions\/sample_vnfd_top.yaml\r\n&gt; EOF\r\n<\/code><\/pre>\n<p>\u4e0b\u8f7dETSI\u5b9a\u4e49\u6587\u4ef6\u3002<br \/>\nETSI\u662f\u6307\u6b27\u6d32\u7535\u4fe1\u6807\u51c6\u5316\u673a\u6784\uff08European Telecommunications Standards Institute\uff09\uff0c\u662f\u5efa\u7acbNFV\u67b6\u6784\u53c2\u8003\u6a21\u578b\u7684\u7ec4\u7ec7\u3002\u8bf7\u8bbf\u95eehttps:\/\/www.etsi.org\/technologies\/nfv\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ export TOSCA_VERSION=v2.6.1\r\n[centos@tacker ~]$ cd .\/sample_vnf_package_csar\/Definitions\r\n[centos@tacker Definitions]$ https_proxy=http:\/\/172.16.183.1:63128\/ curl -O https:\/\/forge.etsi.org\/rep\/nfv\/SOL001\/raw\/${TOSCA_VERSION}\/etsi_nfv_sol001_common\r\n_types.yaml\r\n\r\n...\r\n\r\n[centos@tacker Definitions]$ https_proxy=http:\/\/172.16.183.1:63128\/ curl -O https:\/\/forge.etsi.org\/rep\/nfv\/SOL001\/raw\/${TOSCA_VERSION}\/etsi_nfv_sol001_vnfd_types.yaml\r\n\r\n...\r\n\r\n[centos@tacker Definitions]$ ls\r\netsi_nfv_sol001_common_types.yaml  etsi_nfv_sol001_vnfd_types.yaml\r\n<\/code><\/pre>\n<p>\u521b\u5efaVNFD\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker Definitions]$ cat &lt;&lt;EOF &gt; sample_vnfd_top.yaml\r\n&gt; tosca_definitions_version: tosca_simple_yaml_1_2\r\n&gt; \r\n&gt; description: Sample VNF\r\n&gt; \r\n&gt; imports:\r\n&gt;  - etsi_nfv_sol001_common_types.yaml\r\n&gt;  - etsi_nfv_sol001_vnfd_types.yaml\r\n&gt;  - sample_vnfd_types.yaml\r\n&gt;  - sample_vnfd_df_simple.yaml\r\n&gt; \r\n&gt; topology_template:\r\n&gt;  inputs:\r\n&gt;    selected_flavour:\r\n&gt;      type: string\r\n&gt;      description: VNF deployment flavour selected by the consumer. It is provided in the API\r\n&gt; \r\n&gt;  node_templates:\r\n&gt;    VNF:\r\n&gt;      type: company.provider.VNF\r\n&gt;      properties:\r\n&gt;        flavour_id: { get_input: selected_flavour }\r\n&gt;        descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177\r\n&gt;        provider: Company\r\n&gt;        product_name: Sample VNF\r\n&gt;        software_version: '1.0'\r\n&gt;        descriptor_version: '1.0'\r\n&gt;        vnfm_info:\r\n&gt;          - Tacker\r\n&gt;      requirements:\r\n&gt;        #- virtual_link_external # mapped in lower-level templates\r\n&gt;        #- virtual_link_internal # mapped in lower-level templates\r\n&gt; EOF\r\n[centos@tacker Definitions]$ cat &lt;&lt;EOF &gt; sample_vnfd_types.yaml\r\n&gt; tosca_definitions_version: tosca_simple_yaml_1_2\r\n&gt; \r\n&gt; description: VNF type definition\r\n&gt; \r\n&gt; imports:\r\n&gt;  - etsi_nfv_sol001_common_types.yaml\r\n&gt;  - etsi_nfv_sol001_vnfd_types.yaml\r\n&gt; \r\n&gt; node_types:\r\n&gt;  company.provider.VNF:\r\n&gt;    derived_from: tosca.nodes.nfv.VNF\r\n&gt;    properties:\r\n&gt;      id:\r\n&gt;        type: string\r\n&gt;        description: ID of this VNF\r\n&gt;        default: vnf_id\r\n&gt;      vendor:\r\n&gt;        type: string\r\n&gt;        description: name of the vendor who generate this VNF\r\n&gt;        default: vendor\r\n&gt;      version:\r\n&gt;        type: version\r\n&gt;        description: version of the software for this VNF\r\n&gt;        default: 1.0\r\n&gt;      descriptor_id:\r\n&gt;        type: string\r\n&gt;        constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ]\r\n&gt;        default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177\r\n&gt;      descriptor_version:\r\n&gt;        type: string\r\n&gt;        constraints: [ valid_values: [ '1.0' ] ]\r\n&gt;        default: '1.0'\r\n&gt;      provider:\r\n&gt;        type: string\r\n&gt;        constraints: [ valid_values: [ 'Company' ] ]\r\n&gt;        default: 'Company'\r\n&gt;      product_name:\r\n&gt;        type: string\r\n&gt;        constraints: [ valid_values: [ 'Sample VNF' ] ]\r\n&gt;        default: 'Sample VNF'\r\n&gt;      software_version:\r\n&gt;        type: string\r\n&gt;        constraints: [ valid_values: [ '1.0' ] ]\r\n&gt;        default: '1.0'\r\n&gt;      vnfm_info:\r\n&gt;        type: list\r\n&gt;        entry_schema:\r\n&gt;          type: string\r\n&gt;          constraints: [ valid_values: [ Tacker ] ]\r\n&gt;        default: [ Tacker ]\r\n&gt;      flavour_id:\r\n&gt;        type: string\r\n&gt;        constraints: [ valid_values: [ simple ] ]\r\n&gt;        default: simple\r\n&gt;      flavour_description:\r\n&gt;        type: string\r\n&gt;        default: This is the default flavour description\r\n&gt;    requirements:\r\n&gt;      - virtual_link_internal:\r\n&gt;          capability: tosca.capabilities.nfv.VirtualLinkable\r\n&gt;    interfaces:\r\n&gt;      Vnflcm:\r\n&gt;        type: tosca.interfaces.nfv.Vnflcm\r\n&gt; EOF\r\n[centos@tacker Definitions]$ cat &lt;&lt;EOF &gt; sample_vnfd_df_simple.yaml\r\n&gt; tosca_definitions_version: tosca_simple_yaml_1_2\r\n&gt; \r\n&gt; description: Simple deployment flavour for Sample VNF\r\n&gt; \r\n&gt; imports:\r\n&gt;  - etsi_nfv_sol001_common_types.yaml\r\n&gt;  - etsi_nfv_sol001_vnfd_types.yaml\r\n&gt;  - sample_vnfd_types.yaml\r\n&gt; \r\n&gt; topology_template:\r\n&gt;  inputs:\r\n&gt;    id:\r\n&gt;      type: string\r\n&gt;    vendor:\r\n&gt;      type: string\r\n&gt;    version:\r\n&gt;      type: version\r\n&gt;    descriptor_id:\r\n&gt;      type: string\r\n&gt;    descriptor_version:\r\n&gt;      type: string\r\n&gt;    provider:\r\n&gt;      type: string\r\n&gt;    product_name:\r\n&gt;      type: string\r\n&gt;    software_version:\r\n&gt;      type: string\r\n&gt;    vnfm_info:\r\n&gt;      type: list\r\n&gt;      entry_schema:\r\n&gt;        type: string\r\n&gt;    flavour_id:\r\n&gt;      type: string\r\n&gt;    flavour_description:\r\n&gt;      type: string\r\n&gt; \r\n&gt;  substitution_mappings:\r\n&gt;    node_type: company.provider.VNF\r\n&gt;    properties:\r\n&gt;      flavour_id: simple\r\n&gt;    requirements:\r\n&gt;      virtual_link_external: []\r\n&gt; \r\n&gt;  node_templates:\r\n&gt;    VNF:\r\n&gt;      type: company.provider.VNF\r\n&gt;      properties:\r\n&gt;        flavour_description: A simple flavour\r\n&gt;      interfaces:\r\n&gt;        Vnflcm:\r\n&gt;          # supporting only 'instantiate', 'terminate', 'modify',\r\n&gt;          # and 'heal'\r\n&gt;          # not supporting LCM script, supporting only default LCM\r\n&gt;          instantiate: []\r\n&gt;          # instantiate_start: []\r\n&gt;          # instantiate_end: []\r\n&gt;          terminate: []\r\n&gt;          # terminate_start: []\r\n&gt;          # terminate_end: []\r\n&gt;          modify_information: []\r\n&gt;          # modify_information_start: []\r\n&gt;          # modify_information_end: []\r\n&gt;          # change_flavour: []\r\n&gt;          # change_flavour_start: []\r\n&gt;          # change_flavour_end: []\r\n&gt;          # change_external_connectivity: []\r\n&gt;          # change_external_connectivity_start: []\r\n&gt;          # change_external_connectivity_end: []\r\n&gt;          # operate: []\r\n&gt;          # operate_start: []\r\n&gt;          # operate_end: []\r\n&gt;          heal: []\r\n&gt;          # heal_start: []\r\n&gt;          # heal_end: []\r\n&gt;          # scale: []\r\n&gt;          # scale_start: []\r\n&gt;          # scale_end: []\r\n&gt;          # scale_to_level: []\r\n&gt;          # scale_to_level_start: []\r\n&gt;          # scale_to_level_end: []\r\n&gt; \r\n&gt;    VDU1:\r\n&gt;      type: tosca.nodes.nfv.Vdu.Compute\r\n&gt;      properties:\r\n&gt;        name: VDU1\r\n&gt;        description: VDU1 compute node\r\n&gt;        vdu_profile:\r\n&gt;          min_number_of_instances: 1\r\n&gt;          max_number_of_instances: 1\r\n&gt;        sw_image_data:\r\n&gt;          name: cirros-0.5.2-x86_64-disk\r\n&gt;          version: '0.5.2'\r\n&gt;          checksum:\r\n&gt;            algorithm: sha-256\r\n&gt;            hash: 8c7ecf5bd9a5a672a9f688b8fbf9dc6f032084bf54cc83716850b5e3ea164aa2\r\n&gt;          container_format: bare\r\n&gt;          disk_format: qcow2\r\n&gt;          min_disk: 1 GB\r\n&gt;          size: 1 GB\r\n&gt; \r\n&gt;      capabilities:\r\n&gt;        virtual_compute:\r\n&gt;          properties:\r\n&gt;            virtual_memory:\r\n&gt;              virtual_mem_size: 512 MB\r\n&gt;            virtual_cpu:\r\n&gt;              num_virtual_cpu: 1\r\n&gt;            virtual_local_storage:\r\n&gt;              - size_of_storage: 1 GB\r\n&gt; \r\n&gt;    CP1:\r\n&gt;      type: tosca.nodes.nfv.VduCp\r\n&gt;      properties:\r\n&gt;        layer_protocols: [ ipv4 ]\r\n&gt;      requirements:\r\n&gt;        - virtual_binding: VDU1\r\n&gt;        - virtual_link: internalVL1\r\n&gt; \r\n&gt;    internalVL1:\r\n&gt;      type: tosca.nodes.nfv.VnfVirtualLink\r\n&gt;      properties:\r\n&gt;        connectivity_type:\r\n&gt;          layer_protocols: [ ipv4 ]\r\n&gt;        description: Internal Virtual link in the VNF\r\n&gt;        vl_profile:\r\n&gt;          max_bitrate_requirements:\r\n&gt;            root: 1048576\r\n&gt;            leaf: 1048576\r\n&gt;          min_bitrate_requirements:\r\n&gt;            root: 1048576\r\n&gt;            leaf: 1048576\r\n&gt;          virtual_link_protocol_data:\r\n&gt;            - associated_layer_protocol: ipv4\r\n&gt;              l3_protocol_data:\r\n&gt;                ip_version: ipv4\r\n&gt;                cidr: 10.1.0.0\/24\r\n&gt; EOF\r\n[centos@tacker Definitions]$ ls\r\netsi_nfv_sol001_common_types.yaml  etsi_nfv_sol001_vnfd_types.yaml  sample_vnfd_df_simple.yaml  sample_vnfd_top.yaml  sample_vnfd_types.yaml\r\n<\/code><\/pre>\n<p>\u521b\u5efaBaseHOT\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker Definitions]$ cd -\r\n\/home\/centos\r\n[centos@tacker ~]$ cat &lt;&lt;EOF &gt; .\/sample_vnf_package_csar\/BaseHOT\/simple\/sample_lcm_with_user_data_hot.yaml\r\n&gt; heat_template_version: 2013-05-23\r\n&gt; description: 'Template for test _generate_hot_from_tosca().'\r\n&gt; \r\n&gt; parameters:\r\n&gt;   nfv:\r\n&gt;     type: json\r\n&gt; \r\n&gt; resources:\r\n&gt;   VDU1:\r\n&gt;     type: OS::Nova::Server\r\n&gt;     properties:\r\n&gt;       flavor:\r\n&gt;         get_resource: VDU1_flavor\r\n&gt;       name: VDU1\r\n&gt;       image: { get_param: [ nfv, VDU, VDU1, image ] }\r\n&gt;       networks:\r\n&gt;       - port:\r\n&gt;           get_resource: CP1\r\n&gt; \r\n&gt;   CP1:\r\n&gt;     type: OS::Neutron::Port\r\n&gt;     properties:\r\n&gt;       network: { get_param: [ nfv, CP, CP1, network ] }\r\n&gt; \r\n&gt;   VDU1_flavor:\r\n&gt;     type: OS::Nova::Flavor\r\n&gt;     properties:\r\n&gt;       ram: { get_param: [ nfv, VDU, VDU1, flavor, ram ] }\r\n&gt;       vcpus: { get_param: [ nfv, VDU, VDU1, flavor, vcpus ] }\r\n&gt;       disk: { get_param: [ nfv, VDU, VDU1, flavor, disk ] }\r\n&gt; \r\n&gt; outputs: {}\r\n&gt; EOF\r\n<\/code><\/pre>\n<p>\u867d\u7136\u6b65\u9aa4\u4e2d\u5e76\u6ca1\u6709\u63d0\u53ca\uff0c\u4f46\u4f3c\u4e4e\u9700\u8981\u4e0b\u8f7d\u56fe\u50cf\u5230.\/sample_vnf_package_csar\/Files\/images\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker sample_vnf_package_csar]$ mkdir Files\/images\r\n[centos@tacker sample_vnf_package_csar]$ http_proxy=http:\/\/172.16.183.1:63128\/ curl -o sample_vnf_package_csar\/Files\/images\/cirros-0.5.2-x86_64-disk.img http:\/\/download.cirros-cloud.net\/0.5.2\/cirros-0.5.2-x86_64-disk.img\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n100   273  100   273    0     0   266k      0 --:--:-- --:--:-- --:--:--  266k\r\n<\/code><\/pre>\n<p>\u5c06VNF Package CSAR\u538b\u7f29\u4e3azip\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ cd .\/sample_vnf_package_csar\r\n[centos@tacker sample_vnf_package_csar]$ tree\r\n.\r\n\u251c\u2500\u2500 BaseHOT\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 simple\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 sample_lcm_with_user_data_hot.yaml\r\n\u251c\u2500\u2500 Definitions\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 etsi_nfv_sol001_common_types.yaml\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 etsi_nfv_sol001_vnfd_types.yaml\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 sample_vnfd_df_simple.yaml\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 sample_vnfd_top.yaml\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 sample_vnfd_types.yaml\r\n\u251c\u2500\u2500 Files\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 images\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 cirros-0.5.2-x86_64-disk.img\r\n\u251c\u2500\u2500 TOSCA-Metadata\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 TOSCA.meta\r\n\u2514\u2500\u2500 UserData\r\n\r\n7 directories, 8 files\r\n[centos@tacker sample_vnf_package_csar]$ zip sample_vnf_package_csar.zip -r Definitions\/ Files\/ TOSCA-Metadata\/\r\n-bash: zip: command not found\r\n[centos@tacker sample_vnf_package_csar]$ sudo dnf install zip\r\n\r\n...\r\n\r\nComplete!\r\n[centos@tacker sample_vnf_package_csar]$ zip sample_vnf_package_csar.zip -r Definitions\/ Files\/ TOSCA-Metadata\/ BaseHOT\/\r\n  adding: Definitions\/ (stored 0%)\r\n  adding: Definitions\/etsi_nfv_sol001_common_types.yaml (deflated 76%)\r\n  adding: Definitions\/etsi_nfv_sol001_vnfd_types.yaml (deflated 83%)\r\n  adding: Definitions\/sample_vnfd_top.yaml (deflated 53%)\r\n  adding: Definitions\/sample_vnfd_types.yaml (deflated 70%)\r\n  adding: Definitions\/sample_vnfd_df_simple.yaml (deflated 69%)\r\n  adding: Files\/ (stored 0%)\r\n  adding: Files\/images\/ (stored 0%)\r\n  adding: Files\/images\/cirros-0.5.2-x86_64-disk.img (deflated 22%)\r\n  adding: TOSCA-Metadata\/ (stored 0%)\r\n  adding: TOSCA-Metadata\/TOSCA.meta (deflated 16%)\r\n  adding: BaseHOT\/ (stored 0%)\r\n  adding: BaseHOT\/simple\/ (stored 0%)\r\n  adding: BaseHOT\/simple\/sample_lcm_with_user_data_hot.yaml (deflated 58%)\r\n[centos@tacker sample_vnf_package_csar]$ ls\r\nBaseHOT  Definitions  Files  sample_vnf_package_csar.zip  TOSCA-Metadata  UserData\r\n<\/code><\/pre>\n<p>\u521b\u5efaVNF\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker sample_vnf_package_csar]$ cd\r\n[centos@tacker ~]$ openstack vnf package create --fit-width\r\nMissing value auth-url required for auth plugin password\r\n[centos@tacker ~]$ source \/tmp\/admin-openrc.sh\r\n[centos@tacker ~]$ openstack vnf package create --fit-width\r\n+-------------------+-------------------------------------------------------------------------------------------------+\r\n| Field             | Value                                                                                           |\r\n+-------------------+-------------------------------------------------------------------------------------------------+\r\n| ID                | 04bda2ca-3f46-44d1-9487-aa3e86dd0cf1                                                            |\r\n| Links             | {                                                                                               |\r\n|                   |     \"self\": {                                                                                   |\r\n|                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/04bda2ca-3f46-44d1-9487-aa3e86dd0cf1\"                 |\r\n|                   |     },                                                                                          |\r\n|                   |     \"packageContent\": {                                                                         |\r\n|                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/04bda2ca-3f46-44d1-9487-aa3e86dd0cf1\/package_content\" |\r\n|                   |     }                                                                                           |\r\n|                   | }                                                                                               |\r\n| Onboarding State  | CREATED                                                                                         |\r\n| Operational State | DISABLED                                                                                        |\r\n| Usage State       | NOT_IN_USE                                                                                      |\r\n| User Defined Data | {}                                                                                              |\r\n+-------------------+-------------------------------------------------------------------------------------------------+\r\n<\/code><\/pre>\n<p>\u4e0a\u4f20VNF\u5305<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ openstack vnf package upload \\\r\n&gt; --path .\/sample_vnf_package_csar\/sample_vnf_package_csar.zip \\\r\n&gt; 04bda2ca-3f46-44d1-9487-aa3e86dd0cf1\r\nUpload request for VNF package 04bda2ca-3f46-44d1-9487-aa3e86dd0cf1 has been accepted.\r\n<\/code><\/pre>\n<p>\u786e\u8ba4VNF\u5305<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ openstack vnf package list\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| Id                                   | Vnf Product Name | Onboarding State | Usage State | Operational State | Links                                                                                           |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| 04bda2ca-3f46-44d1-9487-aa3e86dd0cf1 |                  | CREATED          | NOT_IN_USE  | DISABLED          | {                                                                                               |\r\n|                                      |                  |                  |             |                   |     \"self\": {                                                                                   |\r\n|                                      |                  |                  |             |                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/04bda2ca-3f46-44d1-9487-aa3e86dd0cf1\"                 |\r\n|                                      |                  |                  |             |                   |     },                                                                                          |\r\n|                                      |                  |                  |             |                   |     \"packageContent\": {                                                                         |\r\n|                                      |                  |                  |             |                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/04bda2ca-3f46-44d1-9487-aa3e86dd0cf1\/package_content\" |\r\n|                                      |                  |                  |             |                   |     }                                                                                           |\r\n|                                      |                  |                  |             |                   | }                                                                                               |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u7684\u6587\u4ef6\u8f93\u51fa\u793a\u4f8b\u4e0eVnf\u4ea7\u54c1\u540d\u79f0\u3001\u4e0a\u7ebf\u72b6\u6001\u548c\u8fd0\u884c\u72b6\u6001\u4e0d\u540c\u3002<\/p>\n<pre class=\"post-pre\"><code>$ openstack vnf package list \r\n+--------------------------------------+------------------+------------------+-------------+-------------------+\r\n| Id                                   | Vnf Product Name | Onboarding State | Usage State | Operational State |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+\r\n| e712a702-741f-4093-a971-b3ad69411ac1 | Sample VNF       | ONBOARDED        | NOT_IN_USE  | ENABLED           |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+\r\n<\/code><\/pre>\n<p>\u5728\u68c0\u67e5tacker_server\u7684kolla\/tacker\/tacker-conductor.log\u65f6\uff0c\u627e\u5230\u4ee5\u4e0b\u9519\u8bef\u6d88\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>2022-02-01 05:17:03.503 7 ERROR oslo_messaging.rpc.server The input \"\/var\/lib\/tacker\/vnfpackages\/04bda2ca-3f46-44d1-9487-aa3e86dd0cf1.zip\" failed validation with the following error(s): \r\n2022-02-01 05:17:03.503 7 ERROR oslo_messaging.rpc.server \r\n2022-02-01 05:17:03.503 7 ERROR oslo_messaging.rpc.server       URLException: Failed to reach server \"https:\/\/forge.etsi.org\/rep\/nfv\/SOL001\/raw\/v2.6.1\/etsi_nfv_sol001_common_types.yaml\". Reason is: [Errno -2] Name or service not known.\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u4ee3\u7406\u73af\u5883\uff0c\u65e0\u6cd5\u8fde\u63a5\u5916\u90e8\u5bfc\u81f4\u51fa\u73b0\u9519\u8bef\u3002<br \/>\n\u4e0a\u4f20\u7684VNF\u5305\u9700\u8981\u8fdb\u884c\u9a8c\u8bc1\uff0c\u53ef\u80fd\u9700\u8981\u4e0e\u5916\u90e8\u8fdb\u884c\u901a\u4fe1\u5427\uff1f<\/p>\n<p>\u7531\u4e8e\u5728kolla ansible\u4e2d\u627e\u4e0d\u5230\u8bbe\u7f6e\u4ee3\u7406\u7684\u65b9\u6cd5\uff0c\u6240\u4ee5\u9009\u62e9\u5728docker\u4e2d\u8bbe\u7f6e\u4ee3\u7406\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@tacker ~]# mkdir .docker\r\n[root@tacker ~]# cat &lt;&lt;EOF &gt; .docker\/config.json\r\n&gt; {\r\n&gt;  \"proxies\":\r\n&gt;  {\r\n&gt;    \"default\":\r\n&gt;    {\r\n&gt;      \"httpProxy\": \"http:\/\/172.16.183.1:63128\/\",\r\n&gt;      \"httpsProxy\": \"http:\/\/172.16.183.1:63128\/\",\r\n&gt;      \"noProxy\": \"localhost,127.0.0.1,10.0.0.178,172.16.183.2\"\r\n&gt;    }\r\n&gt;  }\r\n&gt; }\r\n&gt; EOF\r\n<\/code><\/pre>\n<p>\u91cd\u65b0\u90e8\u7f72 Tacker\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@tacker ~]# docker rm -f tacker_server\r\ntacker_server\r\n[root@tacker ~]# docker rm -f tacker_conductor\r\ntacker_conductor\r\n[root@tacker ~]# kolla-ansible deploy\r\n\r\n...\r\n\r\nPLAY RECAP **************************************************************************************************************************************************\r\nlocalhost                  : ok=143  changed=9    unreachable=0    failed=0    skipped=71   rescued=0    ignored=0   \r\n\r\n[root@tacker ~]# docker exec tacker_server env |grep -i proxy\r\nhttp_proxy=http:\/\/172.16.183.1:63128\/\r\nHTTP_PROXY=http:\/\/172.16.183.1:63128\/\r\nhttps_proxy=http:\/\/172.16.183.1:63128\/\r\nHTTPS_PROXY=http:\/\/172.16.183.1:63128\/\r\nno_proxy=localhost,127.0.0.1,10.0.0.178,172.16.183.2\r\nNO_PROXY=localhost,127.0.0.1,10.0.0.178,172.16.183.2\r\n[root@tacker ~]# docker exec tacker_conductor env |grep -i proxy\r\nhttp_proxy=http:\/\/172.16.183.1:63128\/\r\nHTTP_PROXY=http:\/\/172.16.183.1:63128\/\r\nhttps_proxy=http:\/\/172.16.183.1:63128\/\r\nHTTPS_PROXY=http:\/\/172.16.183.1:63128\/\r\nno_proxy=localhost,127.0.0.1,10.0.0.178,172.16.183.2\r\nNO_PROXY=localhost,127.0.0.1,10.0.0.178,172.16.183.2\r\n<\/code><\/pre>\n<p>\u6211\u80fd\u786e\u8ba4tacker\u7684\u5bb9\u5668\u4e2d\u5df2\u7ecf\u8bbe\u7f6e\u4e86\u4ee3\u7406\u3002<br \/>\n\u91cd\u65b0\u521b\u5efaVNF\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ openstack vnf package create --fit-width\r\n+-------------------+-------------------------------------------------------------------------------------------------+\r\n| Field             | Value                                                                                           |\r\n+-------------------+-------------------------------------------------------------------------------------------------+\r\n| ID                | 756992f4-530b-4114-a001-10e70fc2209e                                                            |\r\n| Links             | {                                                                                               |\r\n|                   |     \"self\": {                                                                                   |\r\n|                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/756992f4-530b-4114-a001-10e70fc2209e\"                 |\r\n|                   |     },                                                                                          |\r\n|                   |     \"packageContent\": {                                                                         |\r\n|                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/756992f4-530b-4114-a001-10e70fc2209e\/package_content\" |\r\n|                   |     }                                                                                           |\r\n|                   | }                                                                                               |\r\n| Onboarding State  | CREATED                                                                                         |\r\n| Operational State | DISABLED                                                                                        |\r\n| Usage State       | NOT_IN_USE                                                                                      |\r\n| User Defined Data | {}                                                                                              |\r\n+-------------------+-------------------------------------------------------------------------------------------------+\r\n[centos@tacker ~]$ openstack vnf package upload \\\r\n&gt; --path .\/sample_vnf_package_csar\/sample_vnf_package_csar.zip \\\r\n&gt; 756992f4-530b-4114-a001-10e70fc2209e\r\nUpload request for VNF package 756992f4-530b-4114-a001-10e70fc2209e has been accepted.\r\n[centos@tacker ~]$ openstack vnf package list\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| Id                                   | Vnf Product Name | Onboarding State | Usage State | Operational State | Links                                                                                           |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| 756992f4-530b-4114-a001-10e70fc2209e | Sample VNF       | ONBOARDED        | NOT_IN_USE  | ENABLED           | {                                                                                               |\r\n|                                      |                  |                  |             |                   |     \"self\": {                                                                                   |\r\n|                                      |                  |                  |             |                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/756992f4-530b-4114-a001-10e70fc2209e\"                 |\r\n|                                      |                  |                  |             |                   |     },                                                                                          |\r\n|                                      |                  |                  |             |                   |     \"packageContent\": {                                                                         |\r\n|                                      |                  |                  |             |                   |         \"href\": \"\/vnfpkgm\/v1\/vnf_packages\/756992f4-530b-4114-a001-10e70fc2209e\/package_content\" |\r\n|                                      |                  |                  |             |                   |     }                                                                                           |\r\n|                                      |                  |                  |             |                   | }                                                                                               |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n<\/code><\/pre>\n<p>\u7531\u4e8eOnboarding State\u5df2\u7ecf\u88ab\u8bbe\u4e3aONBOARDED\uff0c\u5e76\u4e14Operational State\u88ab\u8bbe\u4e3aENABLED\uff0c\u770b\u8d77\u6765\u8fdb\u5c55\u987a\u5229\u3002<\/p>\n<h2>\u521b\u5efaVNF<br \/>\n\u786e\u8ba4VNFD ID<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ openstack vnf package show \\\r\n&gt; 756992f4-530b-4114-a001-10e70fc2209e -c 'VNFD ID'\r\n+---------+--------------------------------------+\r\n| Field   | Value                                |\r\n+---------+--------------------------------------+\r\n| VNFD ID | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 |\r\n+---------+--------------------------------------+\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ openstack vnflcm create \\\r\n&gt; b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 --fit-width\r\n+-----------------------------+---------------------------------------------------------------------------------------------+\r\n| Field                       | Value                                                                                       |\r\n+-----------------------------+---------------------------------------------------------------------------------------------+\r\n| ID                          | ebd84c1e-83f2-41e7-bb0b-c0b0628ef07e                                                        |\r\n| Instantiation State         | NOT_INSTANTIATED                                                                            |\r\n| Links                       | {                                                                                           |\r\n|                             |     \"self\": {                                                                               |\r\n|                             |         \"href\": \"\/vnflcm\/v1\/vnf_instances\/ebd84c1e-83f2-41e7-bb0b-c0b0628ef07e\"             |\r\n|                             |     },                                                                                      |\r\n|                             |     \"instantiate\": {                                                                        |\r\n|                             |         \"href\": \"\/vnflcm\/v1\/vnf_instances\/ebd84c1e-83f2-41e7-bb0b-c0b0628ef07e\/instantiate\" |\r\n|                             |     }                                                                                       |\r\n|                             | }                                                                                           |\r\n| VNF Configurable Properties |                                                                                             |\r\n| VNF Instance Description    | None                                                                                        |\r\n| VNF Instance Name           | None                                                                                        |\r\n| VNF Product Name            | Sample VNF                                                                                  |\r\n| VNF Provider                | Company                                                                                     |\r\n| VNF Software Version        | 1.0                                                                                         |\r\n| VNFD ID                     | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177                                                        |\r\n| VNFD Version                | 1.0                                                                                         |\r\n+-----------------------------+---------------------------------------------------------------------------------------------+\r\n<\/code><\/pre>\n<p>\u5b9e\u4f8b\u5316VNF\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ cat &lt;&lt;EOF &gt; .\/sample_param_file.json\r\n&gt; {\r\n&gt;   \"flavourId\": \"simple\"\r\n&gt; }\r\n&gt; EOF\r\n[centos@tacker ~]$ openstack vnflcm instantiate \\\r\n&gt; 1c0ca11c-555e-4974-a751-9784cdf8c1e7 .\/sample_param_file.json\r\nInstantiate request for VNF Instance 1c0ca11c-555e-4974-a751-9784cdf8c1e7 has been accepted.\r\n[centos@tacker ~]$ openstack vnflcm list\r\n+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+\r\n| ID                                   | VNF Instance Name | Instantiation State | VNF Provider | VNF Software Version | VNF Product Name | VNFD ID                              |\r\n+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+\r\n| 1c0ca11c-555e-4974-a751-9784cdf8c1e7 | None              | NOT_INSTANTIATED    | Company      | 1.0                  | Sample VNF       | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 |\r\n+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+\r\n<\/code><\/pre>\n<p>\u5b9e\u4f8b\u72b6\u6001\u4e0d\u4f1a\u6539\u53d8\u3002<\/p>\n<p>\u5728\/var\/log\/kolla\/tacker\/tacker-conductor.log\u4e2d\u5b58\u5728\u4ee5\u4e0b\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>2022-03-07 06:46:34.156 7 ERROR oslo_messaging.rpc.server tacker.common.exceptions.VnfInstantiationFailed: Vnf instantiation failed for vnf ebd84c1e-83f2-41e7-bb0b-c0b0628ef07e, error: ERROR: Property error: : resources.VDU1.properties.image: : Error validating value '': No images matching {'name': ''}.\r\n<\/code><\/pre>\n<p>\u770b\u8d77\u6765\u56fe\u50cf\u540d\u79f0\u662f\u7a7a\u5b57\u7b26\u3002<br \/>\nVNFD\u6a21\u677f\u53ef\u80fd\u5b58\u5728\u95ee\u9898\u3002<br \/>\n\u6211\u5c1d\u8bd5\u4f7f\u7528\u6587\u6863\u4e2d\u7684\u793a\u4f8b\uff0c\u4f46\u51fa\u73b0\u4e86\u9519\u8bef\uff1f<\/p>\n<p>\u7ecf\u8fc7\u8c37\u6b4c\u641c\u7d22\uff0c\u4ee5\u4e0b\u5b9a\u4e49\u4f3c\u4e4e\u662f\u5fc5\u8981\u7684\uff1a<br \/>\nhttps:\/\/wiki.onap.org\/download\/attachments\/45303641\/NFV-SOL001v0130_clean.docx?version=1&#038;modificationDate=1542631798000&#038;api=v2<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">topology_template<\/span><span class=\"pi\">:<\/span>\r\n <span class=\"na\">node_templates<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"na\">VDU1<\/span><span class=\"pi\">:<\/span>\r\n     <span class=\"na\">artifacts<\/span><span class=\"pi\">:<\/span>\r\n       <span class=\"na\">sw_image<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">tosca.artifacts.nfv.SwImage<\/span>\r\n        <span class=\"na\">file<\/span><span class=\"pi\">:<\/span> <span class=\"s\">..\/Files\/images\/cirros-0.5.2-x86_64-disk.img<\/span>\r\n<\/code><\/pre>\n<p>\u5229\u7528\u4e0a\u8ff0\u7684\u5b9a\u4e49\u8fdb\u884c\u518d\u5b9e\u65bd\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ openstack vnflcm delete 1c0ca11c-555e-4974-a751-9784cdf8c1e7\r\nVnf instance '1c0ca11c-555e-4974-a751-9784cdf8c1e7' deleted successfully\r\n[centos@tacker ~]$ openstack vnflcm list\r\n\r\n[centos@tacker ~]$ openstack vnf package update \\\r\n&gt;     --operational-state 'DISABLED' \\\r\n&gt; ea8b23b3-8c6a-4ff6-a4dd-a5ac4374f844\r\n+-------------------+----------+\r\n| Field             | Value    |\r\n+-------------------+----------+\r\n| Operational State | DISABLED |\r\n+-------------------+----------+\r\n[centos@tacker ~]$ openstack vnf package list\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| Id                                   | Vnf Product Name | Onboarding State | Usage State | Operational State | Links                                                                                           |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| ea8b23b3-8c6a-4ff6-a4dd-a5ac4374f844 | Sample VNF       | ONBOARDED        | NOT_IN_USE  | DISABLED          | {                                                                                               \r\n\r\n...\r\n\r\n[centos@tacker ~]$ openstack vnf package delete ea8b23b3-8c6a-4ff6-a4dd-a5ac4374f844\r\nAll specified vnf-package(s) deleted successfully\r\n[centos@tacker ~]$ openstack vnf package list\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| Id                                   | Vnf Product Name | Onboarding State | Usage State | Operational State | Links                                                                                           |\r\n+--------------------------------------+------------------+------------------+-------------+-------------------+-------------------------------------------------------------------------------------------------+\r\n| ea8b23b3-8c6a-4ff6-a4dd-a5ac4374f844 | Sample VNF       | ONBOARDED        | NOT_IN_USE  | DISABLED          | {                                                                                               \r\n\r\n...\r\n<\/code><\/pre>\n<p>\u65e0\u6cd5\u5220\u9664VNF\u8f6f\u4ef6\u5305\u3002<br \/>\n\u6570\u636e\u5e93\u51fa\u73b0\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>2022-03-08 04:09:23.214 7 ERROR oslo_messaging.rpc.server oslo_db.exception.DBError: (pymysql.err.InternalError) (1292, \"Truncated incorrect DOUBLE value: '1049a2cb-1325-422e-a7b3-5d9c2671fc5c'\")\r\n<\/code><\/pre>\n<p>\u597d\u50cf\u662f\u5220\u9664\u4e86\u65e0\u6548\u7684DOUBLE\u7c7b\u578b\u7684\u503c\uff0c\u8fd9\u662f\u4e2abug\u5417\uff1f\u6211\u4e0d\u592a\u6e05\u695a\uff0c\u6240\u4ee5\u91cd\u65b0\u90e8\u7f72Tacker\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@tacker ~]# kolla-ansible destroy\r\nWARNING:\r\n    This will PERMANENTLY DESTROY all deployed kolla containers, volumes and host configuration.\r\n    There is no way to recover from this action. To confirm, please add the following option:\r\n    --yes-i-really-really-mean-it\r\n[root@tacker ~]# kolla-ansible destroy --yes-i-really-really-mean-it\r\nDestroy Kolla containers, volumes and host configuration : ansible-playbook -i \/usr\/local\/share\/kolla-ansible\/ansible\/inventory\/all-in-one -e @\/etc\/kolla\/globals.yml -e @\/etc\/kolla\/passwords.yml -e CONFIG_DIR=\/etc\/kolla  \/usr\/local\/share\/kolla-ansible\/ansible\/destroy.yml\r\n\r\n...\r\n\r\nPLAY RECAP **************************************************************************************************************************************************\r\nlocalhost                  : ok=8    changed=3    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   \r\n\r\n[root@tacker ~]# kolla-ansible deploy\r\nDeploying Playbooks : ansible-playbook -i \/usr\/local\/share\/kolla-ansible\/ansible\/inventory\/all-in-one -e @\/etc\/kolla\/globals.yml -e @\/etc\/kolla\/passwords.yml -e CONFIG_DIR=\/etc\/kolla  -e kolla_action=deploy \/usr\/local\/share\/kolla-ansible\/ansible\/site.yml\r\n\r\n...\r\n\r\nPLAY RECAP **************************************************************************************************************************************************\r\nlocalhost                  : ok=174  changed=113  unreachable=0    failed=0    skipped=73   rescued=0    ignored=1   \r\n\r\n[root@tacker ~]# docker ps --format \"table {{.ID}}\\t{{.Image}}\\t{{.Names}}\"\r\nCONTAINER ID   IMAGE                                                   NAMES\r\n1e3b3a9a24be   kolla\/centos-source-tacker-server:ussuri                tacker_server\r\nc5002ff146b7   kolla\/centos-source-tacker-conductor:ussuri             tacker_conductor\r\n\r\n...\r\n<\/code><\/pre>\n<p>\u5728\u4f7f\u7528\u4e0a\u8ff0\u5b9a\u4e49\u8fdb\u884c\u5c1d\u8bd5\u65f6\uff0c\u4f3c\u4e4e\u6210\u529f\u6307\u5b9a\u4e86\u56fe\u50cf\uff0c\u4f46\u56fe\u50cf\u7684\u54c8\u5e0c\u503c\u9a8c\u8bc1\u51fa\u73b0\u4e86\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>2022-03-07 09:31:35.154 7 ERROR oslo_messaging.rpc.server tacker.common.exceptions.VnfPreInstantiationFailed: Vnf 'ae9ae433-fed1-42fc-917c-43019c3a0ed1' failed during pre-instantiation due to error: Image 56c67844-7ca5-49d2-bbb5-64e11234dbd3 checksum verification failed\r\n<\/code><\/pre>\n<p>\u6211\u786e\u8ba4\u4e86\u56fe\u50cf\u7684\u54c8\u5e0c\uff0c\u770b\u8d77\u6765\u5b9a\u4e49\u6ca1\u6709\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ sha256sum sample_vnf_package_csar\/Files\/images\/cirros-0.5.2-x86_64-disk.img \r\n8c7ecf5bd9a5a672a9f688b8fbf9dc6f032084bf54cc83716850b5e3ea164aa2  sample_vnf_package_csar\/Files\/images\/cirros-0.5.2-x86_64-disk.img\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u5b9a\u4e49\u4e2d\u6307\u5b9a\u4e86\u4f7f\u7528sha256\u7b97\u6cd5\uff0c\u4f46\u662f\u5426\u6709\u4f7f\u7528\u5176\u4ed6\u7684\u54c8\u5e0c\u7b97\u6cd5\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">topology_template<\/span><span class=\"pi\">:<\/span>\r\n <span class=\"na\">node_templates<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"na\">VDU1<\/span><span class=\"pi\">:<\/span>\r\n     <span class=\"na\">properties<\/span><span class=\"pi\">:<\/span>\r\n       <span class=\"na\">sw_image_data<\/span><span class=\"pi\">:<\/span>\r\n         <span class=\"na\">checksum<\/span><span class=\"pi\">:<\/span>\r\n           <span class=\"na\">algorithm<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sha-256<\/span>\r\n           <span class=\"na\">hash<\/span><span class=\"pi\">:<\/span> <span class=\"s\">8c7ecf5bd9a5a672a9f688b8fbf9dc6f032084bf54cc83716850b5e3ea164aa2<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u8bd5\u7740\u7528SHA512\u8bd5\u8bd5\u770b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">topology_template<\/span><span class=\"pi\">:<\/span>\r\n <span class=\"na\">node_templates<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"na\">VDU1<\/span><span class=\"pi\">:<\/span>\r\n     <span class=\"na\">properties<\/span><span class=\"pi\">:<\/span>\r\n       <span class=\"na\">sw_image_data<\/span><span class=\"pi\">:<\/span>\r\n         <span class=\"na\">checksum<\/span><span class=\"pi\">:<\/span>\r\n         <span class=\"na\">version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0.5.2'<\/span>\r\n         <span class=\"na\">checksum<\/span><span class=\"pi\">:<\/span>\r\n         <span class=\"c1\">#  algorithm: sha-256<\/span>\r\n         <span class=\"c1\">#  hash: 8c7ecf5bd9a5a672a9f688b8fbf9dc6f032084bf54cc83716850b5e3ea164aa2<\/span>\r\n           <span class=\"na\">algorithm<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sha-512<\/span>\r\n           <span class=\"na\">hash<\/span><span class=\"pi\">:<\/span> <span class=\"s\">42f14f8f8f4d03557a34b4e057289ee9015c93049c8404395651ceac450b94de95d2d39f7d00198b355221fbd38beec2d7df808a1311d9356bddc87efbbfec97<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>[centos@tacker ~]$ openstack vnflcm list\r\n+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+\r\n| ID                                   | VNF Instance Name | Instantiation State | VNF Provider | VNF Software Version | VNF Product Name | VNFD ID                              |\r\n+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+\r\n| 1dcad49c-b457-4575-8dab-a292eb4138e7 | None              | INSTANTIATED        | Company      | 1.0                  | Sample VNF       | b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 |\r\n+--------------------------------------+-------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+\r\n<\/code><\/pre>\n<p>\u987a\u5229\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>[centos@rdo ~(keystone_admin)]$ openstack stack list\r\n+--------------------------------------+---------------------------------------------+----------------------------------+-----------------+----------------------+--------------+\r\n| ID                                   | Stack Name                                  | Project                          | Stack Status    | Creation Time        | Updated Time |\r\n+--------------------------------------+---------------------------------------------+----------------------------------+-----------------+----------------------+--------------+\r\n| 53f855b4-26cf-440a-9b78-f21b085ee472 | vnflcm_1dcad49c-b457-4575-8dab-a292eb4138e7 | c2b7c1d87c204b5aa1913603ae926ac8 | CREATE_COMPLETE | 2022-03-09T03:06:03Z | None         |\r\n+--------------------------------------+---------------------------------------------+----------------------------------+-----------------+----------------------+--------------+\r\nopenstack stack resource list: error: the following arguments are required: &lt;stack&gt;\r\n[centos@rdo ~(keystone_admin)]$ openstack stack resource list 53f855b4-26cf-440a-9b78-f21b085ee472 \r\n+-----------------------+--------------------------------------+------------------------------------+-----------------+----------------------+\r\n| resource_name         | physical_resource_id                 | resource_type                      | resource_status | updated_time         |\r\n+-----------------------+--------------------------------------+------------------------------------+-----------------+----------------------+\r\n| internalVL1           | 6279e4b8-3550-4d08-ba2a-f5592d2bdae9 | OS::Neutron::Net                   | CREATE_COMPLETE | 2022-03-09T03:06:04Z |\r\n| CP1                   | 800397ad-6ece-486d-bdb3-81c71be2cff2 | OS::Neutron::Port                  | CREATE_COMPLETE | 2022-03-09T03:06:04Z |\r\n| VDU1                  | 2d1b68d1-81dc-49a8-8001-f28a3a564e87 | OS::Nova::Server                   | CREATE_COMPLETE | 2022-03-09T03:06:04Z |\r\n| VDU1_flavor           | bfab3989-1c7c-483a-95cc-d77c26d8fb64 | OS::Nova::Flavor                   | CREATE_COMPLETE | 2022-03-09T03:06:04Z |\r\n| internalVL1_bandwidth | 08e733d7-0ad1-43a5-9d08-1dc8727a7336 | OS::Neutron::QoSBandwidthLimitRule | CREATE_COMPLETE | 2022-03-09T03:06:04Z |\r\n| internalVL1_subnet    | 64652d72-6563-4f3f-a286-d64e95a7b38f | OS::Neutron::Subnet                | CREATE_COMPLETE | 2022-03-09T03:06:04Z |\r\n| internalVL1_qospolicy | 66e02e54-b1b7-49c7-8e4f-0c6dcd3b3b0a | OS::Neutron::QoSPolicy             | CREATE_COMPLETE | 2022-03-09T03:06:04Z |\r\n+-----------------------+--------------------------------------+------------------------------------+-----------------+----------------------+\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u786e\u8ba4stack\u5df2\u7ecf\u521b\u5efa\uff0c\u5e76\u4e14\u5df2\u7ecf\u521b\u5efa\u4e86\u5b9e\u4f8b\u7b49\u3002<\/p>\n<p>\u8fd9\u7bc7\u6587\u7ae0\u5230\u6b64\u7ed3\u675f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u73af\u5883 Tacker\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u74b0\u5883 OpenStack\u4e0a\u306eVM OpenStack\u306e\u69cb\u7bc9\u306b\u95a2\u3057\u3066\u306f\u4ee5\u4e0b\u8a18 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-28376","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>\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\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\/\u4f7f\u7528kolla-ansible\u6765\u5b89\u88c5tacker\u3002-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528kolla-ansible\u6765\u5b89\u88c5tacker\u3002-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-14T06:22:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-11T23:49:56+00:00\" \/>\n<meta name=\"author\" content=\"\u79d1, \u9896\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u9896\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \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\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/\",\"name\":\"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-12-14T06:22:48+00:00\",\"dateModified\":\"2025-08-11T23:49:56+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\"},\"description\":\"\u5173\u4e8e\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\"}]},{\"@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\/8ca01ba7f7362ad4edb7da206a12f29e\",\"name\":\"\u79d1, \u9896\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u9896\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker - Blog - Silicon Cloud","description":"\u5173\u4e8e\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\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\/\u4f7f\u7528kolla-ansible\u6765\u5b89\u88c5tacker\u3002-2\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker","og_description":"\u5173\u4e8e\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528kolla-ansible\u6765\u5b89\u88c5tacker\u3002-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-12-14T06:22:48+00:00","article_modified_time":"2025-08-11T23:49:56+00:00","author":"\u79d1, \u9896","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u9896","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/","name":"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-12-14T06:22:48+00:00","dateModified":"2025-08-11T23:49:56+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e"},"description":"\u5173\u4e8e\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Kolla Ansible\u6765\u5b89\u88c5Tacker"}]},{"@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\/8ca01ba7f7362ad4edb7da206a12f29e","name":"\u79d1, \u9896","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","caption":"\u79d1, \u9896"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8kolla-ansible%e6%9d%a5%e5%ae%89%e8%a3%85tacker%e3%80%82-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/28376","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\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=28376"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/28376\/revisions"}],"predecessor-version":[{"id":111320,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/28376\/revisions\/111320"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=28376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=28376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=28376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}