{"id":398515,"date":"2024-06-29T14:07:22","date_gmt":"2024-06-29T14:07:22","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=398515"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=398515","title":{"rendered":"<span>\u041a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0412\u041c \u0434\u043b\u044f VMware\u00a0Cloud\u00a0Director \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/span>"},"content":{"rendered":"<div><!--[--><img loading=\"lazy\" decoding=\"async\" height=\"1\" src=\"https:\/\/www.facebook.com\/tr?id=840613629950599&amp;ev=PageView&amp;noscript=1\" style=\"display:none;\" width=\"1\"><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d \u041f\u0435\u0442\u0440\u043e\u0432, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0447\u0435\u0442\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 <a href=\"https:\/\/sbercloud.ru\/ru?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=habr_clouddirectorguide_0610_all_enterprise\">SberCloud<\/a>. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043f\u043e\u0434 <a href=\"https:\/\/www.vmware.com\/ru\/products\/cloud-director.html\">VMware Cloud Director<\/a>.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 VMware: Fusion, Workstation \u0438\u043b\u0438 Player, \u043d\u043e \u043e\u043d\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439, \u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0435\u0449\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 VMware VIX API \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 GNU\\Linux. \u042f \u0432\u044b\u0431\u0440\u0430\u043b \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u043e\u0433\u043e VirtualBox. <\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u043a\u0440\u0430\u0442\u043a\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f95\/b0b\/2a5\/f95b0b2a56fab1d7ca8f6bee1a56c4ab.jpg\" width=\"2153\" height=\"1441\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f95\/b0b\/2a5\/f95b0b2a56fab1d7ca8f6bee1a56c4ab.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0434\u0435\u043b\u0443, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0435\u0448\u0438\u043b \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u044e \u0432\u0430\u0441 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u0441\u0442\u0435\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0423 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f <a href=\"https:\/\/www.packer.io\/\">Packer<\/a> \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 Ubuntu Server 18.04 \u0438 \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041e \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0430 \u0432 \u0441\u0440\u0435\u0434\u0435 <a href=\"https:\/\/www.vmware.com\/ru\/products\/fusion.html\">Fusion<\/a>. \u0414\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0444\u0430\u0439\u043b \u043e\u0442\u0432\u0435\u0442\u043e\u0432 <a href=\"https:\/\/help.ubuntu.com\/18.04\/installation-guide\/amd64\/apbs02.html\">preseed.cfg<\/a>. \u041e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430 (\u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430).<\/p>\n<p>\u042f \u0440\u0435\u0448\u0438\u043b \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Packer, \u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c Fusion \u043d\u0430 VirtualBox. \u0412\u044b\u0431\u043e\u0440 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 open source \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u044b\u043b \u0441\u0434\u0435\u043b\u0430\u043d \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0445\u043e\u0441\u0442\u043e\u0432\u044b\u0445 \u041e\u0421 \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Open_Virtualization_Format\">OVF \u0438 OVA<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, VirtualBox \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <a href=\"https:\/\/www.virtualbox.org\/wiki\/Linux_Downloads\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a> \u0434\u043b\u044f GNU\/Linux, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u041a \u0441\u043b\u043e\u0432\u0443, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/learn.hashicorp.com\/tutorials\/packer\/get-started-install-cli\">\u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442<\/a> \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Packer.<\/p>\n<h2>\u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b<\/h2>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u043e\u0441\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f CI-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d, \u0432\u044b\u0431\u0440\u0430\u043b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 Ubuntu Server 20.04. \u041d\u0430 \u043d\u0435\u0451 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u0443\u0442\u0438\u043b\u0438\u0442\u044b Packer \u0438 VirtualBox. \u041d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 [<a href=\"https:\/\/learn.hashicorp.com\/tutorials\/packer\/get-started-install-cli\">\u0440\u0430\u0437<\/a>, <a href=\"https:\/\/www.virtualbox.org\/wiki\/Linux_Downloads\">\u0434\u0432\u0430<\/a>].<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0441\u0442\u0430\u043b\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0434\u043b\u044f Packer. Packer \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043b\u044f VirtualBox \u2014 <a href=\"https:\/\/www.packer.io\/docs\/builders\/virtualbox\/iso\">virtualbox-iso<\/a>. \u041d\u0430\u043f\u0438\u0441\u0430\u043b \u0448\u0430\u0431\u043b\u043e\u043d, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0441\u0431\u043e\u0440\u043a\u0443 \u043e\u0431\u0440\u0430\u0437\u0430 \u0412\u041c. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0437 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Cloud Director. \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b, \u0447\u0442\u043e Cloud Director \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043d\u044f\u043b\u0430 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 <a href=\"https:\/\/fabianlee.org\/2016\/11\/30\/vmware-exporting-from-oracle-virtualbox-vagrant-to-vcloud-director\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a> \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u041e\u043d \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0438\u0437-\u0437\u0430 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0442\u0438\u043f\u0430\u0445 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f (\u0440\u0430\u0437\u043d\u0430\u044f \u0442\u0440\u0430\u043a\u0442\u043e\u0432\u043a\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430), \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0432 VMware Cloud Director \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2014 \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e, \u043f\u043e\u043a\u0430\u0436\u0443 \u0434\u0430\u043b\u0435\u0435.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d Packer<\/h2>\n<p>\u0412 \u0448\u0430\u0431\u043b\u043e\u043d Packer \u0432\u043d\u0435\u0441\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043e\u0431\u0440\u0430\u0437\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 OVF<\/strong>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0443 <em>format<\/em> \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <em>ovf<\/em>. \u042d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0434\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430: XML-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0412\u041c \u0438 \u043e\u0431\u0440\u0430\u0437 \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u0422\u0430\u043a, \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c. \u041e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u0435\u0439\u0441\u0430 \u044f \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0441\u043a\u0438 \u0438 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e iso-\u043e\u0431\u0440\u0430\u0437\u044b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0420\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u043a\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u043a\u0430\u0436\u0435\u043c SCSI \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0436\u0435\u0441\u0442\u043a\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432<\/strong>. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (scsi) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435 <em>hard_drive_interface<\/em>. \u0412 VirtualBox \u0431\u0443\u0434\u0435\u0442 \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 LsiLogic, \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043b\u044e\u0441\u043e\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 Cloud Director.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 <strong>\u0432\u044b\u0431\u0435\u0440\u0435\u043c BIOS<\/strong>, \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u2014 <strong>vmsvga<\/strong> (VMware SVGA). \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b, \u2014 \u044d\u0442\u043e <em>firmware<\/em> \u0438 <em>gfx_controller<\/em>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0434\u043b\u044f Packer \u2014 <em>main.pkr.hcl<\/em> \u2014 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">source \"virtualbox-iso\" \"ubuntu-18_04-amd64\" {   vm_name                  = \"ubuntu-18.04-amd64\"   guest_os_type            = \"Ubuntu_64\"   nested_virt              = false   headless                 = true   keep_registered          = false   guest_additions_mode     = \"disable\"   cpus                     = 2   memory                   = 4096   chipset                  = \"piix3\"   firmware                 = \"bios\"   rtc_time_base            = \"UTC\"   disk_size                = 32768   hard_drive_interface     = \"scsi\"   hard_drive_discard       = true   hard_drive_nonrotational = true   nic_type                 = \"82540EM\"   gfx_controller           = \"vmsvga\"   gfx_vram_size            = \"16\"   gfx_accelerate_3d        = false   sound                    = \"none\"   iso_url                  = \"http:\/\/cdimage.ubuntu.com\/ubuntu\/releases\/18.04\/release\/ubuntu-18.04.5-server-amd64.iso\"   iso_checksum             = \"sha256:8c5fc24894394035402f66f3824beb7234b757dd2b5531379cb310cedfdf0996\"   boot_command             = [\"&lt;esc>&lt;wait>\",                               \"&lt;esc>&lt;wait>\",                               \"&lt;enter>&lt;wait>\",                               \"\/install\/vmlinuz auto=true priority=critical fb=false initrd=\/install\/initrd.gz grub-installer\/bootdev=\/dev\/sda preseed\/file=\/floppy\/preseed.cfg -- &lt;enter>\"]   floppy_files             = [\".\/preseed\/preseed.cfg\"]   shutdown_command         = \"echo '${var.password}' | sudo -S shutdown -P now\"   post_shutdown_delay      = \"1m\"   output_directory         = \".\/output\"   format                   = \"ovf\"   bundle_iso               = false   communicator             = \"ssh\"   ssh_username             = var.username   ssh_password             = var.password   ssh_timeout              = \"20m\" }    build {   sources = [\"sources.virtualbox-iso.ubuntu-18_04-amd64\"]    # ssh   provisioner \"shell\" {     inline           = [\"sudo sed -i 's\/#PasswordAuthentication yes\/PasswordAuthentication no\/g' \/etc\/ssh\/sshd_config\",                         \"sudo systemctl stop sshd\",                         \"sudo rm \/etc\/ssh\/ssh_host_*\"]   }    # .\/packer-manifest.json   post-processor \"manifest\" {       output = \"packer-manifest.json\"   } }<\/code><\/pre>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0442\u043e\u043c, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0437\u043d\u0430\u0442\u044c \u0432 <a href=\"https:\/\/www.packer.io\/docs\/builders\/virtualbox\/iso\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> \u043d\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a <em>virtualbox-iso<\/em>. \u0417\u0434\u0435\u0441\u044c \u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0447\u0443 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u2014 <em>headless<\/em>, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0441\u0431\u043e\u0440\u043a\u0443 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u042d\u0442\u043e\u0442 \u0444\u043b\u0430\u0436\u043e\u043a \u0441\u0442\u043e\u0438\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <em>false<\/em>, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u042d\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0443.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c Packer \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u043e\u043d \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0437 \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430: <em>ubuntu-18.04-amd64-disk001.vmdk<\/em>;<\/p>\n<\/li>\n<li>\n<p>XML-\u0444\u0430\u0439\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b: <em>ubuntu-18.04-amd64.ovf<\/em>;<\/p>\n<\/li>\n<li>\n<p>JSON-\u0444\u0430\u0439\u043b \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432:<em> packer-manifest.json.<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/583\/761\/b89\/583761b89ecc7bdc6ab578bf78750ca5.png\" width=\"948\" height=\"246\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/583\/761\/b89\/583761b89ecc7bdc6ab578bf78750ca5.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0431\u043b\u043e\u043a\u0443:<\/p>\n<pre><code class=\"cpp\"># .\/packer-manifest.json post-processor \"manifest\" {     output = \"packer-manifest.json\" }<\/code><\/pre>\n<p>\u0424\u0430\u0439\u043b <em>packer-manifest.json<\/em> \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435:<\/p>\n<pre><code class=\"json\">{   \"builds\": [     {       \"name\": \"ubuntu-18_04-amd64\",       \"builder_type\": \"virtualbox-iso\",       \"build_time\": 1629043596,       \"files\": [         {           \"name\": \"output\/ubuntu-18.04-amd64-disk001.vmdk\",           \"size\": 916132352         },         {           \"name\": \"output\/ubuntu-18.04-amd64.ovf\",           \"size\": 6771         }       ],       \"artifact_id\": \"VM\",       \"packer_run_uuid\": \"b5fbae2b-59e7-fd6f-4154-cae16befd459\",       \"custom_data\": null     }   ],   \"last_run_uuid\": \"b5fbae2b-59e7-fd6f-4154-cae16befd459\" }<\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u043d\u0430\u0439\u0442\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0412\u041c (<em>ubuntu-18.04-amd64-disk001.vmdk <\/em>\u0438 <em>ubuntu-18.04-amd64.ovf<\/em>).<\/p>\n<h2>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c .ovf<\/h2>\n<p>\u041d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043e\u0431\u0440\u0430\u0437\u0430 \u0412\u041c \u0432 Open Virtualization Format. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b <em>*.ovf<\/em>. <\/p>\n<p>\u042f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 Python 3.8 (\u043e\u043d \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 Ubuntu Server 20.04) \u0438 \u00ab\u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u043b\u00bb <em>packer-manifest.json<\/em>, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 .ovf. \u0412\u043e\u0442 \u0447\u0430\u0441\u0442\u044c, \u0440\u0435\u0448\u0430\u044e\u0449\u0430\u044f \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443:<\/p>\n<pre><code class=\"python\">import json  with open(\"packer-manifest.json\", \"r\") as json_file:     data = json.load(json_file)     for i in data[\"builds\"]:         for j in i[\"files\"]:             if \".ovf\" in j[\"name\"]:                 ovf_in = j[\"name\"]                 ovf_out = ovf_in.replace(\".ovf\", \"-vmware.ovf\") <\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <em>ovf_in<\/em> \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 .ovf, \u0430 <em>ovf_out<\/em> \u2014 \u043f\u0443\u0442\u044c \u0434\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 .ovf, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u043d\u0435\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043c\u043e\u0434\u0443\u043b\u044c <em>xml.etree.ElementTree<\/em>.<\/p>\n<p>\u041f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 XML \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <a href=\"http:\/\/xmlstar.sourceforge.net\/\">XMLStarlet<\/a>. \u041e\u043d\u0430 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u0435\u0440\u0435\u0432\u0430 \u0432\u0445\u043e\u0434\u044f\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0444\u0430\u0439\u043b\u0430 .ovf.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u044b\u0432\u043e\u0434 \u0443\u0442\u0438\u043b\u0438\u0442\u044b XMLStarlet<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">> xmlstarlet el .\/output\/ubuntu-18.04-amd64.ovf Envelope Envelope\/References Envelope\/References\/File Envelope\/DiskSection Envelope\/DiskSection\/Info Envelope\/DiskSection\/Disk Envelope\/NetworkSection Envelope\/NetworkSection\/Info Envelope\/NetworkSection\/Network Envelope\/NetworkSection\/Network\/Description Envelope\/VirtualSystem Envelope\/VirtualSystem\/Info Envelope\/VirtualSystem\/OperatingSystemSection Envelope\/VirtualSystem\/OperatingSystemSection\/Info Envelope\/VirtualSystem\/OperatingSystemSection\/Description Envelope\/VirtualSystem\/OperatingSystemSection\/vbox:OSType Envelope\/VirtualSystem\/VirtualHardwareSection Envelope\/VirtualSystem\/VirtualHardwareSection\/Info Envelope\/VirtualSystem\/VirtualHardwareSection\/System Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:VirtualSystemIdentifier Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:VirtualSystemType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Description Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:VirtualQuantity Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:AllocationUnits Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Description Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:VirtualQuantity Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Address Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Description Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceSubType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Address Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Description Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceSubType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Address Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Description Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceSubType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:AddressOnParent Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Description Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:HostResource Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Parent Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:AutomaticAllocation Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Connection Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceSubType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/vbox:Machine Envelope\/VirtualSystem\/vbox:Machine\/ovf:Info Envelope\/VirtualSystem\/vbox:Machine\/Hardware Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/CPU Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/CPU\/PAE Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/CPU\/LongMode Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/CPU\/X2APIC Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/CPU\/HardwareVirtExLargePages Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Memory Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Boot Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Boot\/Order Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Boot\/Order Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Boot\/Order Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Boot\/Order Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Display Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/VideoCapture Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/RemoteDisplay Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/RemoteDisplay\/VRDEProperties Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/RemoteDisplay\/VRDEProperties\/Property Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/RemoteDisplay\/VRDEProperties\/Property Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/BIOS Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/BIOS\/IOAPIC Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/BIOS\/SmbiosUuidLittleEndian Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Network Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Network\/Adapter Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Network\/Adapter\/NAT Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/AudioAdapter Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/RTC Envelope\/VirtualSystem\/vbox:Machine\/Hardware\/Clipboard Envelope\/VirtualSystem\/vbox:Machine\/StorageControllers Envelope\/VirtualSystem\/vbox:Machine\/StorageControllers\/StorageController Envelope\/VirtualSystem\/vbox:Machine\/StorageControllers\/StorageController Envelope\/VirtualSystem\/vbox:Machine\/StorageControllers\/StorageController\/AttachedDevice Envelope\/VirtualSystem\/vbox:Machine\/StorageControllers\/StorageController\/AttachedDevice\/Image<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0443\u0442\u0438\u043b\u0438\u0442\u044b XMLStarlet \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/XPath\">XPath<\/a>. \u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u2014 \u0432 \u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f. \u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 XML \u0432 Python \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0439 \u0442\u0440\u0430\u043a\u0442\u043e\u0432\u043a\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432.<\/p>\n<p>\u0421\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u043f\u0440\u043e\u043f\u0438\u0448\u0443 \u043d\u0438\u0436\u0435 \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 XPath \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d.<\/p>\n<p><strong>\u0423\u0434\u0430\u043b\u044f\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0438 \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432<\/strong>, \u043f\u0440\u0438 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b:<\/p>\n<pre><code class=\"xml\">ovf:Envelope\/ovf:NetworkSection ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:Hardware\/ovf:Network<\/code><\/pre>\n<p>\u0418\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0438\u0436\u0435 \u044f \u0443\u0434\u0430\u043b\u0438\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435, \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u043b\u043e\u0432\u043e Ethernet:<\/p>\n<pre><code class=\"xml\">ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:Item\/rasd:Caption<\/code><\/pre>\n<p><strong>\u0418\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435\u043c IDE-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432<\/strong>. IDE \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e SCSI. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0433\u0434\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f ideController, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <em>name=&#187;IDE Controller&#187;<\/em>.<\/p>\n<pre><code class=\"xml\">ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:Item\/rasd:Caption ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:StorageControllers\/ovf:StorageController<\/code><\/pre>\n<p><strong>\u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0430\u0443\u0434\u0438\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440<\/strong>. \u041e\u043d \u043d\u0430\u043c \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445.<\/p>\n<pre><code class=\"xml\">ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:Hardware\/ovf:AudioAdapter<\/code><\/pre>\n<p><strong>\u0414\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/strong>. \u041c\u0435\u043d\u044f\u0435\u043c \u0438\u0445 \u0441 <em>MegaBytes<\/em> \u043d\u0430 <em>byte*2^20<\/em>. \u042d\u0442\u043e\u0442 \u043d\u044e\u0430\u043d\u0441 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0439 \u0442\u0440\u0430\u043a\u0442\u0443\u044e\u0442 Open Virtualization Format \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443:<\/p>\n<pre><code class=\"xml\">ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:Item\/rasd:AllocationUnits<\/code><\/pre>\n<p><strong>\u041c\u0435\u043d\u044f\u0435\u043c \u0442\u0438\u043f \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/strong>. \u0412\u043c\u0435\u0441\u0442\u043e <em>virtualbox-2.2<\/em> \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c <em>vmx-16<\/em>, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 VirtualBox \u043d\u0430 <a href=\"https:\/\/kb.vmware.com\/s\/article\/1003746\">VMware<\/a>.<\/p>\n<pre><code class=\"xml\">ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:System\/vssd:VirtualSystemType.<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c <em>xml.etree.ElementTree<\/em> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 <a href=\"https:\/\/en.wikipedia.org\/wiki\/XML_namespace\">\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d<\/a> \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <em>xml.etree.ElementTree.register_namespace<\/em>. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 .ova \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <em>xmlns<\/em>.<\/p>\n<pre><code class=\"python\">import xml.etree.ElementTree as ET  ET.register_namespace('', \"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\") ET.register_namespace('ovf', \"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\") ET.register_namespace('rasd', \"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_ResourceAllocationSettingData\") ET.register_namespace('vssd', \"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_VirtualSystemSettingData\") ET.register_namespace('xsi', \"http:\/\/www.w3.org\/2001\/XMLSchema-instance\") ET.register_namespace('vbox', \"http:\/\/www.virtualbox.org\/ovf\/machine\")<\/code><\/pre>\n<p>\u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 <em>ovf-patch.py<\/em>:<\/p>\n<pre><code class=\"python\">#!\/usr\/bin\/python3  import json import xml.etree.ElementTree as ET  ET.register_namespace('', \"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\") ET.register_namespace('ovf', \"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\") ET.register_namespace('rasd', \"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_ResourceAllocationSettingData\") ET.register_namespace('vssd', \"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_VirtualSystemSettingData\") ET.register_namespace('xsi', \"http:\/\/www.w3.org\/2001\/XMLSchema-instance\") ET.register_namespace('vbox', \"http:\/\/www.virtualbox.org\/ovf\/machine\")  with open(\"packer-manifest.json\", \"r\") as json_file:     data = json.load(json_file)     for i in data[\"builds\"]:         for j in i[\"files\"]:             if \".ovf\" in j[\"name\"]:                 ovf_in = j[\"name\"]                 ovf_out = ovf_in.replace(\".ovf\", \"-vmware.ovf\")      tree = ET.parse(ovf_in)     root = tree.getroot()      # ovf:Envelope\/ovf:NetworkSection     for i in root.findall(\".\/{*}NetworkSection\"):         root.remove(i)      # ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection     for i in root.findall(\".\/{*}VirtualSystem\/{*}VirtualHardwareSection\"):         # ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:Item         for i_i in i.findall(\".\/{*}Item\"):             # ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:Item\/rasd:AllocationUnits             for i_i_i in i_i.findall(\".\/{*}AllocationUnits\"):                 if i_i_i.text == \"MegaBytes\":                     i_i_i.text = \"byte * 2^20\"             # ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:Item\/rasd:Caption             for i_i_i in i_i.findall(\".\/{*}Caption\"):                 if \"ideController\" in i_i_i.text:                     i.remove(i_i)                 if \"Ethernet\" in i_i_i.text:                     i.remove(i_i)         # ovf:Envelope\/ovf:VirtualSystem\/ovf:VirtualHardwareSection\/ovf:System\/vssd:VirtualSystemType         for i_i in i.findall(\"{*}System\/{*}VirtualSystemType\"):             i_i.text = \"vmx-16\"      # ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:Hardware     for i in root.findall(\".\/{*}VirtualSystem\/{*}Machine\/{*}Hardware\"):         # ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:Hardware\/ovf:AudioAdapter         for i_i in i.findall(\".\/{*}AudioAdapter\"):             i.remove(i_i)         # ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:Hardware\/ovf:Network         for i_i in i.findall(\".\/{*}Network\"):             i.remove(i_i)      # ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:StorageControllers     for i in root.findall(\".\/{*}VirtualSystem\/{*}Machine\/{*}StorageControllers\"):         # ovf:Envelope\/ovf:VirtualSystem\/vbox:Machine\/ovf:StorageControllers\/ovf:StorageController         for i_i in i.findall(\".\/{*}StorageController[@name='IDE Controller']\"):             i.remove(i_i)      tree.write(ovf_out)     print(ovf_out)<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b:<\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0437 \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430: <em>ubuntu-18.04-amd64-disk001.vmdk<\/em>;<\/p>\n<\/li>\n<li>\n<p>XML-\u0444\u0430\u0439\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0412\u041c: <em>ubuntu-18.04-amd64.ovf<\/em>;    <\/p>\n<\/li>\n<li>\n<p>XML-\u0444\u0430\u0439\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0412\u041c, \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043a \u0438\u043c\u043f\u043e\u0440\u0442\u0443 \u0432 Cloud Director: <em>ubuntu-18.04-amd64-vmware.ovf<\/em>.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/66b\/0c8\/fe5\/66b0c8fe595c9da7d117add4ff1fb1a5.png\" width=\"948\" height=\"251\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/66b\/0c8\/fe5\/66b0c8fe595c9da7d117add4ff1fb1a5.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <em>ubuntu-18.04-amd64.ovf<\/em>:<\/p>\n<details class=\"spoiler\">\n<summary>ubuntu-18.04-amd64.ovf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;?xml version=\"1.0\"?> &lt;Envelope ovf:version=\"1.0\" xml:lang=\"en-US\" xmlns=\"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\" xmlns:ovf=\"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\" xmlns:rasd=\"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_ResourceAllocationSettingData\" xmlns:vssd=\"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_VirtualSystemSettingData\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:vbox=\"http:\/\/www.virtualbox.org\/ovf\/machine\">   &lt;References>     &lt;File ovf:id=\"file1\" ovf:href=\"ubuntu-18.04-amd64-disk001.vmdk\"\/>   &lt;\/References>   &lt;DiskSection>     &lt;Info>List of the virtual disks used in the package&lt;\/Info>     &lt;Disk ovf:capacity=\"34359738368\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http:\/\/www.vmware.com\/interfaces\/specifications\/vmdk.html#streamOptimized\" vbox:uuid=\"a5659548-990a-4853-a8ab-bb9a168df0fc\"\/>   &lt;\/DiskSection>   &lt;NetworkSection>     &lt;Info>Logical networks used in the package&lt;\/Info>     &lt;Network ovf:name=\"NAT\">       &lt;Description>Logical network used by this appliance.&lt;\/Description>     &lt;\/Network>   &lt;\/NetworkSection>   &lt;VirtualSystem ovf:id=\"ubuntu-18.04-amd64\">     &lt;Info>A virtual machine&lt;\/Info>     &lt;OperatingSystemSection ovf:id=\"94\">       &lt;Info>The kind of installed guest operating system&lt;\/Info>       &lt;Description>Ubuntu_64&lt;\/Description>       &lt;vbox:OSType ovf:required=\"false\">Ubuntu_64&lt;\/vbox:OSType>     &lt;\/OperatingSystemSection>     &lt;VirtualHardwareSection>       &lt;Info>Virtual hardware requirements for a virtual machine&lt;\/Info>       &lt;System>         &lt;vssd:ElementName>Virtual Hardware Family&lt;\/vssd:ElementName>         &lt;vssd:InstanceID>0&lt;\/vssd:InstanceID>         &lt;vssd:VirtualSystemIdentifier>ubuntu-18.04-amd64&lt;\/vssd:VirtualSystemIdentifier>         &lt;vssd:VirtualSystemType>virtualbox-2.2&lt;\/vssd:VirtualSystemType>       &lt;\/System>       &lt;Item>         &lt;rasd:Caption>2 virtual CPU&lt;\/rasd:Caption>         &lt;rasd:Description>Number of virtual CPUs&lt;\/rasd:Description>         &lt;rasd:ElementName>2 virtual CPU&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>1&lt;\/rasd:InstanceID>         &lt;rasd:ResourceType>3&lt;\/rasd:ResourceType>         &lt;rasd:VirtualQuantity>2&lt;\/rasd:VirtualQuantity>       &lt;\/Item>       &lt;Item>         &lt;rasd:AllocationUnits>MegaBytes&lt;\/rasd:AllocationUnits>         &lt;rasd:Caption>4096 MB of memory&lt;\/rasd:Caption>         &lt;rasd:Description>Memory Size&lt;\/rasd:Description>         &lt;rasd:ElementName>4096 MB of memory&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>2&lt;\/rasd:InstanceID>         &lt;rasd:ResourceType>4&lt;\/rasd:ResourceType>         &lt;rasd:VirtualQuantity>4096&lt;\/rasd:VirtualQuantity>       &lt;\/Item>       &lt;Item>         &lt;rasd:Address>0&lt;\/rasd:Address>         &lt;rasd:Caption>ideController0&lt;\/rasd:Caption>         &lt;rasd:Description>IDE Controller&lt;\/rasd:Description>         &lt;rasd:ElementName>ideController0&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>3&lt;\/rasd:InstanceID>         &lt;rasd:ResourceSubType>PIIX4&lt;\/rasd:ResourceSubType>         &lt;rasd:ResourceType>5&lt;\/rasd:ResourceType>       &lt;\/Item>       &lt;Item>         &lt;rasd:Address>1&lt;\/rasd:Address>         &lt;rasd:Caption>ideController1&lt;\/rasd:Caption>         &lt;rasd:Description>IDE Controller&lt;\/rasd:Description>         &lt;rasd:ElementName>ideController1&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>4&lt;\/rasd:InstanceID>         &lt;rasd:ResourceSubType>PIIX4&lt;\/rasd:ResourceSubType>         &lt;rasd:ResourceType>5&lt;\/rasd:ResourceType>       &lt;\/Item>       &lt;Item>         &lt;rasd:Address>0&lt;\/rasd:Address>         &lt;rasd:Caption>scsiController0&lt;\/rasd:Caption>         &lt;rasd:Description>SCSI Controller&lt;\/rasd:Description>         &lt;rasd:ElementName>scsiController0&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>5&lt;\/rasd:InstanceID>         &lt;rasd:ResourceSubType>lsilogic&lt;\/rasd:ResourceSubType>         &lt;rasd:ResourceType>6&lt;\/rasd:ResourceType>       &lt;\/Item>       &lt;Item>         &lt;rasd:AddressOnParent>0&lt;\/rasd:AddressOnParent>         &lt;rasd:Caption>disk1&lt;\/rasd:Caption>         &lt;rasd:Description>Disk Image&lt;\/rasd:Description>         &lt;rasd:ElementName>disk1&lt;\/rasd:ElementName>         &lt;rasd:HostResource>\/disk\/vmdisk1&lt;\/rasd:HostResource>         &lt;rasd:InstanceID>6&lt;\/rasd:InstanceID>         &lt;rasd:Parent>5&lt;\/rasd:Parent>         &lt;rasd:ResourceType>17&lt;\/rasd:ResourceType>       &lt;\/Item>       &lt;Item>         &lt;rasd:AutomaticAllocation>true&lt;\/rasd:AutomaticAllocation>         &lt;rasd:Caption>Ethernet adapter on 'NAT'&lt;\/rasd:Caption>         &lt;rasd:Connection>NAT&lt;\/rasd:Connection>         &lt;rasd:ElementName>Ethernet adapter on 'NAT'&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>7&lt;\/rasd:InstanceID>         &lt;rasd:ResourceSubType>E1000&lt;\/rasd:ResourceSubType>         &lt;rasd:ResourceType>10&lt;\/rasd:ResourceType>       &lt;\/Item>     &lt;\/VirtualHardwareSection>     &lt;vbox:Machine ovf:required=\"false\" version=\"1.16-linux\" uuid=\"{37db6186-f653-47f2-ba71-1b325b4aa806}\" name=\"ubuntu-18.04-amd64\" OSType=\"Ubuntu_64\" snapshotFolder=\"Snapshots\" lastStateChange=\"2021-08-15T18:03:51Z\">       &lt;ovf:Info>Complete VirtualBox machine configuration in VirtualBox format&lt;\/ovf:Info>       &lt;Hardware>         &lt;CPU count=\"2\">           &lt;PAE enabled=\"true\"\/>           &lt;LongMode enabled=\"true\"\/>           &lt;X2APIC enabled=\"true\"\/>           &lt;HardwareVirtExLargePages enabled=\"false\"\/>         &lt;\/CPU>         &lt;Memory RAMSize=\"4096\"\/>         &lt;Boot>           &lt;Order position=\"1\" device=\"HardDisk\"\/>           &lt;Order position=\"2\" device=\"DVD\"\/>           &lt;Order position=\"3\" device=\"None\"\/>           &lt;Order position=\"4\" device=\"None\"\/>         &lt;\/Boot>         &lt;Display controller=\"VMSVGA\" VRAMSize=\"16\"\/>         &lt;VideoCapture screens=\"1\" file=\".\" fps=\"25\"\/>         &lt;RemoteDisplay enabled=\"true\">           &lt;VRDEProperties>             &lt;Property name=\"TCP\/Address\" value=\"127.0.0.1\"\/>             &lt;Property name=\"TCP\/Ports\" value=\"5968\"\/>           &lt;\/VRDEProperties>         &lt;\/RemoteDisplay>         &lt;BIOS>           &lt;IOAPIC enabled=\"true\"\/>           &lt;SmbiosUuidLittleEndian enabled=\"true\"\/>         &lt;\/BIOS>         &lt;Network>           &lt;Adapter slot=\"0\" enabled=\"true\" MACAddress=\"0800272C8B78\" type=\"82540EM\">             &lt;NAT\/>           &lt;\/Adapter>         &lt;\/Network>         &lt;AudioAdapter driver=\"Pulse\" enabledIn=\"false\" enabledOut=\"false\"\/>         &lt;RTC localOrUTC=\"UTC\"\/>         &lt;Clipboard\/>       &lt;\/Hardware>       &lt;StorageControllers>         &lt;StorageController name=\"IDE Controller\" type=\"PIIX4\" PortCount=\"2\" useHostIOCache=\"true\" Bootable=\"true\"\/>         &lt;StorageController name=\"SCSI Controller\" type=\"LsiLogic\" PortCount=\"16\" useHostIOCache=\"false\" Bootable=\"true\">           &lt;AttachedDevice nonrotational=\"true\" discard=\"true\" type=\"HardDisk\" hotpluggable=\"false\" port=\"0\" device=\"0\">             &lt;Image uuid=\"{a5659548-990a-4853-a8ab-bb9a168df0fc}\"\/>           &lt;\/AttachedDevice>         &lt;\/StorageController>       &lt;\/StorageControllers>     &lt;\/vbox:Machine>   &lt;\/VirtualSystem> &lt;\/Envelope><\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0418 \u0444\u0430\u0439\u043b \u0441 \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 <em>ubuntu-18.04-amd64-vmware.ovf<\/em>:<\/p>\n<details class=\"spoiler\">\n<summary>ubuntu-18.04-amd64-vmware.ovf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;ovf:Envelope xmlns:ovf=\"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\" xmlns:rasd=\"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_ResourceAllocationSettingData\" xmlns:vbox=\"http:\/\/www.virtualbox.org\/ovf\/machine\" xmlns:vssd=\"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_VirtualSystemSettingData\" ovf:version=\"1.0\" xml:lang=\"en-US\">   &lt;ovf:References>     &lt;ovf:File ovf:id=\"file1\" ovf:href=\"ubuntu-18.04-amd64-disk001.vmdk\" \/>   &lt;\/ovf:References>   &lt;ovf:DiskSection>     &lt;ovf:Info>List of the virtual disks used in the package&lt;\/ovf:Info>     &lt;ovf:Disk ovf:capacity=\"34359738368\" ovf:diskId=\"vmdisk1\" ovf:fileRef=\"file1\" ovf:format=\"http:\/\/www.vmware.com\/interfaces\/specifications\/vmdk.html#streamOptimized\" vbox:uuid=\"a5659548-990a-4853-a8ab-bb9a168df0fc\" \/>   &lt;\/ovf:DiskSection>   &lt;ovf:VirtualSystem ovf:id=\"ubuntu-18.04-amd64\">     &lt;ovf:Info>A virtual machine&lt;\/ovf:Info>     &lt;ovf:OperatingSystemSection ovf:id=\"94\">       &lt;ovf:Info>The kind of installed guest operating system&lt;\/ovf:Info>       &lt;ovf:Description>Ubuntu_64&lt;\/ovf:Description>       &lt;vbox:OSType ovf:required=\"false\">Ubuntu_64&lt;\/vbox:OSType>     &lt;\/ovf:OperatingSystemSection>     &lt;ovf:VirtualHardwareSection>       &lt;ovf:Info>Virtual hardware requirements for a virtual machine&lt;\/ovf:Info>       &lt;ovf:System>         &lt;vssd:ElementName>Virtual Hardware Family&lt;\/vssd:ElementName>         &lt;vssd:InstanceID>0&lt;\/vssd:InstanceID>         &lt;vssd:VirtualSystemIdentifier>ubuntu-18.04-amd64&lt;\/vssd:VirtualSystemIdentifier>         &lt;vssd:VirtualSystemType>vmx-16&lt;\/vssd:VirtualSystemType>       &lt;\/ovf:System>       &lt;ovf:Item>         &lt;rasd:Caption>2 virtual CPU&lt;\/rasd:Caption>         &lt;rasd:Description>Number of virtual CPUs&lt;\/rasd:Description>         &lt;rasd:ElementName>2 virtual CPU&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>1&lt;\/rasd:InstanceID>         &lt;rasd:ResourceType>3&lt;\/rasd:ResourceType>         &lt;rasd:VirtualQuantity>2&lt;\/rasd:VirtualQuantity>       &lt;\/ovf:Item>       &lt;ovf:Item>         &lt;rasd:AllocationUnits>byte * 2^20&lt;\/rasd:AllocationUnits>         &lt;rasd:Caption>4096 MB of memory&lt;\/rasd:Caption>         &lt;rasd:Description>Memory Size&lt;\/rasd:Description>         &lt;rasd:ElementName>4096 MB of memory&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>2&lt;\/rasd:InstanceID>         &lt;rasd:ResourceType>4&lt;\/rasd:ResourceType>         &lt;rasd:VirtualQuantity>4096&lt;\/rasd:VirtualQuantity>       &lt;\/ovf:Item>       &lt;ovf:Item>         &lt;rasd:Address>0&lt;\/rasd:Address>         &lt;rasd:Caption>scsiController0&lt;\/rasd:Caption>         &lt;rasd:Description>SCSI Controller&lt;\/rasd:Description>         &lt;rasd:ElementName>scsiController0&lt;\/rasd:ElementName>         &lt;rasd:InstanceID>5&lt;\/rasd:InstanceID>         &lt;rasd:ResourceSubType>lsilogic&lt;\/rasd:ResourceSubType>         &lt;rasd:ResourceType>6&lt;\/rasd:ResourceType>       &lt;\/ovf:Item>       &lt;ovf:Item>         &lt;rasd:AddressOnParent>0&lt;\/rasd:AddressOnParent>         &lt;rasd:Caption>disk1&lt;\/rasd:Caption>         &lt;rasd:Description>Disk Image&lt;\/rasd:Description>         &lt;rasd:ElementName>disk1&lt;\/rasd:ElementName>         &lt;rasd:HostResource>\/disk\/vmdisk1&lt;\/rasd:HostResource>         &lt;rasd:InstanceID>6&lt;\/rasd:InstanceID>         &lt;rasd:Parent>5&lt;\/rasd:Parent>         &lt;rasd:ResourceType>17&lt;\/rasd:ResourceType>       &lt;\/ovf:Item>       &lt;\/ovf:VirtualHardwareSection>     &lt;vbox:Machine ovf:required=\"false\" version=\"1.16-linux\" uuid=\"{37db6186-f653-47f2-ba71-1b325b4aa806}\" name=\"ubuntu-18.04-amd64\" OSType=\"Ubuntu_64\" snapshotFolder=\"Snapshots\" lastStateChange=\"2021-08-15T18:03:51Z\">       &lt;ovf:Info>Complete VirtualBox machine configuration in VirtualBox format&lt;\/ovf:Info>       &lt;ovf:Hardware>         &lt;ovf:CPU count=\"2\">           &lt;ovf:PAE enabled=\"true\" \/>           &lt;ovf:LongMode enabled=\"true\" \/>           &lt;ovf:X2APIC enabled=\"true\" \/>           &lt;ovf:HardwareVirtExLargePages enabled=\"false\" \/>         &lt;\/ovf:CPU>         &lt;ovf:Memory RAMSize=\"4096\" \/>         &lt;ovf:Boot>           &lt;ovf:Order position=\"1\" device=\"HardDisk\" \/>           &lt;ovf:Order position=\"2\" device=\"DVD\" \/>           &lt;ovf:Order position=\"3\" device=\"None\" \/>           &lt;ovf:Order position=\"4\" device=\"None\" \/>         &lt;\/ovf:Boot>         &lt;ovf:Display controller=\"VMSVGA\" VRAMSize=\"16\" \/>         &lt;ovf:VideoCapture screens=\"1\" file=\".\" fps=\"25\" \/>         &lt;ovf:RemoteDisplay enabled=\"true\">           &lt;ovf:VRDEProperties>             &lt;ovf:Property name=\"TCP\/Address\" value=\"127.0.0.1\" \/>             &lt;ovf:Property name=\"TCP\/Ports\" value=\"5968\" \/>           &lt;\/ovf:VRDEProperties>         &lt;\/ovf:RemoteDisplay>         &lt;ovf:BIOS>           &lt;ovf:IOAPIC enabled=\"true\" \/>           &lt;ovf:SmbiosUuidLittleEndian enabled=\"true\" \/>         &lt;\/ovf:BIOS>         &lt;ovf:RTC localOrUTC=\"UTC\" \/>         &lt;ovf:Clipboard \/>       &lt;\/ovf:Hardware>       &lt;ovf:StorageControllers>         &lt;ovf:StorageController name=\"SCSI Controller\" type=\"LsiLogic\" PortCount=\"16\" useHostIOCache=\"false\" Bootable=\"true\">           &lt;ovf:AttachedDevice nonrotational=\"true\" discard=\"true\" type=\"HardDisk\" hotpluggable=\"false\" port=\"0\" device=\"0\">             &lt;ovf:Image uuid=\"{a5659548-990a-4853-a8ab-bb9a168df0fc}\" \/>           &lt;\/ovf:AttachedDevice>         &lt;\/ovf:StorageController>       &lt;\/ovf:StorageControllers>     &lt;\/vbox:Machine>   &lt;\/ovf:VirtualSystem> &lt;\/ovf:Envelope><\/code><\/pre>\n<\/div>\n<\/details>\n<h2>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0437<\/h2>\n<p>\u0414\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043e\u0431\u0440\u0430\u0437\u0430 \u0412\u041c \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 <a href=\"https:\/\/www.vmware.com\/support\/developer\/ovf\/\">OVF Tool<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/github.com\/vmware\/vcd-cli\">vcd-cli<\/a>. \u042d\u0442\u043e \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 VMware. \u041e\u043d\u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Cloud Director \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0412\u041c \u0438\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u043b\u0438 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/registry.terraform.io\/providers\/sbercloud-terraform\/sbercloud\/latest\">Terraform<\/a>), \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0441\u043a\u0438 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437 VirtualBox \u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0432 VMware Cloud Director. \u041e\u043f\u0438\u0441\u0430\u043b \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e CI-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/sbercloud.ru\/ru\/vmware-virtual-datacenter?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=habr_clouddirectorguide_0610_vmware_enterprise\">\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0426\u041e\u0414 \u043d\u0430 \u0431\u0430\u0437\u0435 VMware<\/a>, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 <a href=\"https:\/\/sbercloud.ru\/ru\/become-customer?product=vmware-virtual-datacenter&amp;utm_source=habr&amp;utm_medium=article&amp;utm_campaign=habr_clouddirectorguide_0610_vmware_enterprise\">\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443 \u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u0446\u0438\u044e<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/581362\/\"> https:\/\/habr.com\/ru\/articles\/581362\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d \u041f\u0435\u0442\u0440\u043e\u0432, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0447\u0435\u0442\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 <a href=\"https:\/\/sbercloud.ru\/ru?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=habr_clouddirectorguide_0610_all_enterprise\">SberCloud<\/a>. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043f\u043e\u0434 <a href=\"https:\/\/www.vmware.com\/ru\/products\/cloud-director.html\">VMware Cloud Director<\/a>.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 VMware: Fusion, Workstation \u0438\u043b\u0438 Player, \u043d\u043e \u043e\u043d\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439, \u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0435\u0449\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 VMware VIX API \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 GNU\\Linux. \u042f \u0432\u044b\u0431\u0440\u0430\u043b \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u043e\u0433\u043e VirtualBox. <\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u043a\u0440\u0430\u0442\u043a\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0434\u0435\u043b\u0443, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0435\u0448\u0438\u043b \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u044e \u0432\u0430\u0441 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u0441\u0442\u0435\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0423 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f <a href=\"https:\/\/www.packer.io\/\">Packer<\/a> \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 Ubuntu Server 18.04 \u0438 \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041e \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0430 \u0432 \u0441\u0440\u0435\u0434\u0435 <a href=\"https:\/\/www.vmware.com\/ru\/products\/fusion.html\">Fusion<\/a>. \u0414\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0444\u0430\u0439\u043b \u043e\u0442\u0432\u0435\u0442\u043e\u0432 <a href=\"https:\/\/help.ubuntu.com\/18.04\/installation-guide\/amd64\/apbs02.html\">preseed.cfg<\/a>. \u041e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430 (\u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430).<\/p>\n<p>\u042f \u0440\u0435\u0448\u0438\u043b \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Packer, \u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c Fusion \u043d\u0430 VirtualBox. \u0412\u044b\u0431\u043e\u0440 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 open source \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u044b\u043b \u0441\u0434\u0435\u043b\u0430\u043d \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0445\u043e\u0441\u0442\u043e\u0432\u044b\u0445 \u041e\u0421 \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Open_Virtualization_Format\">OVF \u0438 OVA<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, VirtualBox \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <a href=\"https:\/\/www.virtualbox.org\/wiki\/Linux_Downloads\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a> \u0434\u043b\u044f GNU\/Linux, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u041a \u0441\u043b\u043e\u0432\u0443, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/learn.hashicorp.com\/tutorials\/packer\/get-started-install-cli\">\u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442<\/a> \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Packer.<\/p>\n<h2>\u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b<\/h2>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u043e\u0441\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f CI-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d, \u0432\u044b\u0431\u0440\u0430\u043b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 Ubuntu Server 20.04. \u041d\u0430 \u043d\u0435\u0451 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u0443\u0442\u0438\u043b\u0438\u0442\u044b Packer \u0438 VirtualBox. \u041d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 [<a href=\"https:\/\/learn.hashicorp.com\/tutorials\/packer\/get-started-install-cli\">\u0440\u0430\u0437<\/a>, <a href=\"https:\/\/www.virtualbox.org\/wiki\/Linux_Downloads\">\u0434\u0432\u0430<\/a>].<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0441\u0442\u0430\u043b\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0434\u043b\u044f Packer. Packer \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043b\u044f VirtualBox \u2014 <a href=\"https:\/\/www.packer.io\/docs\/builders\/virtualbox\/iso\">virtualbox-iso<\/a>. \u041d\u0430\u043f\u0438\u0441\u0430\u043b \u0448\u0430\u0431\u043b\u043e\u043d, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0441\u0431\u043e\u0440\u043a\u0443 \u043e\u0431\u0440\u0430\u0437\u0430 \u0412\u041c. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0437 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Cloud Director. \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b, \u0447\u0442\u043e Cloud Director \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043d\u044f\u043b\u0430 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 <a href=\"https:\/\/fabianlee.org\/2016\/11\/30\/vmware-exporting-from-oracle-virtualbox-vagrant-to-vcloud-director\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a> \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u041e\u043d \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0438\u0437-\u0437\u0430 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0442\u0438\u043f\u0430\u0445 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f (\u0440\u0430\u0437\u043d\u0430\u044f \u0442\u0440\u0430\u043a\u0442\u043e\u0432\u043a\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430), \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0432 VMware Cloud Director \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2014 \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e, \u043f\u043e\u043a\u0430\u0436\u0443 \u0434\u0430\u043b\u0435\u0435.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d Packer<\/h2>\n<p>\u0412 \u0448\u0430\u0431\u043b\u043e\u043d Packer \u0432\u043d\u0435\u0441\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043e\u0431\u0440\u0430\u0437\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 OVF<\/strong>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0443 <em>format<\/em> \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <em>ovf<\/em>. \u042d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0434\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430: XML-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0412\u041c \u0438 \u043e\u0431\u0440\u0430\u0437 \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u0422\u0430\u043a, \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c. \u041e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u0435\u0439\u0441\u0430 \u044f \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0441\u043a\u0438 \u0438 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e iso-\u043e\u0431\u0440\u0430\u0437\u044b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0420\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u043a\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u043a\u0430\u0436\u0435\u043c SCSI \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0436\u0435\u0441\u0442\u043a\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432<\/strong>. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (scsi) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435 <em>hard_drive_interface<\/em>. \u0412 VirtualBox \u0431\u0443\u0434\u0435\u0442 \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 LsiLogic, \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043b\u044e\u0441\u043e\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 Cloud Director.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 <strong>\u0432\u044b\u0431\u0435\u0440\u0435\u043c BIOS<\/strong>, \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u2014 <strong>vmsvga<\/strong> (VMware SVGA). \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b, \u2014 \u044d\u0442\u043e <em>firmware<\/em> \u0438 <em>gfx_controller<\/em>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0434\u043b\u044f Packer \u2014 <em>main.pkr.hcl<\/em> \u2014 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">source \"virtualbox-iso\" \"ubuntu-18_04-amd64\" {   vm_name                  = \"ubuntu-18.04-amd64\"   guest_os_type            = \"Ubuntu_64\"   nested_virt              = false   headless                 = true   keep_registered          = false   guest_additions_mode     = \"disable\"   cpus                     = 2   memory                   = 4096   chipset                  = \"piix3\"   firmware                 = \"bios\"   rtc_time_base            = \"UTC\"   disk_size                = 32768   hard_drive_interface     = \"scsi\"   hard_drive_discard       = true   hard_drive_nonrotational = true   nic_type                 = \"82540EM\"   gfx_controller           = \"vmsvga\"   gfx_vram_size            = \"16\"   gfx_accelerate_3d        = false   sound                    = \"none\"   iso_url                  = \"http:\/\/cdimage.ubuntu.com\/ubuntu\/releases\/18.04\/release\/ubuntu-18.04.5-server-amd64.iso\"   iso_checksum             = \"sha256:8c5fc24894394035402f66f3824beb7234b757dd2b5531379cb310cedfdf0996\"   boot_command             = [\"&lt;esc>&lt;wait>\",                               \"&lt;esc>&lt;wait>\",                               \"&lt;enter>&lt;wait>\",                               \"\/install\/vmlinuz auto=true priority=critical fb=false initrd=\/install\/initrd.gz grub-installer\/bootdev=\/dev\/sda preseed\/file=\/floppy\/preseed.cfg -- &lt;enter>\"]   floppy_files             = [\".\/preseed\/preseed.cfg\"]   shutdown_command         = \"echo '${var.password}' | sudo -S shutdown -P now\"   post_shutdown_delay      = \"1m\"   output_directory         = \".\/output\"   format                   = \"ovf\"   bundle_iso               = false   communicator             = \"ssh\"   ssh_username             = var.username   ssh_password             = var.password   ssh_timeout              = \"20m\" }    build {   sources = [\"sources.virtualbox-iso.ubuntu-18_04-amd64\"]    # ssh   provisioner \"shell\" {     inline           = [\"sudo sed -i 's\/#PasswordAuthentication yes\/PasswordAuthentication no\/g' \/etc\/ssh\/sshd_config\",                         \"sudo systemctl stop sshd\",                         \"sudo rm \/etc\/ssh\/ssh_host_*\"]   }    # .\/packer-manifest.json   post-processor \"manifest\" {       output = \"packer-manifest.json\"   } }<\/code><\/pre>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0442\u043e\u043c, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0437\u043d\u0430\u0442\u044c \u0432 <a href=\"https:\/\/www.packer.io\/docs\/builders\/virtualbox\/iso\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> \u043d\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a <em>virtualbox-iso<\/em>. \u0417\u0434\u0435\u0441\u044c \u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0447\u0443 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u2014 <em>headless<\/em>, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0441\u0431\u043e\u0440\u043a\u0443 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u042d\u0442\u043e\u0442 \u0444\u043b\u0430\u0436\u043e\u043a \u0441\u0442\u043e\u0438\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <em>false<\/em>, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u042d\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0443.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c Packer \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u043e\u043d \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0437 \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430: <em>ubuntu-18.04-amd64-disk001.vmdk<\/em>;<\/p>\n<\/li>\n<li>\n<p>XML-\u0444\u0430\u0439\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b: <em>ubuntu-18.04-amd64.ovf<\/em>;<\/p>\n<\/li>\n<li>\n<p>JSON-\u0444\u0430\u0439\u043b \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432:<em> packer-manifest.json.<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0431\u043b\u043e\u043a\u0443:<\/p>\n<pre><code class=\"cpp\"># .\/packer-manifest.json post-processor \"manifest\" {     output = \"packer-manifest.json\" }<\/code><\/pre>\n<p>\u0424\u0430\u0439\u043b <em>packer-manifest.json<\/em> \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435:<\/p>\n<pre><code class=\"json\">{   \"builds\": [     {       \"name\": \"ubuntu-18_04-amd64\",       \"builder_type\": \"virtualbox-iso\",       \"build_time\": 1629043596,       \"files\": [         {           \"name\": \"output\/ubuntu-18.04-amd64-disk001.vmdk\",           \"size\": 916132352         },         {           \"name\": \"output\/ubuntu-18.04-amd64.ovf\",           \"size\": 6771         }       ],       \"artifact_id\": \"VM\",       \"packer_run_uuid\": \"b5fbae2b-59e7-fd6f-4154-cae16befd459\",       \"custom_data\": null     }   ],   \"last_run_uuid\": \"b5fbae2b-59e7-fd6f-4154-cae16befd459\" }<\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u043d\u0430\u0439\u0442\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0412\u041c (<em>ubuntu-18.04-amd64-disk001.vmdk <\/em>\u0438 <em>ubuntu-18.04-amd64.ovf<\/em>).<\/p>\n<h2>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c .ovf<\/h2>\n<p>\u041d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043e\u0431\u0440\u0430\u0437\u0430 \u0412\u041c \u0432 Open Virtualization Format. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b <em>*.ovf<\/em>. <\/p>\n<p>\u042f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 Python 3.8 (\u043e\u043d \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 Ubuntu Server 20.04) \u0438 \u00ab\u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u043b\u00bb <em>packer-manifest.json<\/em>, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 .ovf. \u0412\u043e\u0442 \u0447\u0430\u0441\u0442\u044c, \u0440\u0435\u0448\u0430\u044e\u0449\u0430\u044f \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443:<\/p>\n<pre><code class=\"python\">import json  with open(\"packer-manifest.json\", \"r\") as json_file:     data = json.load(json_file)     for i in data[\"builds\"]:         for j in i[\"files\"]:             if \".ovf\" in j[\"name\"]:                 ovf_in = j[\"name\"]                 ovf_out = ovf_in.replace(\".ovf\", \"-vmware.ovf\") <\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <em>ovf_in<\/em> \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 .ovf, \u0430 <em>ovf_out<\/em> \u2014 \u043f\u0443\u0442\u044c \u0434\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 .ovf, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u043d\u0435\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043c\u043e\u0434\u0443\u043b\u044c <em>xml.etree.ElementTree<\/em>.<\/p>\n<p>\u041f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 XML \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <a href=\"http:\/\/xmlstar.sourceforge.net\/\">XMLStarlet<\/a>. \u041e\u043d\u0430 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u0435\u0440\u0435\u0432\u0430 \u0432\u0445\u043e\u0434\u044f\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0444\u0430\u0439\u043b\u0430 .ovf.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u044b\u0432\u043e\u0434 \u0443\u0442\u0438\u043b\u0438\u0442\u044b XMLStarlet<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">> xmlstarlet el .\/output\/ubuntu-18.04-amd64.ovf Envelope Envelope\/References Envelope\/References\/File Envelope\/DiskSection Envelope\/DiskSection\/Info Envelope\/DiskSection\/Disk Envelope\/NetworkSection Envelope\/NetworkSection\/Info Envelope\/NetworkSection\/Network Envelope\/NetworkSection\/Network\/Description Envelope\/VirtualSystem Envelope\/VirtualSystem\/Info Envelope\/VirtualSystem\/OperatingSystemSection Envelope\/VirtualSystem\/OperatingSystemSection\/Info Envelope\/VirtualSystem\/OperatingSystemSection\/Description Envelope\/VirtualSystem\/OperatingSystemSection\/vbox:OSType Envelope\/VirtualSystem\/VirtualHardwareSection Envelope\/VirtualSystem\/VirtualHardwareSection\/Info Envelope\/VirtualSystem\/VirtualHardwareSection\/System Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:VirtualSystemIdentifier Envelope\/VirtualSystem\/VirtualHardwareSection\/System\/vssd:VirtualSystemType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Description Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ElementName Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:InstanceID Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:ResourceType Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:VirtualQuantity Envelope\/VirtualSystem\/VirtualHardwareSection\/Item Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:AllocationUnits Envelope\/VirtualSystem\/VirtualHardwareSection\/Item\/rasd:Caption<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-398515","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/398515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=398515"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/398515\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=398515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=398515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=398515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}