{"id":366358,"date":"2024-05-21T02:57:32","date_gmt":"2024-05-21T02:57:32","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=366358"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=366358","title":{"rendered":"<span>\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c 100 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435 \u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u0443? \u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 OpenStack \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/nm\/zw\/e_\/nmzwe_jjmcy2dqvs6oy1pdj6sxa.png\" data-src=\"https:\/\/habrastorage.org\/webt\/nm\/zw\/e_\/nmzwe_jjmcy2dqvs6oy1pdj6sxa.png\"\/><\/div>\n<p>  \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0432 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432: terraform, pulumi, ansible, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 SDK \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0435\u0440\u0435\u0437 REST API.<\/p>\n<p>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u043e \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0438\u0437 \u0432\u0438\u0434\u0443 CLI \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 shell-\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u0410 \u0437\u0440\u044f! \u041e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u0440\u0443\u0447\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <a href=\"https:\/\/selectel.ru\/services\/cloud\/servers\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=cloud_article_cli_250124_content\">\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432<\/a> \u0438\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<a name=\"habracut\"><\/a><\/p>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u0447\u043a\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0446\u0438\u0439. \u041c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u0440\u0443\u0447\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u0437-\u0437\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p>  \u0410 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CLI \u043a\u043b\u0438\u0435\u043d\u0442\u0430 OpenStack \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 100 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439.<\/p>\n<pre><code class=\"bash\">openstack server create --image \"Ubuntu 22.04 LTS 64-bit\" --network my_network --flavor SL1.1-2048-16  --max 100 my_server <\/code><\/pre>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0441\u0435. \u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e. \u041d\u043e \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0442\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 CLI, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e.<\/p>\n<p>  <b>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e:<\/b><br \/>  \u2192 <a href=\"#1\">\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 OpenStack CLI <\/a><br \/>  \u2192 <a href=\"#2\">\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 <\/a><br \/>  \u2192 <a href=\"#3\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438<\/a><br \/>  \u2192 <a href=\"#4\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0434\u0438\u0441\u043a\u0430\u043c\u0438<\/a><br \/>  \u2192 <a href=\"#5\">\u0418\u0442\u043e\u0433\u0438 \u0438 \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430<\/a><\/p>\n<p>  <a name=\"1\"><\/a><font color=\"#EB4247\"><\/p>\n<h2>\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 OpenStack CLI <\/h2>\n<p><\/font><br \/>  \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0430 \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b (\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430) \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0438\u0441\u043a\u043e\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0412\u041c \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0434\u0438\u0441\u043a\u043e\u043c. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0441\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e Flavor-\u0430, \u0430 \u0438\u0437 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0430 \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0412\u041c. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u2014 \u0438\u0437 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u043b\u044c\u044e\u043c, \u0430 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0412\u041c.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Selectel. \u0418 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c OpenStack CLI.<\/p>\n<p>  \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b:  <\/p>\n<ul>\n<li><a href=\"https:\/\/docs.selectel.ru\/cloud\/servers\/tools\/openstack\/\">\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c OpenStack \u043a\u043b\u0438\u0435\u043d\u0442<\/a>, <\/li>\n<li><a href=\"https:\/\/docs.selectel.ru\/cloud\/servers\/tools\/openstack\/%23create-service-user\">\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u0440\u043e\u043b\u044c\u044e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>, <\/li>\n<li><a href=\"https:\/\/docs.selectel.ru\/cloud\/servers\/tools\/openstack\/%23configure-authorization\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c RC-\u0444\u0430\u0439\u043b \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0441 OpenStack \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c<\/a>. <\/li>\n<\/ul>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c RC-\u0444\u0430\u0439\u043b \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 OpenStack \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0448\u0435 RC-\u0444\u0430\u0439\u043b\u043e\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438. \u041c\u043e\u0436\u043d\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0432 \u0444\u0430\u0439\u043b\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e.<\/p>\n<p>  \u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">source rc.sh <\/code><\/pre>\n<p>  \u0411\u0430\u0437\u043e\u0432\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0438\u0441\u043a\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">openstack server create --image 'Ubuntu 22.04 LTS 64-bit' --network my_network --flavor SL1.1-2048-16 my_server <\/code><\/pre>\n<p>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b:  <\/p>\n<ul>\n<li>image \u2014 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0412\u041c,<\/li>\n<li>flavor \u2014 \u043e\u0431\u044a\u0435\u043a\u0442, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0412\u041c,<\/li>\n<li>network \u2014 \u0441\u0435\u0442\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0412\u041c. <\/li>\n<\/ul>\n<p>  <i>\u0421 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0434\u0438\u0441\u043a\u043e\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0447\u0443\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u2014 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0430\u043b\u0435\u0435, \u0430 \u043f\u043e\u043a\u0430 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043c \u0441\u0435\u0431\u0435 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0438\u0441\u043a\u043e\u043c. <\/i><\/p>\n<p>  OpenStack \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0445 \u0437\u0430 \u0441\u0432\u043e\u044e \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u044b. \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435 \u0434\u0443\u043c\u0430\u0442\u044c, \u0442.\u043a. \u043e\u043d \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u0435 \u0437\u0430 \u043d\u0430\u0441. \u041d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439:  <\/p>\n<ul>\n<li>Keystone \u2014 \u0441\u0435\u0440\u0432\u0438\u0441 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u043e\u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0440\u0435\u0433\u0438\u043e\u043d\u043e\u0432, <\/li>\n<li>Nova (Compute) \u2014 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0412\u041c (\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432),<\/li>\n<li>Neutron (Network) \u2014 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438,<\/li>\n<li>Glance (Images) \u2014 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 (\u0441 \u041e\u0421), \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u0430 \u0412\u041c \u0438\u043b\u0438 Volume, <\/li>\n<li>Cinder (Volume) \u2014 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0434\u0438\u0441\u043a\u0438. <\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/selectel.ru\/services\/cloud\/servers\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=cloud_article_cli_250124_banner_001_ord\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/nb\/lo\/t_\/nblot_ve1t3hcw5bluwc_-did08.png\" data-src=\"https:\/\/habrastorage.org\/webt\/nb\/lo\/t_\/nblot_ve1t3hcw5bluwc_-did08.png\"\/><\/div>\n<p><\/a><br \/>  <a name=\"2\"><\/a><font color=\"#EB4247\"><\/p>\n<h2>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 <\/h2>\n<p><\/font><br \/>  \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u0447\u0435\u0440\u0435\u0437 CLI \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u0441\u0435\u0442\u0438 \u0438 Flavor-\u0430.<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432:<\/p>\n<pre><code class=\"bash\">openstack image list <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f (\u0432\u044b\u0432\u043e\u0434 \u043e\u0431\u0440\u0435\u0437\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f):<\/p>\n<pre><code class=\"bash\">openstack image list +--------------------------------------+------------------------------------------+--------+ | ID                                   | Name                                     | Status | +--------------------------------------+------------------------------------------+--------+ | 41383415-4c61-46e5-8cc4-ead5a6f78cf8 | CentOS 7 64-bit                          | active | | 159f6bfa-d2fd-4d90-b2cc-e19d8aeafd22 | CentOS 7 Minimal 64-bit                  | active | | 49653158-53a4-4cfe-95e0-b70509e6c1ac | CentOS 8 64-bit                          | active | | 0b6fb188-0df5-46cf-9111-2840195df219 | CentOS 8 Stream 64-bit                   | active | | a1b081d7-9eff-44b0-8d3f-85fabf2c88a6 | CentOS 9 Stream 64-bit                   | active | | 7a827898-058b-4faf-bf8a-0d2311bef7c3 | Ubuntu 20.04 LTS 64-bit                  | active | | 1fd341e8-82c2-4421-8a37-912cd5ee3ae3 | Ubuntu 22.04 LTS 64-bit                  | active | ...... +--------------------------------------+------------------------------------------+--------+ <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a Flavor-\u043e\u0432.<\/p>\n<p>  \u0412 OpenStack \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0412\u041c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Flavor. \u041c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u2014 \u043f\u0430\u043c\u044f\u0442\u044c, \u0434\u0438\u0441\u043a, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e CPU.<\/p>\n<p>  \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 Flavor-\u044b.<\/p>\n<pre><code class=\"bash\">openstack flavor list <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u0412\u044b\u0432\u043e\u0434 \u043e\u0431\u0440\u0435\u0437\u0430\u043d.<\/p>\n<pre><code class=\"bash\">openstack flavor list +--------------------------------------+------------------------------------+--------+------+-----------+-------+-----------+ | ID                                   | Name                               |    RAM | Disk | Ephemeral | VCPUs | Is Public | +--------------------------------------+------------------------------------+--------+------+-----------+-------+-----------+ | 1                                    | m1.tiny                            |    512 |    0 |         0 |     1 | True      | | 1011                                 | SL1.1-1024                         |   1024 |    0 |         0 |     1 | True      | | 1012                                 | SL1.1-2048                         |   2048 |    0 |         0 |     1 | True      | | 1013                                 | SL1.2-4096                         |   4096 |    0 |         0 |     2 | True      | | 1014                                 | SL1.2-8192                         |   8192 |    0 |         0 |     2 | True      | | 1015                                 | SL1.4-16384                        |  16384 |    0 |         0 |     4 | True      | | 1016                                 | SL1.6-32768                        |  32768 |    0 |         0 |     6 | True      | | 1017                                 | SL1.8-32768                        |  32768 |    0 |         0 |     8 | True      | | 1018                                 | SL1.12-49152                       |  49152 |    0 |         0 |    12 | True      | | 1019                                 | SL1.16-65536                       |  65536 |    0 |         0 |    16 | True      | | 1020                                 | SL1.24-98304                       |  98304 |    0 |         0 |    24 | True      | | 1311                                 | SL1.1-1024-8                       |   1024 |    8 |         0 |     1 | True      | | 1312                                 | SL1.1-2048-16                      |   2048 |   16 |         0 |     1 | True      | | 1313                                 | SL1.2-4096-32                      |   4096 |   32 |         0 |     2 | True      | | 1314                                 | SL1.2-8192-64                      |   8192 |   64 |         0 |     2 | True      | | 1315                                 | SL1.4-16384-128                    |  16384 |  128 |         0 |     4 | True      | | 1316                                 | SL1.6-32768-256                    |  32768 |  256 |         0 |     6 | True      | | 1317                                 | SL1.8-32768-384                    |  32768 |  384 |         0 |     8 | True      | | 1318                                 | SL1.12-49152-512                   |  49152 |  512 |         0 |    12 | True      | | 1319                                 | SL1.16-65536-768                   |  65536 |  768 |         0 |    16 | True      | | 1320                                 | SL1.24-98304-1024                  |  98304 | 1024 |         0 |    24 | True      | <\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c Flavor \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <b>openstack flavor create<\/b> \u2026<\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0443 \u043e\u0434\u043d\u0438\u0445 Flavor-\u043e\u0432 \u043f\u043e\u043b\u0435 Disc \u043d\u0443\u043b\u0435\u0432\u043e\u0435, \u0430 \u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f flavor \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0434\u0438\u0441\u043a\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c volume (<a href=\"https:\/\/docs.selectel.ru\/cloud\/servers\/volumes\/about-network-volumes\/\">\u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0434\u0438\u0441\u043a<\/a>). \u0421 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/docs.selectel.ru\/cloud\/servers\/volumes\/about-local-disks\/\">\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0441\u043a<\/a>.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bw\/p1\/6w\/bwp16wo3ot4rghlhkz7laacofdi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bw\/p1\/6w\/bwp16wo3ot4rghlhkz7laacofdi.png\"\/><\/div>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u044c:<\/p>\n<pre><code class=\"bash\">openstack network create my_network <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432 \u0440\u0435\u0441\u0443\u0440\u0441 subnet \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c network:<\/p>\n<pre><code class=\"bash\">openstack subnet create --subnet-range 192.168.0.0\/24 --network my_network my_subnet <\/code><\/pre>\n<p>  \u0420\u0435\u043c\u0430\u0440\u043a\u0430 \u2014 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u0443\u0442\u0435\u0440 \u0438 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u00ab\u0432\u044b\u0445\u043e\u0434\u00bb \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u041e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u043b\u0435\u0435.<\/p>\n<h3>SSH Keypair<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440, \u0442\u043e \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e SSH \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043f\u0430\u0440\u043e\u043b\u044e. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e ssh-\u043a\u043b\u044e\u0447\u0430 \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435. \u0417\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u0435\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0412\u041c.<\/p>\n<pre><code class=\"bash\">openstack keypair create --public-key ~\/.ssh\/id_rsa.pub my_keypair <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 100 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432:<\/p>\n<pre><code class=\"bash\">openstack server create --image \"Ubuntu 22.04 LTS 64-bit\" --network my_network --flavor SL1.1-2048-16 --key-name my_keypair --max 100  my_server <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b openstack server list:<\/p>\n<pre><code class=\"bash\">openstack server list <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0432\u044b\u0432\u043e\u0434 \u043e\u0431\u0440\u0435\u0437\u0430\u043d.<\/p>\n<pre><code class=\"bash\">openstack server list +--------------------------------------+---------------+--------+--------------------------+-------------------------+---------------+ | ID                                   | Name          | Status | Networks                 | Image                   | Flavor        | +--------------------------------------+---------------+--------+--------------------------+-------------------------+---------------+ | 031080fa-3aa0-4848-8551-fd1e6f6ec65f | my_server-94  | ACTIVE | my_network=192.168.0.58  | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 03864c9b-6b9b-4bea-8679-93367ca52250 | my_server-87  | ACTIVE | my_network=192.168.0.24  | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 0efb6875-c481-4ec0-bc80-3392d84c89d6 | my_server-82  | ACTIVE | my_network=192.168.0.110 | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 14c1677d-ef4c-4369-a64d-d4be73416eb9 | my_server-67  | ACTIVE | my_network=192.168.0.116 | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 1619eaf7-c7ab-4db0-a875-38c39acabdac | my_server-76  | ACTIVE | my_network=192.168.0.52  | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 1eadae93-f394-4301-a26f-b496f1e023ae | my_server-73  | ACTIVE | my_network=192.168.0.81  | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 218bdd45-01a9-4b49-aa26-fb25ce7f7329 | my_server-80  | ACTIVE | my_network=192.168.0.76  | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 24642e7f-b265-41a4-8d73-c29434655b30 | my_server-84  | ACTIVE | my_network=192.168.0.120 | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | | 2e0c2dd3-8a07-421f-ba18-067e5fa320d9 | my_server-81  | ACTIVE | my_network=192.168.0.194 | Ubuntu 22.04 LTS 64-bit | SL1.1-2048-16 | <\/code><\/pre>\n<p>  \u0418 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e 100 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438:<\/p>\n<pre><code class=\"bash\">openstack server list -f value | grep ACTIVE -c 100 <\/code><\/pre>\n<p>  <a name=\"3\"><\/a><font color=\"#EB4247\"><\/p>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438<\/h2>\n<p><\/font><br \/>  \u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 100 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043d\u043e \u043a\u0430\u043a \u043d\u0430 \u043d\u0438\u0445 \u0437\u0430\u0439\u0442\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0438\u043c\u0438? \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c <a href=\"https:\/\/docs.selectel.ru\/cloud\/servers\/networks\/about-networks\/%23private-network-and-bastion-host\">bastion-\u0445\u043e\u0441\u0442\u043e\u043c<\/a>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0445\u043e\u0434 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u043f\u043e\u0431\u043b\u0438\u0436\u0435 \u0441 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e.<\/p>\n<p>  \u0412 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u043e\u0443\u0442\u0435\u0440, \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 \u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u044f\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 (floating ip, \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441) \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043a \u0412\u041c bastion:<\/p>\n<pre><code class=\"bash\">openstack router create my_router openstack router add subnet my_router my_subnet <\/code><\/pre>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0440\u043e\u0443\u0442\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u0412\u041c \u00ab\u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c\u00bb \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438\u0437 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0437 my_subnet) \u0447\u0435\u0440\u0435\u0437 NAT (\u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041f\u041e \u0438 \u0442.\u0434.), \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0440\u043e\u0443\u0442\u0435\u0440 \u0441 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u044c\u044e.<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u043c\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438:<\/p>\n<pre><code class=\"bash\">openstack network list --external -f value -c Name external-network <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u0432\u044f\u0436\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u0441\u0435\u0442\u044c \u043a \u0440\u043e\u0443\u0442\u0435\u0440\u0443:<\/p>\n<pre><code class=\"bash\">openstack router set --external-gateway external-network my_router <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c floating IP, \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0430\u0434\u0440\u0435\u0441:<\/p>\n<pre><code class=\"bash\">openstack floating ip create external-network <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">openstack floating ip list <\/code><\/pre>\n<p>  <i>\u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0430\u0434\u0440\u0435\u0441 31.129.42.122, \u0438 \u0434\u0430\u043b\u0435\u0435 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d. \u0423 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u0430\u0434\u0440\u0435\u0441. <\/i><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 bastion \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412\u044b\u0431\u0435\u0440\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0435\u0440\u0432\u0443\u044e \u0412\u041c \u043a\u0430\u043a bastion-\u0445\u043e\u0441\u0442 (\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0412\u041c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0438 \u0445\u043e\u0441\u0442\u043d\u0435\u0439\u043c\u043e\u043c, \u043d\u043e \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u044d\u0442\u043e\u0442 \u0448\u0430\u0433). \u0427\u0435\u0440\u0435\u0437 bastion \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a\u043e \u0432\u0441\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0412\u041c. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0431\u0435\u0440\u0443 \u0412\u041c 99.<\/p>\n<p>  \u0410\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u043c Floating IP \u0438 \u0412\u041c 1:<\/p>\n<pre><code class=\"bash\">openstack server add floating ip my_server-1 31.129.42.122 <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 (\u0430\u0434\u0440\u0435\u0441 \u0438\u0437 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 192.168.0.0\/24) \u0412\u041c 99:<\/p>\n<pre><code class=\"bash\">openstack server show my_server-99 -f value -c addresses {'my_network': ['192.168.0.111']} <\/code><\/pre>\n<p>  \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0430\u0434\u0440\u0435\u0441 192.168.0.111.<br \/>  \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c\u0441\u044f \u043a \u0412\u041c-99 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u0430\u043a \u0438 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u043e\u0441\u044c:<\/p>\n<pre><code class=\"bash\">ssh -J root@31.129.42.122 root@192.168.0.111 root@my-server-99:~# <\/code><\/pre>\n<p>  <a name=\"4\"><\/a><font color=\"#EB4247\"><\/p>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0434\u0438\u0441\u043a\u0430\u043c\u0438<\/h2>\n<p><\/font><br \/>  \u041c\u044b \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0438\u0441\u043a\u0430\u043c\u0438. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0447\u0443\u0442\u044c \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c 100 \u0445\u043e\u0441\u0442\u043e\u0432 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0434\u0438\u0441\u043a\u0430\u043c\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0434\u0430\u043b\u0438\u043c \u0432\u0441\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0412\u041c.<\/p>\n<p>  \u0412\u0430\u0436\u043d\u043e: \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u0434\u0430\u043b\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0412\u041c \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435\u0441\u044c \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n<pre><code class=\"bash\">openstack server list -f value -c ID | xargs -i -P 10 bash -c 'openstack server delete {}' <\/code><\/pre>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c volume (\u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0434\u0438\u0441\u043a). \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 API \u043d\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f 100 \u0434\u0438\u0441\u043a\u043e\u0432, \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 shell-\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0446\u0438\u043a\u043b\u044b.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0438\u0445 \u0432 \u0446\u0438\u043a\u043b\u0435 <b>for i in {1..100}; do COMMAND; done<\/b>. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e \u043e\u0434\u043d\u043e\u0439. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0439\u043c\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0437\u0430\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u043c. \u0418\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 xargs \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0442 1 \u0434\u043e 100. \u0418 \u0432 10 \u043f\u043e\u0442\u043e\u043a (-P 10) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u043e\u043b\u044c\u044e\u043c\u0430 \u2014 {} \u0440\u0430\u0441\u043a\u0440\u043e\u0435\u0442\u0441\u044f xargs\u2019\u043e\u043c \u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043e\u0442 seq:<\/p>\n<pre><code class=\"bash\">seq 1 100 | xargs -i -P 10 bash -c 'openstack volume create --size 10 --image \"Ubuntu 22.04 LTS 64-bit\" my_volume_{}' <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0432\u043e\u0439 Flavor:<\/p>\n<pre><code class=\"bash\">openstack flavor create --private --disk 0 --vcpus 1 --ram 1024  my_flavor_net_hdd <\/code><\/pre>\n<p>  \u0418 \u0432 \u0444\u0438\u043d\u0430\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c 100 \u0412\u041c \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0434\u0438\u0441\u043a\u043e\u043c:<\/p>\n<pre><code class=\"bash\">seq 1 100 | xargs -i -P 10 bash -c 'openstack server create  --network my_network --key-name my_keypair --flavor my_flavor_net_hdd --volume volume_{} my_server_{}' <\/code><\/pre>\n<p>  <a name=\"5\"><\/a><font color=\"#EB4247\"><\/p>\n<h2>\u0418\u0442\u043e\u0433\u0438 \u0438 \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430<\/h2>\n<p><\/font><br \/>  \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438, \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f CLI \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438 \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u00ab\u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u0438\u00bb \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432.<\/p>\n<p>  \u0412\u043e\u0442 \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043e\u0441\u0432\u043e\u0438\u0442\u044c\u0441\u044f \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 OpenStack:<\/p>\n<pre><code class=\"bash\">openstack keypair create openstack keypair delete openstack keypair list openstack keypair show openstack server create openstack server delete openstack server list openstack server show openstack server add floating ip openstack server remove floating ip openstack volume create openstack volume delete openstack volume list openstack volume show openstack router create openstack router delete openstack router list openstack router show openstack router add subnet openstack router remove subnet openstack router add route openstack router remove route openstack flavor list openstack network create openstack network list openstack network show openstack network delete openstack subnet create openstack subnet list openstack subnet show openstack subnet delete openstack network list --external openstack floating ip create openstack floating ip list openstack floating ip delete <\/code><\/pre>\n<p>  <b>\u041f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c 100 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.<\/b><\/p>\n<blockquote><p><b>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044d\u0442\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0442\u043e\u0436\u0435 \u0432\u0430\u0441 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442:<\/b><br \/>  \u2192 <a href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/785046\">\u0418\u043c\u043f\u043e\u0440\u0442\u043e\u0437\u0430\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438: \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438\u0434\u0435\u0442 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e \u043f\u043b\u0430\u043d\u0443<\/a><br \/>  \u2192 <a href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/787920\">\u0418 \u0441\u043d\u043e\u0432\u0430 \u043a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440\u044b: \u043a\u0430\u043a \u044f \u043d\u043e\u0443\u0442\u0431\u0443\u043a HP Spectre X360 13 \u0440\u0435\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0438 \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0448\u043b\u043e<\/a><br \/>  \u2192 <a href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/785326\">\u041d\u0435 \u043c\u044b\u0442\u044c\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u0442\u0430\u043d\u044c\u0435\u043c: NVIDIA \u043d\u0430\u0447\u043d\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u041a\u0438\u0442\u0430\u0439 \u043c\u043e\u0449\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u0434\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u0434 \u0441\u0430\u043d\u043a\u0446\u0438\u0438 \u0421\u0428\u0410<\/a><\/p><\/blockquote>\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\/788958\/\"> https:\/\/habr.com\/ru\/articles\/788958\/<\/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-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/nm\/zw\/e_\/nmzwe_jjmcy2dqvs6oy1pdj6sxa.png\" data-src=\"https:\/\/habrastorage.org\/webt\/nm\/zw\/e_\/nmzwe_jjmcy2dqvs6oy1pdj6sxa.png\"\/><\/div>\n<p>  \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0432 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432: terraform, pulumi, ansible, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 SDK \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0435\u0440\u0435\u0437 REST API.<\/p>\n<p>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u043e \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0438\u0437 \u0432\u0438\u0434\u0443 CLI \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 shell-\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u0410 \u0437\u0440\u044f! \u041e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u0440\u0443\u0447\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <a href=\"https:\/\/selectel.ru\/services\/cloud\/servers\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=cloud_article_cli_250124_content\">\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432<\/a> \u0438\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\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-366358","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366358","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=366358"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366358\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=366358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=366358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=366358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}