{"id":3693,"date":"2022-01-18T02:24:31","date_gmt":"2022-01-18T02:24:31","guid":{"rendered":"https:\/\/wiki.thomasandsofia.com\/?p=3693"},"modified":"2022-01-18T10:42:29","modified_gmt":"2022-01-18T10:42:29","slug":"openstack-essentials-13","status":"publish","type":"post","link":"https:\/\/wiki.thomasandsofia.com\/?p=3693","title":{"rendered":"OpenStack Essentials 13"},"content":{"rendered":"<h1>Section 13: Working with the Horizon Dashboard<\/h1>\n<h2>43. Introduction<\/h2>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765166#overview<\/p>\n<p>Create a complete project with VMs and users<\/p>\n<h3>Create the Project<\/h3>\n<ul>\n<li>Identity &gt; Projects &gt; [+ Create Project]<\/li>\n<li>Project Information tab\n<ul>\n<li>Name: engineering_cloud<\/li>\n<\/ul>\n<\/li>\n<li>Project Members tab\n<ul>\n<li>Assign admin user as admin to the project<\/li>\n<li>[Create Project]*<\/li>\n<\/ul>\n<\/li>\n<li>*Quota tab\n<ul>\n<li><em>This tab does not exist in my install.\u00a0 I had to save the project then select [Modify Quotas] from the project&#8217;s Action drop-down option.<\/em><\/li>\n<li>Set Instance to 10<\/li>\n<li>Set Ram to 4GB (4096)<\/li>\n<li>[Save]<\/li>\n<\/ul>\n<\/li>\n<li>Project Created!\n<ul>\n<li>It will now act as a container for all of the Project related resources.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Create the Users<\/h3>\n<ul>\n<li>Identity &gt; Users &gt; [+Create User]\n<ul>\n<li>Name: webdeveloper<\/li>\n<li>Password: *****<\/li>\n<li>Conf Password: *****<\/li>\n<li>Project: engineering_cloud<\/li>\n<li>Role: _member_\n<ul>\n<li>Can add\/edit VMs<\/li>\n<\/ul>\n<\/li>\n<li>[Create User]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Log out and Log in with webdeveloper user.<\/p>\n<h2>44. Requirements for Launching an Instance<\/h2>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765198#overview<\/p>\n<h3>Launching an Instance<\/h3>\n<ul>\n<li>Connectivity (Neutron)\n<ul>\n<li>Mandatory<\/li>\n<li>Needs a private network?<\/li>\n<\/ul>\n<\/li>\n<li>Image (Glance)\n<ul>\n<li>Mandatory<\/li>\n<\/ul>\n<\/li>\n<li>Instance size [flavor] (Nova)\n<ul>\n<li>Mandatory<\/li>\n<\/ul>\n<\/li>\n<li>Security Settings\n<ul>\n<li>Optional*<\/li>\n<li>ACLs (Neutron)<\/li>\n<li>Key Pair (Nova)<\/li>\n<\/ul>\n<\/li>\n<li>Persistent storage (Cinder)\n<ul>\n<li>Optional*<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>* Instance will boot without these.<\/p>\n<h2>45. Creating the Image and Flavor<\/h2>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765204#overview<\/p>\n<h3>Create Image<\/h3>\n<ul>\n<li>Log in as webdeveloper or higher<\/li>\n<li>Project &gt; Compute &gt; Images &gt; [+ Create Image]\n<ul>\n<li>Image Name: cirros1<\/li>\n<li>Source Type: file<\/li>\n<li>File:\n<ul>\n<li>This will either need to be on your LOCAL filesystem<\/li>\n<li>or you can point to the URL<\/li>\n<\/ul>\n<\/li>\n<li>Format : QCOW2<\/li>\n<li>Min Disk: 1<\/li>\n<li>Min RAM: 256<\/li>\n<li>Visibility: Public<\/li>\n<li>[Create Image]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Create the Flavor<\/h3>\n<ul>\n<li>Log in as admin to create Flavors\n<ul>\n<li>Make sure you select the correct project!!<\/li>\n<\/ul>\n<\/li>\n<li>Admin &gt; Compute &gt; Flavors &gt; [+Create Flavor]\n<ul>\n<li>Name: tiniest<\/li>\n<li>ID: 20\n<ul>\n<li>I had an option for &#8216;auto&#8217;.\u00a0 This became:<\/li>\n<li>a5cff35c-525c-4c8a-ab6a-521785488716<\/li>\n<\/ul>\n<\/li>\n<li>vCPUs: 1<\/li>\n<li>RAM 128<\/li>\n<li>Root Disk: 1<\/li>\n<li>[Create Flavor]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>46. Network Environment for the Instance<\/h2>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765212#overview<\/p>\n<p><a href=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/neutron-map-intro.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3694\" src=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/neutron-map-intro.png\" alt=\"\" width=\"518\" height=\"550\" srcset=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/neutron-map-intro.png 518w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/neutron-map-intro-283x300.png 283w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/neutron-map-intro-141x150.png 141w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/neutron-map-intro-300x319.png 300w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/a><\/p>\n<p>Will need NAT to provide public addresses to the private addresses. These are the Floating IP address<\/p>\n<ul>\n<li>192.168.1.200 &lt;&#8211;&gt; 172.16.1.10<\/li>\n<li>192.168.1.201 &lt;&#8211;&gt; 10.0.1.10<\/li>\n<li>192.168.1.200 &lt;&#8211;&gt; 10.0.1.11<\/li>\n<\/ul>\n<h3>47. Setting up the Network<\/h3>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765220#overview<\/p>\n<ul>\n<li>Login with webdeveloper account\n<ul>\n<li>Make sure on the engineering_cloud project<\/li>\n<\/ul>\n<\/li>\n<li>Project &gt; Network &gt; Networks &gt; [+Create Network]\n<ul>\n<li>Network tab\n<ul>\n<li>Name: private_net2<\/li>\n<li>[Next &gt;&gt;]<\/li>\n<\/ul>\n<\/li>\n<li>Subnet tab\n<ul>\n<li>Name: private_subnet2<\/li>\n<li>Network Address: 10.0.1.0\/24<\/li>\n<li>Gateway IP:\n<ul>\n<li>assigned automatically, leave blank<\/li>\n<li>OK to add one if you&#8217;re using something out of the ordinary<\/li>\n<\/ul>\n<\/li>\n<li>[Next &gt;&gt;]<\/li>\n<\/ul>\n<\/li>\n<li>Subnet Details tab\n<ul>\n<li>[ X ] Enable DHCP<\/li>\n<li>Allocation Pools:10.0.1.10,10.0.1.50\n<ul>\n<li>Use to assign a specific IP ranges available in the subnet.<\/li>\n<li><strong>No space between IPs!<\/strong><\/li>\n<\/ul>\n<\/li>\n<li>DNS Name Servers: 8.8.8.8<\/li>\n<li>[Create]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Create the Provider Network<\/h3>\n<p><em>The Provider Network has already been established.\u00a0 This is &#8216;external_network&#8217;.\u00a0 We must have set this up during installation?<\/em><\/p>\n<pre>neutron net-create external_network --provider:network_type flat --provider:physical_network extnet --router:external\r\nneutron subnet-create --name public_subnet --enable_dhcp=False --allocation-pool start=192.168.1.200,end=192.168.1.220 --gateway=192.168.1.1 external_network 192.168.1.0\/24<\/pre>\n<p>^^ I think that happened when we performed the initial install commands.<\/p>\n<h3>Check network topology<\/h3>\n<p><a href=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/net_topology-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3696\" src=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/net_topology-1.png\" alt=\"\" width=\"275\" height=\"400\" srcset=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/net_topology-1.png 275w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/net_topology-1-206x300.png 206w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/net_topology-1-103x150.png 103w\" sizes=\"auto, (max-width: 275px) 100vw, 275px\" \/><\/a><\/p>\n<ul>\n<li>Project &gt; Network &gt; Topology\n<ul>\n<li>Since these are different networks, we need a router!<\/li>\n<li>[+Create Router]<\/li>\n<\/ul>\n<\/li>\n<li>Create Router\n<ul>\n<li>Router Name: r1<\/li>\n<li>External Network: Select &#8216;external_network&#8217;<\/li>\n<li>[Create Router]<\/li>\n<\/ul>\n<\/li>\n<li>Add the private network to the Router\n<ul>\n<li>Hover over the router icon and click [+Add Interface]<\/li>\n<li>Subnet: private_net2<\/li>\n<li>IP Address: leave this blank.\u00a0 Will use first available IP<\/li>\n<li>[Submit]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>48. Optional Configuration<\/h2>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765286#overview<\/p>\n<h3>Instance Security &amp; Persistent Volumes<\/h3>\n<ul>\n<li>Security\n<ul>\n<li>ssh (22)<\/li>\n<li>icmp<\/li>\n<\/ul>\n<\/li>\n<li>Persistent Volume\n<ul>\n<li>During spinup<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>49. Security Configuration &amp; Instance Launch<\/h2>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765292#overview<\/p>\n<h3>Security Groups<\/h3>\n<p><a href=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/default-sg-rules.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3697\" src=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/default-sg-rules.png\" alt=\"\" width=\"1039\" height=\"267\" srcset=\"https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/default-sg-rules.png 1039w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/default-sg-rules-300x77.png 300w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/default-sg-rules-1024x263.png 1024w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/default-sg-rules-768x197.png 768w, https:\/\/wiki.thomasandsofia.com\/wp-content\/uploads\/2022\/01\/default-sg-rules-150x39.png 150w\" sizes=\"auto, (max-width: 1039px) 100vw, 1039px\" \/><\/a><\/p>\n<ul>\n<li>Project &gt; Network &gt; Security Groups &gt; default &gt; [Manage Rules]\n<ul>\n<li>Egress (outgoing) = 0.0.0.0\/0 = everyone<\/li>\n<li>Ingress (incoming) = nada. everything blocked<\/li>\n<\/ul>\n<\/li>\n<li>Create a Security Group\n<ul>\n<li>[+Create Security Group]<\/li>\n<li>Name: securityfirst<\/li>\n<li>[Create Security Group]<\/li>\n<li>By default:\n<ul>\n<li>all egress is allowed<\/li>\n<li>No ingress rules, so all traffic is dropped<\/li>\n<li>need to create incoming rules.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Add ICMP\n<ul>\n<li>[Add Rule]<\/li>\n<li>Rule: All ICMP<\/li>\n<li>Direction: Ingress<\/li>\n<li>Remote: CIDR<\/li>\n<li>CIDR: 0.0.0.0\/0<\/li>\n<li>[Add]<\/li>\n<\/ul>\n<\/li>\n<li>Add SSH\n<ul>\n<li>[Add Rule]<\/li>\n<li>Rule: SSH<\/li>\n<li>Leave defaults<\/li>\n<li>[Add]<\/li>\n<\/ul>\n<\/li>\n<li>Allow Webhosting\n<ul>\n<li>[Add Rule]<\/li>\n<li>Rule: HTTP<\/li>\n<li>Restrict to Local\n<ul>\n<li>CIDR: 192.168.0.0\/16<\/li>\n<\/ul>\n<\/li>\n<li>[Add]<\/li>\n<\/ul>\n<\/li>\n<li>With the Security Group created, it can be assigned to instances as they are launched.<\/li>\n<\/ul>\n<h3>Key Pairs<\/h3>\n<ul>\n<li>Project &gt; Compute &gt; Key Pairs &gt; [+Create Key Pair]\n<ul>\n<li>Name: myopenstackkey<\/li>\n<li>Type: SSH key\n<ul>\n<li>This was not part of the video.\u00a0 Must be a version update.<\/li>\n<\/ul>\n<\/li>\n<li>[Create Key Pair]\n<ul>\n<li>Was immediately prompted to download the &#8216;myopenstackkey.pem&#8217; file.\n<ul>\n<li>Also not part of the video<\/li>\n<li>Might be a Winblows vs. Linux thing?<\/li>\n<\/ul>\n<\/li>\n<li>Save to \/home\/user\/.ssh\/&lt;key_name&gt;.pem<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Assign Floating IPs<\/h3>\n<ul>\n<li>Project &gt; Network &gt; Floating IPs &gt; [Allocate IP to Project]\n<ul>\n<li>Pool: external_network<\/li>\n<li>[Allocate IP]<\/li>\n<\/ul>\n<\/li>\n<li>Assign 2 more.<\/li>\n<\/ul>\n<p><span style=\"color: #ff0000;\">This failed.\u00a0 I must have missed something earlier.\u00a0 Moving on without testing.<\/span><\/p>\n<h3>Launch an Instance<\/h3>\n<ul>\n<li>Project &gt; Compute &gt;Instances &gt; [Launch Instance]\n<ul>\n<li>Details\n<ul>\n<li>Name: instance-a<\/li>\n<li>Availability Zone: nova<\/li>\n<li>Count: 1<\/li>\n<li>[Next &gt;]<\/li>\n<\/ul>\n<\/li>\n<li>Source\n<ul>\n<li>Select Boot Source: Image<\/li>\n<li>Available: Select image to use by clicking Up Arrow<\/li>\n<li>[Next &gt;]<\/li>\n<\/ul>\n<\/li>\n<li>Flavor\n<ul>\n<li>tiniest<\/li>\n<li>[Next &gt;]<\/li>\n<\/ul>\n<\/li>\n<li>Networks\n<ul>\n<li>I&#8217;m pre-selected for private_net2.\u00a0 Video required selecting it.\n<ul>\n<li>Audio track support this.\u00a0 Video showed him selecting it.\u00a0 \ud83d\ude00<\/li>\n<\/ul>\n<\/li>\n<li>next<\/li>\n<\/ul>\n<\/li>\n<li>Network Ports\n<ul>\n<li>next<\/li>\n<\/ul>\n<\/li>\n<li>Security Groups\n<ul>\n<li>Remove Default and add &#8216;securityfirst&#8217;<\/li>\n<li>next<\/li>\n<\/ul>\n<\/li>\n<li>Key Pairs\n<ul>\n<li>select myopenstackkey<\/li>\n<\/ul>\n<\/li>\n<li>[Launch Instance]<\/li>\n<\/ul>\n<\/li>\n<li>Associate a floating IP\n<ul>\n<li>Select from one allocated\n<ul>\n<li>I couldn&#8217;t do this \ud83d\ude41<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>50. Testing and Managing the Instance<\/h2>\n<p>https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765300#overview<\/p>\n<ul>\n<li>Spin up another image<\/li>\n<li>Ping between the two<\/li>\n<li>set permissions on key and test<\/li>\n<li>ping floating IPs<\/li>\n<li><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Section 13: Working with the Horizon Dashboard 43. Introduction https:\/\/www.udemy.com\/course\/openstack\/learn\/lecture\/6765166#overview Create a complete project with VMs and users Create the Project Identity &gt; Projects &gt; [+ Create Project] Project Information tab Name: engineering_cloud Project Members tab Assign admin user as admin to the project [Create Project]* *Quota tab This tab does not exist in my ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/wiki.thomasandsofia.com\/?p=3693\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3693","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts\/3693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3693"}],"version-history":[{"count":4,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts\/3693\/revisions"}],"predecessor-version":[{"id":3701,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=\/wp\/v2\/posts\/3693\/revisions\/3701"}],"wp:attachment":[{"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiki.thomasandsofia.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}