before changing links

This commit is contained in:
govardhan
2025-06-19 09:01:18 +05:30
commit 6686208bf1
1277 changed files with 29692 additions and 0 deletions

View File

@ -0,0 +1,28 @@
Block storage and object storage performance limits on CloudFerro Cloud[](#block-storage-and-object-storage-performance-limits-on-brand-name "Permalink to this headline")
===========================================================================================================================================================================
On CloudFerro Cloud, there are performance limits for **HDD**, **NVMe (SSD)**, and **Object Storage** to ensure stable operation and protect against accidental DDoS attacks.
Current limits[](#current-limits "Permalink to this headline")
---------------------------------------------------------------
Block HDD
: **500** IOPS (read and write)
Block SSD/NVMe
: **3000** IOPS (read and write)
**NOTE**: On CloudFerro Cloud, *all* SSD storage is NVMe-based.
S3 Object Storage (General Tier)
: **2000** operations per second with a
* **2500 burst limit** per bucket and
* **150 MB/s** transfer per request
In majority of cases, the actual throughput may be larger because:
> * Typical downloads use **multiple requests** and
> * More than **99.95%** of requests stay below **100 MB/s**.
Again, this limit primarily helps mitigate accidental **DDoS** scenarios.

View File

@ -0,0 +1,262 @@
DNS as a Service on CloudFerro Cloud Hosting[](#dns-as-a-service-on-brand-name-cloud-name-hosting "Permalink to this headline")
================================================================================================================================
DNS as a Service (DNSaaS) provides functionality of managing configuration of users domains. Managing configuration means that the user is capable of creating, updating and deleting the following DNS records:
| | |
| --- | --- |
| Type | Description |
| A | Address record |
| AAA | IPv6 address record |
| CNAME | Canonical name record |
| MX | Mail exchange record |
| PTR | Pointer record |
| SPR | Sender Policy Framework |
| SRV | Service locator |
| SSHFP | SSH Public Key Fingerprint |
| TXT | Text record |
DNS configuration management is available via OpenStack web dashboard (Horizon), OpenStack command line interface as well as via the API.
DNS records management is performed on the level of an OpenStack project.
Since DNSaaS purpose is to deal with external domain names, the internal name resolution (name resolution for private IP addresses within users projects) is not covered by this documentation.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Domain delegation in registrars system
> * Domain configuration through Zone configuration
> * Checking the presence of the domain on the Internet
> * Adding new record for the domain
> * Adding records for subdomains
> * Managing records
> * Limitations in OpenStack DNSaaS
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
No. 2 **Must have access to a project in CloudFerro Cloud OpenStack account**
If you are a tenant manager, you will be able to either use the existing basic project or create new projects for yourself or your users.
If you are a user of the account, the tenant manager will have already created a project for you.
No. 3 **Basic knowledge of DNS notions and principles**
We assume you already have a
> * basic knowledge of Domain Name Service principles as well as
> * understanding of the purpose of DNS records.
If not, please see [DNS article on Wikipedia](https://en.wikipedia.org/wiki/Domain_Name_System) or [OpenStack DNSaaS command line reference](https://docs.openstack.org/python-designateclient/latest/user/shell-v2.html)
No. 4 **Must have domain purchased from a registrar**
You also must own a domain purchased from any registrar (domain reseller). Obtaining a domain from registrars is not covered in this article.
No. 5 **Must have a Linux server with an assigned IP address**
To verify DNS creation and propagation, you shall use the **dig** command from Linux. You will also need an IP address to point the domain name to. You may have already created one such VM in your CloudFerro Cloud server and if not, here is how to create a virtual machine, assign a floating IP to it and access it from Windows desktop computer:
[How to create a Linux VM and access it from Windows desktop on CloudFerro Cloud](How-to-create-a-Linux-VM-and-access-it-from-Windows-desktop-on-CloudFerro-Cloud.html)
Or, you might connect from a Linux based computer to the cloud:
[How to create a Linux VM and access it from Linux command line on CloudFerro Cloud](How-to-create-a-Linux-VM-and-access-it-from-Linux-command-line-on-CloudFerro-Cloud.html)
In both cases, the article will contain a section to connect floating IP to the newly created VM. The generated IP address will vary, but for the sake of concreteness we shall assume that it is **64.225.133.254**. You will enter that value later in this article, to create record set for the site or service you are making.
Step 1 Delegate domain to your registrars system[](#step-1-delegate-domain-to-your-registrar-s-system "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------------------
The configuration of domain name in your registrars system must point to the NS records of CloudFerro name servers. It can be achieved in two ways:
**Option 1 - Use CloudFerro name servers (recommended)**
Configure NS records for your domain to the following CloudFerro name servers:
| | | |
| --- | --- | --- |
| Purpose | Name Server | IP |
| primary name server | cloud-dns1.cloudferro.com | 91.212.141.94 |
| secondary name server | cloud-dns2.cloudferro.com | 91.212.141.102 |
| secondary name server | cloud-dns3.cloudferro.com | 91.212.141.86 |
**Option 2 - Set up your own glue records (not recommended)**
Warning
This configuration option may be not supported by some registrars.
Configure glue records for your domain, so that they point to the following IP addresses:
| | | |
| --- | --- | --- |
| Purpose | Name Server | IP |
| primary name server | ns1.exampledomain.com | 91.212.141.94 |
| secondary name server | ns2.exampledomain.com | 91.212.141.102 |
| secondary name server | ns3.exampledomain.com | 91.212.141.86 |
Step 2 Zone configuration[](#step-2-zone-configuration "Permalink to this headline")
-------------------------------------------------------------------------------------
Zone configuration is defining parameters for the main domain name you have purchased.
To manage domain *exampledomain.com* in OpenStack, login to OpenStack dashboard, choose the right project if different than default, go to **Project****DNS****Zones**, click **Create Zone** and fill in the required fields:
![dns1.png](../_images/dns1.png)
Here is what the parameters mean:
> * **Name**: your domain name
> * **Description**: free text description
> * **Email Address**: an administrative e-mail address associated with the domain
> * **TTL**: *Time To Live* in seconds - a period of time between refreshing cache in DNS servers. Please note that the longer time, the faster will be name recognition for your domain by external DNS servers but also if you introduce changes, they will propagate slower. The default value of 3600 seconds is a reasonable compromise.
> * **Type**: You may choose if OpenStack name servers will be primary or secondary for your domain. Default: Primary. In case you want to setup secondary name servers, you just define IP addresses or master DNS servers for the domain.
After submitting, your domain should be served by OpenStack.
Step 3 Checking the presence of the domain on the Internet[](#step-3-checking-the-presence-of-the-domain-on-the-internet "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------------------------------------
It usually takes from 24 up to 48 hours for the domain name to propagate through the Internet so it will **not** be available right away. Rarely, domain name starts resolving in matters of minutes and hours instead of days, so it pays to try the domain address in your browser an hour or two after configuring the zone for the domain.
There are several ways of checking whether the domain name has propagated.
**Domain name in the browser**
: The most natural way of checking is to enter the domain name into the browser. If you get a message that the site cannot be found, you will have to wait longer.
Browsers, in general, do not provide messages that pinpoint to the lack of propagation as the source of error. Be sure to check in the browser again after you add records to the zone (see below).
**Check with Linux dig command**
: The **dig** command has several parameters. The following combination will show the presence of the name servers in the global DNS system:
> ```
> dig -t any +noall +answer exampledomain.com @cloud-dns1.cloudferro.com
> exampledomain.com. 3600 IN SOA cloud-dns2.cloudferro.com. [email protected]. 1675003306 3588 600 86400 3600
> exampledomain.com. 3600 IN NS cloud-dns1.cloudferro.com.
> exampledomain.com. 3600 IN NS cloud-dns3.cloudferro.com.
> exampledomain.com. 3600 IN NS cloud-dns2.cloudferro.com.
>
> ```
**Check with Linux curl command**
: The **curl** command will transfer data from one domain address to the host on which it is running. Here is what the output would look like for the domain name that does not exist:
```
curl someinvaliddomain.com
curl: (6) Could not resolve host: someinvaliddomain.com
```
If the site responds via HTML that means the domain was resolved:
```
curl exampledomain.com
<!DOCTYPE html>
<html>
<head>
...
```
**Check with sites that specialize in DNS configuration tracking**
: There are sites that will show on the map of the world whether the chosen servers on the Internet know about the domain name or not. Search in the search engine of your choice for a key phrase such as “*DNS checker propagation*”, choose a site and enter the domain name.
Specify **A** to see the propagation of the domain itself and specify **NS** to see the propagation of nameservers across the Internet.
Step 4 Adding new record for the domain[](#step-4-adding-new-record-for-the-domain "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------
To add a new record to the domain, click on **Create Record Set** next to the domain name and fill in the required fields. The most important entry is to connect the domain name to the IP address you have. To configure an address of web server in **exampledomain.com**, so that it is resolved to **64.225.133.254** which is a Floating IP address of your server, fill the form as follows:
![create_main_site_dns.png](../_images/create_main_site_dns.png)
The parameters are:
> * **Type**: Type of record (for example A, MX, etc.)
> * **Name**: name of the record (for example **www.exampledomain.com**, **mail.exampledomain.com**, …)
> * **Description**: free text description
> * **TTL**: Time To Live in seconds - a period of time between refreshing cache in DNS serves.
> * **Records**: Desired record value (there may be more than one - one per line):
>
> > + for records of Type A put IP address
> > + for records of Type MX put name of a mail server which hosts e-mails for the domain
> > + for records of Type CNAME put original name which is to be aliased
Submit the form and check whether your configuration works:
```
dig -t any +noall +answer exampledomain.com @cloud-dns1.cloudferro.com
exampledomain.com. 3600 IN SOA cloud-dns2.cloudferro.com. XXXXXXXXX.YYYYYYYY.com. 1675325538 3530 600 86400 3600
exampledomain.com. 3600 IN A 64.225.133.254
exampledomain.com. 3600 IN NS cloud-dns1.cloudferro.com.
exampledomain.com. 3600 IN NS cloud-dns2.cloudferro.com.
exampledomain.com. 3600 IN NS cloud-dns3.cloudferro.com.
```
Note
Each time a name of domain or a server is added or edited, add dot . at the end of the entry.
For example: **exampledomain.com.** or **mail.exampledomain.com.**.
Step 5 Adding records for subdomains[](#step-5-adding-records-for-subdomains "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------
Defining subdomains is similar except that, normally, the subdomain would propagate within minutes instead of days.
As previously, use command is **DNS** -> **Zones** -> **Record Sets**.
To configure an address of web server in **exampledomain.com**, so that **www.exampledomain.com** is resolved to **64.225.133.254** which is a Floating IP address of your server, fill the form as follows:
![create_www_subdomain.png](../_images/create_www_subdomain.png)
Submit the form and check whether your configuration works:
```
dig -t any +noall +answer www.exampledomain.com @cloud-dns1.cloudferro.com
www.exampledomain.com. 3600 IN A 64.225.133.254
```
Step 6 Managing records[](#step-6-managing-records "Permalink to this headline")
---------------------------------------------------------------------------------
Anytime you want to review, edit or delete records in your domain, visit OpenStack dashboard, **Project****DNS****Zones**. After clicking the domain name of your interest, choose **Record Sets** tab and see the list of all records:
![show_example_domain_record_sets.png](../_images/show_example_domain_record_sets.png)
From this screen you can update or delete records.
Limitations[](#limitations "Permalink to this headline")
---------------------------------------------------------
There are the following limitations in OpenStack DNSaaS:
> * You cannot manage NS records for your domain. Therefore
>
> > + you cannot add additional secondary name servers
> > + you are unable to delegate subdomains to external servers
> * Even though you are able to configure reverse DNS for your domain, this configuration will have no effect since reverse DNS for CloudFerro Cloud IP pools are managed on DNS servers other than OpenStack DNSaaS.
What To Do Next[](#what-to-do-next "Permalink to this headline")
-----------------------------------------------------------------
Once an OpenStack object has floating IP address, you can use the DNS service to propagate a domain name and, thus, create a service or a site. There are several situations in which you can create a floating IP address:
You already have an existing VM
: Follow the procedure in article [How to Add or Remove Floating IPs to your VM on CloudFerro Cloud](../networking/How-to-Add-or-Remove-Floating-IPs-to-your-VM-on-CloudFerro-Cloud.html) to assign a new floating IP to it.
Assign floating IP while creating a new VM from scratch
: That is the approach in articles from Prerequisite No. 5.
**Kubernetes services can have an automatically assigned floating IP**
: The following article shows how to deploy an HTTPS service on Kubernetes:
[Deploying HTTPS Services on Magnum Kubernetes in CloudFerro Cloud Cloud](../kubernetes/Deploying-HTTPS-Services-on-Magnum-Kubernetes-in-CloudFerro-Cloud-Cloud.html)

View File

@ -0,0 +1,37 @@
Dashboard Overview Project Quotas And Flavors Limits on CloudFerro Cloud[](#dashboard-overview-project-quotas-and-flavors-limits-on-brand-name "Permalink to this headline")
===============================================================================================================================================================================
While using CloudFerro Cloud platform, one of the first things you will spot is the “Limit Summary”. Each project is restricted by preset quotas. This is preventing system capacities from being exhausted without notification and guaranteeing free resources.
On the first screen after logging into Horizon Dashboard you will see seven charts reflecting limits most essential to the stability of the platform. You can always show this screen with command **Compute** -> **Overview**.
![dashboardover1-v2.png](../_images/dashboardover1-v2.png)
Instances
: Number of virtual machines your project can contain at once, regardless of the flavors (it could be eo1.xsmall as well as hm.2xlarge).
VCPUs
: Number of cores you can assign while launching VMs of different flavors (it varies for each flavor, for example eo1.xsmall has only one core, while eo1.large has four VCPUs).
RAM
: The amount of RAM you have available in you project according to the assigned quota.
Floating IPs
: A pool of unique Floating IP addresses assigned only to your project.
Security Groups
: Two of the ten Security Groups are preset during the creation of the domain (one is a default group and the second one allows connection via SSH and RDP and pinging instances).
Volumes
: Disks provided only by flavor (unchecked “Create new volume” while instances creation) wont count in.
Volume Storage
: You can store data from your instances and disposable volumes.
During the VM creation process, while choosing flavor, you may spot a yellow exclamation mark next to some values. It means that the remaining resources are exceeding the quota, or (more rarely) that this flavor is unavailable due to some maintenance reason.
![dashboardover2-v2.png](../_images/dashboardover2-v2.png)
You can expand the flavor summary by clicking the arrow on the left. The charts will show the current free resources as well as the resources that will remain after creating a new instance.
If the quota would be exceeded, OpenStack will non allow to choose this particular flavor.

View File

@ -0,0 +1,151 @@
How To Create a New Linux VM With NVIDIA Virtual GPU in the OpenStack Dashboard Horizon on CloudFerro Cloud[](#how-to-create-a-new-linux-vm-with-nvidia-virtual-gpu-in-the-openstack-dashboard-horizon-on-brand-name "Permalink to this headline")
===================================================================================================================================================================================================================================================
You can create Linux virtual machine with NVIDIA RTX A6000 as the additional graphics card. The card contains
> * 10,752 CUDA cores for rendering, graphics operations and heavy parallel computations,
> * 336 Tensor cores which accelerate AI and data science model training, while
> * 84 RT cores speed up ray tracing with shading or denoising, photorealistic rendering and so on.
There are four variants, using 6, 12, 24, or 48 GB of VGPU RAM. You will be able to select the particular model by choosing a proper flavor when creating the instance in Horizon (see below).
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * How to create an instance with NVIDIA support
> * How to choose the proper flavor for the data in hand
> * How to add proper keypair in order to
> * SSH into the virtual machine you create, or
> * use the console within Horizon interface and
> * verify that you are using the NVIDIA vGPU.
Step 1 Create New Instance with NVIDIA Image Support[](#step-1-create-new-instance-with-nvidia-image-support "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------------------------
To define a new instance, use the following series of commands:
> **Project → Compute → Instances.**
![compute_instances.png](../_images/compute_instances.png)
Click **Launch Instance** to get the following screen:
![launch_instance.png](../_images/launch_instance.png)
Insert the name of the instance (eg. “vm\_with\_vgpu”) and click Next button. In the next screen, you will choose the operating system for the new virtual machine you are defining:
![choose_os.png](../_images/choose_os.png)
Your goal is to use an image with predefinced NVIDIA support. To list all such images, click on field **Available** and enter NVIDIA into it. Only the images with NVIDIA in their names will be listed:
![nvidia_chosen_cloudferro_cloud.png](../_images/nvidia_chosen_cloudferro_cloud.png)
Select Instance Boot Source (eg. “Image”), and choose desired image (eg. “Ubuntu 20.04 NVIDIA”) by clicking on arrow.
Images marked with “NVIDIA” are fully operational. They come preinstalled with
> * special NVIDIA Grid drivers
> * a licence token, as well as
> * the CUDA library.
Note
If you do not need to have the system disk bigger than the size defined in a chosen flavor, we recommend setting “Create New Volume” feature to “No” state.
Click on the Next button and get to the following screen:
![createnew18.png](../_images/createnew18.png)
You will now choose one of the four models of the RTX A6000 card.
Step 2 Select Card Model / Flavor[](#step-2-select-card-model-flavor "Permalink to this headline")
---------------------------------------------------------------------------------------------------
The four available: **RTXA6000-6C**, **RTXA6000-12C**, **RTXA6000-24C**, and **RTXA6000-48C**, are described in this table:
![createnew16.png](../_images/createnew16.png)
The column VM Name contains flavor names *vm.a6000.1*, *vm.a6000.2*, *vm.a6000.4*, *vm.a6000.8*. Again, type *a6000* into the field **Available** and list only the NVIDIA flavors:
![createnew19.png](../_images/createnew19.png)
Taking into account the data from the table above, if you select flavor *vm.a6000.2*, you will use **4** virtual cores and **28** GB of “normal” RAM, and simultaneously, you will also choose the **RTXA6000-12C** model with **12** GB of virtual GPU RAM.
Note
Yellow triangles in the listing mean that you cannot select that row as one of the system resources is already engaged to other instances. If you, say, wanted to select the strongest flavor of NVIDIA, *vm.a6000.8*, you would first have to obtain 112 GB or more of available of RAM and only then be able to opt for that flavor.
In the situation above, select *vm.a6000.2* and continue going through the usual motions of selecting instance elements to finish the procedure.
Step 3 Finish Creating the Instance[](#step-3-finish-creating-the-instance "Permalink to this headline")
---------------------------------------------------------------------------------------------------------
Click “Networks” and then choose desired networks.
![networks5.png](../_images/networks5.png)
Open “Security Groups” After that, choose “allow\_ping\_ssh\_icmp\_rdp” and “default”.
![createnew6.png](../_images/createnew6.png)
Choose or generate SSH keypair, as explained in article [How to create key pair in OpenStack Dashboard on CloudFerro Cloud](How-to-create-key-pair-in-OpenStack-Dashboard-on-CloudFerro-Cloud.html) for your VM. Next, launch your instance by clicking on blue button.
![createnew7.png](../_images/createnew7.png)
You will see “Instances” menu with your newly created VM.
![createnew8.png](../_images/createnew8.png)
Note
If you want to make your VM accessible from the Internet, see this article: [How to Add or Remove Floating IPs to your VM on CloudFerro Cloud](../networking/How-to-Add-or-Remove-Floating-IPs-to-your-VM-on-CloudFerro-Cloud.html)
Step 4 Issue Commands from the Console[](#step-4-issue-commands-from-the-console "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------
Open the drop-down menu and choose “Console”.
![createnew9.png](../_images/createnew9.png)
You can connect to your virtual machine using SSH, see this article: [How to connect to your virtual machine via SSH in Linux on CloudFerro Cloud](../networking/How-to-connect-to-your-virtual-machine-via-SSH-in-Linux-on-CloudFerro-Cloud.html)
You can also use the SPICE console using the Openstack Dashboard.
Click on the black terminal area (to activate access to the console). Type:
```
eoconsole
```
and hit Enter on the keyboard.
![createnew10.png](../_images/createnew10.png)
Insert and retype new password.
![createnew11.png](../_images/createnew11.png)
Now you can type commands.
![createnew12.png](../_images/createnew12.png)
To check the status of the **vGPU** device, enter the command:
```
nvidia-smi
```
![createnew13.png](../_images/createnew13.png)
After you finish, type “exit”.
```
exit
```
![createnew14.png](../_images/createnew14.png)
This will close the session.

View File

@ -0,0 +1,111 @@
How to access the VM from OpenStack console on CloudFerro Cloud[](#how-to-access-the-vm-from-openstack-console-on-brand-name "Permalink to this headline")
===========================================================================================================================================================
Once you have created a virtual machine in OpenStack, you will need to perform various administrative tasks such as:
> * installing and uninstalling software,
> * uploading and downloading files,
> * setting up passwords and access policies
and so on. There are three ways to enter the back end part of virtual machines:
**Linux**
: For Linux, either of the Ubuntu or CentOS variety, you will be using the console that is present with every VM. You enter the console as a predefined user called **eoconsole**, define the password and switch to another, also predefined, user called **eouser**. After that, each time you are use the console, you will be present as **eouser**.
**Windows**
: You only need to create an *Administrator* profile within the virtual machine. Once you do that, you will work with Windows just like on the desktop computer, with possible delays in response due to the speed of Internet connection you have.
**Fedora**
: Fedora images technically belong to the family of Linux operating systems, but cannot be accessed via the console. To be more precise, you will see the console but wont be able to log in as the standard **eoconsole** user.
As these images are only used for automatic creation of Kubernetes instances, you have to enter them using Kubernetes methods. That boils down to using **kubectl exec** command (see below).
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Use console for Linux based virtual machines
> * Use console for Windows based virtual machines
> * Use console for Fedora base virtual machines
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
Using console for administrative tasks within Linux based VMs[](#using-console-for-administrative-tasks-within-linux-based-vms "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------------------------------------------
1. Go to <https://horizon.cloudferro.com> and select your authentication method:
![login_cloudferrocloud.png](../_images/login_cloudferrocloud.png)
You will enter the Horizon main screen.
2. Open the **Compute/Instances** tab and select the desired VM by clicking on its name:
![accessvm2.png](../_images/accessvm2.png)
3. Select **“Console”** pane
![accessvm3.png](../_images/accessvm3.png)
4. When logging in for the first time, you will see the generic console screen:
![accessvm4v2.png](../_images/accessvm4v2.png)
Click on link **Click here to show only console** and then click on the console surface to make it active.
Enter the predefined user name **eoconsole**. You will be asked to set up a new password, twice. This user **eoconsole** serves only for you to enter the console.
The next step is to start using another user, called **eouser**. Just like **eoconsole**, it is already defined for you, so you only need to switch from **eoconsole** to **eouser**. Linux command to do that is
```
sudo su - eouser
```
![sudo_su_eouser.png](../_images/sudo_su_eouser.png)
You will then use the console as a predefined user called **eouser**.
Attention
Google Chrome seems to work slowly while using the OpenStack console. Firefox works well.
Using console to perform administrative tasks within Fedora VMs[](#using-console-to-perform-administrative-tasks-within-fedora-vms "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
For normal VMs, choose either Ubuntu- or CentOS-based images while creating a VM but not Fedora. It is meant only for automatic creation of instances that belong to Kubernetes clusters. Such instances will have either word *master* or *node* in their names. Here is a typical series of instances that belong to two different clusters, called *vault* and *k8s-23*:
![some_nodes.png](../_images/some_nodes.png)
So if you click on any of these Kubernetes instances, you will be able to enter the console but will not be able to use it. In this context, Fedora image is **intentionally** set up in such a way that you **cannot enter it through the console**. You will, typically, see this after Fedora starts:
![fedora_image.png](../_images/fedora_image.png)
Instead, it is possible to enter one such instance using main Kubernetes command, **kubectl** with parameter **exec**. The main command would look like this:
```
kubectl -n vault exec -it vault-0 -- sh
```
where *vault* is the namespace within which the pod *vault-0* will be found and entered.
Further explanations of **exec** command are out of scope of this article. The following article will show you how to activate the **kubectl** command after the cluster has been created:
[How To Access Kubernetes Cluster Post Deployment Using Kubectl On CloudFerro Cloud OpenStack Magnum](../kubernetes/How-To-Access-Kubernetes-Cluster-Post-Deployment-Using-Kubectl-On-CloudFerro-Cloud-OpenStack-Magnum.html)
This article shows an example of an **exec** command to enter the VM and, later, save the data within it:
[Volume-based vs Ephemeral-based Storage for Kubernetes Clusters on CloudFerro Cloud OpenStack Magnum](../kubernetes/Volume-based-vs-Ephemeral-based-Storage-for-Kubernetes-Clusters-on-CloudFerro-Cloud-OpenStack-Magnum.html)
### Performing administrative tasks within Windows based VMs[](#performing-administrative-tasks-within-windows-based-vms "Permalink to this headline")
In case of **Windows** set a new password for *Administrator* profile.
![accessvm5.png](../_images/accessvm5.png)
You will then be able to perform administrative tasks on your instance.

View File

@ -0,0 +1,35 @@
How to clone existing and configured VMs on CloudFerro Cloud[](#how-to-clone-existing-and-configured-vms-on-brand-name "Permalink to this headline")
=====================================================================================================================================================
The simplest way to create the snapshot of your machine is using “Horizon” - graphical interface of OpenStack dashboard.
In summary, there will be 2 operations:
1. Creating snapshot
2. Restoring snapshot to newly created VM.
To start, please visit our website <https://horizon.cloudferro.com> and login.
![saml_cloudferro_cloud.png](../_images/saml_cloudferro_cloud.png)
After logon, in **“Instances”** menu select VM to be cloned, and create its snapshot by clicking “Actions” Menu
![clone2.png](../_images/clone2.png)
Once the snapshot is ready, you may see it on **“Images”** page of Horizon. Select its name to see properties.
![clone3.png](../_images/clone3.png)
Now, you may click **“Launch”** in right upper corner of the window or just go back to **“Instances”** menu and launch new instance.
Full manual is here: [How to create new Linux VM in OpenStack Dashboard Horizon on CloudFerro Cloud](How-to-create-new-Linux-VM-in-OpenStack-Dashboard-Horizon-on-CloudFerro-Cloud.html)
But if this process is familiar to you, there is only one difference. Chose as the source **“boot from snapshot”** instead of **“boot from image”** and select your snapshot from the list below. In next steps select parameters (flavour, size), at least the same as the original one. (“Launch instance” button will be unavailable until all necessary settings were completed).
The new machine gets configured as a clone of the original one, except of network addresses (new floating-ip must be associated) and network policies.
Caution
If the original machine had any additional volumes attached to it, they should also be cloned.
You may also want to read: [Volume snapshot inheritance and its consequences on CloudFerro Cloud](../datavolume/Volume-snapshot-inheritance-and-its-consequences-on-CloudFerro-Cloud.html).

View File

@ -0,0 +1,219 @@
How to create Windows VM on OpenStack Horizon and access it via web console on CloudFerro Cloud[](#how-to-create-windows-vm-on-openstack-horizon-and-access-it-via-web-console-on-brand-name "Permalink to this headline")
===========================================================================================================================================================================================================================
This article provides a straightforward way of creating a functional Windows VM on CloudFerro Cloud cloud, using the Horizon graphical interface.
The idea is to
> * start the creation of a Windows virtual machine from the default Horizon dashboard and then
> * access it via the web console,
all from your Internet browser.
What Are We Going To Cover[](#what-are-we-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Accessing the Launch Instance menu
> * Choosing the Instance name
> * Choosing source
> * Choosing flavor
> * Choosing networks
> * Choosing security groups
> * Launching virtual machine
> * Setting **Administrator** password
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
Step 1: Access the Launch Instance menu[](#step-1-access-the-launch-instance-menu "Permalink to this headline")
----------------------------------------------------------------------------------------------------------------
In the Horizon dashboard, navigate to **Compute -> Instances**. Click the **Launch Instance** at the top of the **Instances** section:
![create-windows-vm-horizon-web-console-01_creodias.png](../_images/create-windows-vm-horizon-web-console-01_creodias.png)
You should get the following window:
![create-windows-vm-horizon-web-console-02_creodias.png](../_images/create-windows-vm-horizon-web-console-02_creodias.png)
Step 2: Choose the instance name[](#step-2-choose-the-instance-name "Permalink to this headline")
--------------------------------------------------------------------------------------------------
In the window which appeared, enter the name you wish to give to your instance in the **Instance Name** text field. In this example, we use **test-windows-vm** as the name:
![create-windows-vm-horizon-web-console-03_creodias.png](../_images/create-windows-vm-horizon-web-console-03_creodias.png)
Click **Next >**.
Step 3: Choose source[](#step-3-choose-source "Permalink to this headline")
----------------------------------------------------------------------------
The default value in the drop-down menu **Select Boot Source** is **Image**, meaning that you will choose from one of the images that are present in your version of Horizon. If another value is selected, revert to **Image** instead.
![create-windows-vm-horizon-web-console-04_creodias.png](../_images/create-windows-vm-horizon-web-console-04_creodias.png)
Enter **windows** in the search field in the **Available** section to filter Windows images:
![create-windows-vm-horizon-web-console-05_creodias.png](../_images/create-windows-vm-horizon-web-console-05_creodias.png)
Choose the newest available version by clicking **↑** next to it. As of writing of this article, it is **Windows 2022**.
![create-windows-vm-horizon-web-console-06_creodias.png](../_images/create-windows-vm-horizon-web-console-06_creodias.png)
Your chosen image should appear in the **Allocated** section:
![create-windows-vm-horizon-web-console-07_creodias.png](../_images/create-windows-vm-horizon-web-console-07_creodias.png)
Click **Next >**.
If you allocate a wrong image by mistake, you can remove it from the **Allocated** section by clicking **↓** next to its name.
Step 4: Choose flavor[](#step-4-choose-flavor "Permalink to this headline")
----------------------------------------------------------------------------
In this step you will choose the flavor of your virtual machine. Flavors manage access to resources such as VCPUS, RAM and storage.
The following screenshot shows what the flavors table looks like in general:
![create-windows-vm-horizon-web-console-09_creodias.png](../_images/create-windows-vm-horizon-web-console-09_creodias.png)
The presence of yellow warning triangles means that the flavor in that row is unavailable to you. To see the exact reason for this unavailability, hover your mouse over that triangle, like so:
![create-windows-vm-horizon-web-console-21_creodias.png](../_images/create-windows-vm-horizon-web-console-21_creodias.png)
Here are the flavors which you can choose when creating a Windows virtual machine in each particular cloud:
WAW4-1WAW3-1WAW3-2FRA1-2
On WAW4-1 cloud there are no flavors which have the name containing with **w** so it cannot be used to run Windows.
On WAW3-1 cloud, only flavors which have the name starting with **hmw** can be used to run Windows.
Filter them by entering **hmw** in the search bar in the **Available** section:
![create-windows-vm-horizon-web-console-23_creodias.png](../_images/create-windows-vm-horizon-web-console-23_creodias.png)
On WAW3-2 cloud, only flavors which have the name starting with **hmaw** can be used to run Windows.
Filter them by entering **hmaw** in the search bar in the **Available** section:
![create-windows-vm-horizon-web-console-24_creodias.png](../_images/create-windows-vm-horizon-web-console-24_creodias.png)
On FRA1-2 cloud, only flavors which have the name starting with **hmw** can be used to run Windows.
Filter them by entering **hmw** in the search bar in the **Available** section:
![create-windows-vm-horizon-web-console-25_creodias.png](../_images/create-windows-vm-horizon-web-console-25_creodias.png)
Always be sure to check the actual flavors (that info can be found in the Horizon dashboard).
Choose the flavor which suits you best and click **↑** next to it to allocate it.
Click **Next >**.
Note
In examples that follow, we use two networks, one with name starting with **cloud\_** and the name of the other starting with **eodata\_**. The former network should always be present in the account, but the latter may or may not present. If you do not have network which name starts with **eodata\_**, you may create it or use any other network that you already have and want to use.
Step 5: Attach networks to your virtual machine[](#step-5-attach-networks-to-your-virtual-machine "Permalink to this headline")
--------------------------------------------------------------------------------------------------------------------------------
The next step contains the list of networks available to you:
![create-windows-vm-horizon-web-console-10_creodias.png](../_images/create-windows-vm-horizon-web-console-10_creodias.png)
By default, you should have access to the following networks:
> * A network which has the same name as your project - it can be used to connect your virtual machines together and access the Internet.
> * The network which has **eodata** in its name - it can be used to access the EODATA repository containing Earth observation data.
Allocate both of them and click **Next >**.
The next step is called **Network Ports**. In it simply quick **Next >** without doing anything else.
Step 6: Choose security groups[](#step-6-choose-security-groups "Permalink to this headline")
----------------------------------------------------------------------------------------------
Security groups control Internet traffic for your virtual machine.
In this step, make sure that the **default** security group is allocated. It blocks incoming network traffic and allows outgoing network traffic.
Group **allow\_ping\_ssh\_icmp\_rdp** exposes your VM to various types of network traffic but here, do **not** allocate it. It is not needed for the purposes of this article, since you will only access your virtual machine using the web console. You should still be able to perform standard Windows operations such as browsing the Internet or accessing e-mail without this security group.
![create-windows-vm-horizon-web-console-11_creodias.png](../_images/create-windows-vm-horizon-web-console-11_creodias.png)
Step 7: Launch your virtual machine[](#step-7-launch-your-virtual-machine "Permalink to this headline")
--------------------------------------------------------------------------------------------------------
Other steps from the **Launch Instance** window are optional. Once you have done the previous steps of this article, click **Launch Instance** button:
![create-windows-vm-horizon-web-console-12_creodias.png](../_images/create-windows-vm-horizon-web-console-12_creodias.png)
Your virtual machine should appear in the **Instances** section of the Horizon dashboard. Wait until its **Status** is **Active**:
![create-windows-vm-horizon-web-console-13_creodias.png](../_images/create-windows-vm-horizon-web-console-13_creodias.png)
Once the **Status** is **Active**, the virtual machine should be running. The next step involves setting access to it.
Step 8: Set the Administrator password[](#step-8-set-the-administrator-password "Permalink to this headline")
--------------------------------------------------------------------------------------------------------------
Once your instance has **Active** status, click on its name:
![create-windows-vm-horizon-web-console-14_creodias.png](../_images/create-windows-vm-horizon-web-console-14_creodias.png)
You should see a page containing information about your instance. Navigate to **Console** tab:
![create-windows-vm-horizon-web-console-15_creodias.png](../_images/create-windows-vm-horizon-web-console-15_creodias.png)
You should see the web console with which you can control your virtual machine. When the system finishes startup, you will see prompt to set the Administrator password:
![create-windows-vm-horizon-web-console-16_creodias.png](../_images/create-windows-vm-horizon-web-console-16_creodias.png)
Click **OK**. You should now see two text fields:
![create-windows-vm-horizon-web-console-17_creodias.png](../_images/create-windows-vm-horizon-web-console-17_creodias.png)
Enter your chosen password in the **New password** text field.
Enter it again in the **Confirm password** text field.
Click right arrow next to the **Confirm password** text field:
![create-windows-vm-horizon-web-console-18_creodias.png](../_images/create-windows-vm-horizon-web-console-18_creodias.png)
You should get the following confirmation:
![create-windows-vm-horizon-web-console-19_creodias.png](../_images/create-windows-vm-horizon-web-console-19_creodias.png)
Click **OK**.
Wait until you see the standard Windows desktop.
Step 9: Update Windows[](#step-9-update-windows "Permalink to this headline")
------------------------------------------------------------------------------
Once the Windows virtual machine is up and running, you should update its operating system to have the latest security fixes. Click **Start**, and then **Settings**:
![create-windows-vm-horizon-web-console-26_creodias.png](../_images/create-windows-vm-horizon-web-console-26_creodias.png)
After that, click **Update & Security**:
![create-windows-vm-horizon-web-console-27_creodias.png](../_images/create-windows-vm-horizon-web-console-27_creodias.png)
You should now see **Windows Update** screen, which can look like this:
![create-windows-vm-horizon-web-console-28_creodias.png](../_images/create-windows-vm-horizon-web-console-28_creodias.png)
Follow the appropriate prompts to update your operating system.
What To Do Next[](#what-to-do-next "Permalink to this headline")
-----------------------------------------------------------------
If you want to access your virtual machine remotely using RDP (Remote Desktop Protocol), you should consider increasing its security by using a bastion host. The following article contains more information: [Connecting to a Windows VM via RDP through a Linux bastion host port forwarding on CloudFerro Cloud](../windows/Connecting-to-a-Windows-VM-via-RDP-through-a-Linux-bastion-host-port-forwarding-on-CloudFerro-Cloud.html)
To learn more about security groups, you can check this article: [How to use Security Groups in Horizon on CloudFerro Cloud](How-to-use-Security-Groups-in-Horizon-on-CloudFerro-Cloud.html)

View File

@ -0,0 +1,261 @@
How to create a Linux VM and access it from Linux command line on CloudFerro Cloud[](#how-to-create-a-linux-vm-and-access-it-from-linux-command-line-on-brand-name "Permalink to this headline")
=================================================================================================================================================================================================
Creating a virtual machine in a CloudFerro Cloud cloud allows you to perform computations without having to engage your own infrastructure. In this article you shall create a Linux based virtual machine and access it remotely from a Linux command line on a desktop or laptop.
If you want to access Linux VM from a Windows based command line, follow this article instead: [How to create a Linux VM and access it from Windows desktop on CloudFerro Cloud](How-to-create-a-Linux-VM-and-access-it-from-Windows-desktop-on-CloudFerro-Cloud.html).
Note
This article only covers the basics of creating a VM - it does not cover topics such as use of NVIDIA hardware or creating a volume during the creation of a VM.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Creating a Linux virtual machine in CloudFerro Cloud cloud using command **Launch Instance** from Horizon Dashboard
You will enter the following required data into that window:
> * Instance name
> * Instance source (from an operating system image)
> * Instance flavor (the combination of CPU, memory and storage capacity)
> * Networks that the newly created VM will use
Then create elements later needed for SSH connection:
> * Security groups to control access to the machine and
> * A key pair for SSH access to the Linux based VM in the cloud
For external access
> * Attach a floating IP to the instance so that it can be found on the Internet and, finally,
> * Use SSH to connect to that virtual machine from another Linux based system
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Hosting**
You need a CloudFerro Cloud hosting account with Horizon interface <https://horizon.cloudferro.com>.
No. 2 **Basic knowledge of Linux terminal**
You should have some experience with Linux command line interface.
No. 3 **Linux installed on your local computer**
A Linux distribution running on your computer. This article was written for Ubuntu 20.04 LTS so please adjust the commands to your version of Linux.
No. 4 **SSH client installed and configured on your local Linux computer**
The SSH client must be installed and configured on your local Linux computer. Please see [Generating an SSH keypair in Linux on CloudFerro Cloud](../networking/Generating-a-SSH-keypair-in-Linux-on-CloudFerro-Cloud.html).
If you already have an SSH key pair and an SSH client configured, you should import your public key to the Horizon dashboard. The following article contains information how to do it: [How to import SSH public key to OpenStack Horizon on CloudFerro Cloud](../networking/How-to-Import-SSH-Public-Key-to-OpenStack-Horizon-on-CloudFerro-Cloud.html).
Alternatively, you can also create a key pair directly in the Horizon:
[How to create key pair in OpenStack Dashboard on CloudFerro Cloud](How-to-create-key-pair-in-OpenStack-Dashboard-on-CloudFerro-Cloud.html).
Options for creation of a Virtual Machine (VM)[](#options-for-creation-of-a-virtual-machine-vm "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------------------
Creation of a virtual machine is divided into 11 sections, four of which are mandatory (denoted by an asterisk in the end of the name of the option). In addition to those four (**Details**, **Source**, **Flavor**, and **Networks**), we shall define **Security Groups** and **Key Pairs**. The rest of the options to launch an instance is out of scope of this article.
Note
In OpenStack terminology, a *virtual machine* is also an *instance*. *Instance* is a broader term as not all instances need be virtual machines, it is also possible to use real hardware as an instance.
The window to create a virtual machine is called **Launch Instance**. You will enter all the data about an instance into that window and its options.
Step 1 Start the Launch Instance window and name the virtual machine[](#step-1-start-the-launch-instance-window-and-name-the-virtual-machine "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
In the Horizon dashboard go to **Compute** -> **Instances** and click **Launch Instance**. You should get the following window:
![create-linux-linux-04_creodias.png](../_images/create-linux-linux-04_creodias.png)
Type the name for your virtual machine in the **Instance Name** text field.
Click **Next** or the **Source** option on the left side menu.
Step 2 Define the source of the virtual machine[](#step-2-define-the-source-of-the-virtual-machine "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------------------------
The **Source** window appears:
![create-linux-linux-05_creodias.png](../_images/create-linux-linux-05_creodias.png)
Make sure that from the drop-down menu **Select Boot Source** option **Image** is selected.
![boot_source.png](../_images/boot_source.png)
From the **Available** list choose Linux distribution that suits you best and click **↑** next to it. It should now be visible in the **Allocated** section:
![create-linux-linux-06_creodias.png](../_images/create-linux-linux-06_creodias.png)
This image shows that a Ubuntu 20.04 LTS was selected; if you, however, chose CentOS 7, that is what would show here instead of Ubuntu 20.04 LTS.
If you change your mind, click **↓** to unselect a source and then choose a different one.
Images which have **NVIDIA** in their name contain NVIDIA hardware. This article does not cover their use. Therefore, make sure that you choose the image without it.
Also, make sure that in the section **Create New Volume** option **No** is selected.
Click **Next** or click on button **Flavor** to define the flavor of the instance.
Step 3 Define the flavor of the instance[](#step-3-define-the-flavor-of-the-instance "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------
You should now see the following form:
![create-linux-linux-07_creodias.png](../_images/create-linux-linux-07_creodias.png)
The standard definition of OpenStack *flavor* is the amount of resources available to the instance - like VCPU, memory and storage capacity.
Choose the one which suits you best and click **↑** next to it.
Make sure that you do **not** select one of the below flavors - they contain NVIDIA hardware and this article does not cover their use.
> * **vm.a6000.1**
> * **vm.a6000.2**
> * **vm.a6000.4**
> * **vm.a6000.8**
Sometimes, a flavor might be insufficient for source you chose in the previous step. If this is the case, you will see a yellow warning sign next to at least one of the values in the row for that flavor:
![yellow_triangles.png](../_images/yellow_triangles.png)
To solve this issue, choose a flavor that supports your chosen source instead. In the image above, *vm.a6000.4* is not available but, say, *hm.large* is.
Another possible explanation might be that your quota is too low for creating a VM with your chosen flavor. You can see your quota in the **Compute -> Overview** section of your Horizon dashboard. If that is the case, you can either:
* choose a different flavor or
* contact the CloudFerro Cloud Support to request quota increase - [Helpdesk and Support](../accountmanagement/Help-Desk-And-Support.html).
Click **Next** or click **Networks** to define networks.
Step 4 Define networks for the virtual machine[](#step-4-define-networks-for-the-virtual-machine "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------------
You should now see the following window:
![create-linux-linux-08_creodias.png](../_images/create-linux-linux-08_creodias.png)
Here you can select networks that will be attached to your virtual machine. They control the way your machine is connected to the Internet, to the other machines and to other resources as well.
By default, you should have access to the network whose name starts with **cloud\_**, which allows you to connect your machines together. It also has access to the **external** network which gives the instance access to the Internet.
Choose that network and also choose any other network that you want to access through the newly created VM.
These were the obligatory options. Since you want to access the instance through an SSH connection, you will need to define **Security Groups** and **Key Pair**.
Step 5 Define security groups for VM[](#step-5-define-security-groups-for-vm "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------
Security groups control network traffic to and from your virtual machine.
Click **Security Groups**. You should see the following form:
![create-linux-linux-09_creodias.png](../_images/create-linux-linux-09_creodias.png)
By default, you have access to two groups:
> * **default** which blocks all incoming traffic and allows all outgoing traffic
> * **allow\_ping\_ssh\_icmp\_rdp** which allows incoming Ping, SSH, ICMP and RDP connections
Enable both of these rules. One of the open ports in **allow\_ping\_ssh\_icmp\_rdp** is 22, which is a prerequisite for SSH access.
Step 6 Create a key pair for SSH access[](#step-6-create-a-key-pair-for-ssh-access "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------
To use SSH to connect your local Linux computer to the cloud Linux “computer”, you will need to provide one public and one secret key. (Keys are random strings, usually hundreds of characters long.)
Click **Key Pair**. You should now see the following window:
![create-linux-linux-10_creodias.png](../_images/create-linux-linux-10_creodias.png)
In the image above, the key is called **test-key**. There are three ways to enter the keys into this window:
> * using option **Create Key Pair** create it on the spot,
> * using option **Import Key Pair** take the keys you already have and upload them to the cloud,
> * using one of the key pairs that were already existing within OpenStack cloud.
If you havent created your key pair yet, please follow Prerequisite No. 4.
Anyways, make sure that your uploaded key is in the **Allocated** section.
Step 7 Create the instance[](#step-7-create-the-instance "Permalink to this headline")
---------------------------------------------------------------------------------------
Once you have set everything up, click **Launch Instance**.
Your instance should now be in the **Instances** list. Initially, the instance will be in a state of “Spawning” as in this image:
![create-linux-linux-12_creodias.png](../_images/create-linux-linux-12_creodias.png)
Spawning is the process of preparing the instance.
Wait up to a few minutes until your instance has finished spawning. The next state is **Running** label in the **Power State** column:
![create-linux-linux-13_creodias.png](../_images/create-linux-linux-13_creodias.png)
It means that the instance is ready to use.
In Step 4 you have attached a network with the name that starts with **cloud\_**. It allows the instance to send and receive data from other instances in the cloud and the Internet but does not automatically provide a static IP address. Such address is important if you want to host a website or access the instance via the SSH protocol.
Just like on the above screenshot, under header **IP Address**, you will see network addresses which both start with **10.**. It means that they are local network addresses. If you want to access your instance remotely, it must have a static IP address. The way to add it is to attach a so-called *floating IP* address to the instance.
Step 8 Attach a Floating IP to the instance[](#step-8-attach-a-floating-ip-to-the-instance "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------
Here is how to create and attach a floating IP to your instance: [How to Add or Remove Floating IPs to your VM on CloudFerro Cloud](../networking/How-to-Add-or-Remove-Floating-IPs-to-your-VM-on-CloudFerro-Cloud.html).
Once you have added the floating IP, you will see it in the Horizon dashboard under header **IP Address** - just like in the last image from that article:
![ip_address_from_article.png](../_images/ip_address_from_article.png)
The floating IP address in that article is **64.225.132.0**. Your address will vary.
Step 9 Connecting to your virtual machine using SSH[](#step-9-connecting-to-your-virtual-machine-using-ssh "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------------------------------
The following article has information about connecting to a virtual machine using SSH: [How to connect to your virtual machine via SSH in Linux on CloudFerro Cloud](../networking/How-to-connect-to-your-virtual-machine-via-SSH-in-Linux-on-CloudFerro-Cloud.html).
The last command in that article was:
```
ssh [email protected]
```
The IP address in that article is **64.225.132.99** and is different from the address from the previous article. Instead of IP addresses used in these articles (**64.225.132.99** and **64.225.132.0**), enter the IP address of your instance which you saw after doing Step 8.
What To Do Next[](#what-to-do-next "Permalink to this headline")
-----------------------------------------------------------------
CloudFerro Cloud cloud can be used for general hosting needs, such as
> * installing LAMP servers,
> * installing and using WordPress servers,
> * email servers,
> * Kubernetes and SLURM clusters and so on.
To create a *cluster* of instances, see the series of articles on Kubernetes:
[How to Create a Kubernetes Cluster Using CloudFerro Cloud OpenStack Magnum](../kubernetes/How-to-Create-a-Kubernetes-Cluster-Using-CloudFerro-Cloud-OpenStack-Magnum.html).
If you find yourself unable to connect to your virtual machine using SSH, you can use the web console for troubleshooting and other purposes. Heres how to do it:
[How to access the VM from OpenStack console on CloudFerro Cloud](How-to-access-the-VM-from-OpenStack-console-on-CloudFerro-Cloud.html)
If you dont want the storage of your instance to be deleted while the VM is removed, you can choose to use a volume during instance creation. Please see the following articles:
[VM created with option Create New Volume No on CloudFerro Cloud](VM-created-with-option-Create-New-Volume-No-on-CloudFerro-Cloud.html)
[VM created with option Create New Volume Yes on CloudFerro Cloud](VM-created-with-option-Create-New-Volume-Yes-on-CloudFerro-Cloud.html).
You cant apply the SSH keys uploaded to the Horizon dashboard directly to a VM after its creation. The following article presents a walkaround to this problem:
[How to add SSH key from Horizon web console on CloudFerro Cloud](../networking/How-to-add-SSH-key-from-Horizon-web-console-on-CloudFerro-Cloud.html).
If you find that the storage of your VM is insufficient for your needs, you can attach the volume to it after its creation. The following articles contain appropriate instructions: [How to attach a volume to VM less than 2TB on Linux on CloudFerro Cloud](../datavolume/How-to-attach-a-volume-to-VM-less-than-2TB-on-Linux-on-CloudFerro-Cloud.html) and [How to attach a volume to VM more than 2TB on Linux on CloudFerro Cloud](../datavolume/How-to-attach-a-volume-to-VM-more-than-2TB-on-Linux-on-CloudFerro-Cloud.html).

View File

@ -0,0 +1,373 @@
How to create a Linux VM and access it from Windows desktop on CloudFerro Cloud[](#how-to-create-a-linux-vm-and-access-it-from-windows-desktop-on-brand-name "Permalink to this headline")
===========================================================================================================================================================================================
Creating a virtual machine in a CloudFerro Cloud cloud allows you to perform computations without having to engage your own infrastructure. In this article you shall create a Linux based virtual machine and access it remotely using PuTTY on Windows.
If you want to access Linux VM from a Linux command line, follow this article instead: [How to create a Linux VM and access it from Linux command line on CloudFerro Cloud](How-to-create-a-Linux-VM-and-access-it-from-Linux-command-line-on-CloudFerro-Cloud.html).
Note
This article only covers the basics of creating a VM - it does not cover topics such as use of NVIDIA hardware or creating a volume during the creation of a VM.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Creating a Linux virtual machine in CloudFerro Cloud cloud using command **Launch Instance** from Horizon Dashboard
You will enter the following data into that window:
> * Instance name
> * Instance source (from an operating system image)
> * Instance flavor (the combination of CPU, memory and storage capacity)
> * Networks that the newly created VM will use
Then create elements later needed for SSH connection:
> * Security groups to control access to the machine
> * A chosen key pair for SSH access to the Linux based VM in the cloud
For external access
> * Attach a floating IP to the instance so that it can be found on the Internet.
After that, you will connect to a VM using PuTTY:
> * Convert the public key to the format compatible with PuTTY
> * Configure PuTTY
> * Save PuTTY configuration
> * Connect to a VM
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Hosting**
You need a CloudFerro Cloud hosting account with Horizon interface <https://horizon.cloudferro.com>.
No. 2 **Basic knowledge of Linux terminal**
You should have some experience with Linux command line interface.
No. 3 **Windows**
You need to have Microsoft Windows 10 or newer installed on your computer.
No. 4 **PuTTY installed on your local Windows computer**
You should have PuTTY installed on your computer. You can download it from the following website: <https://www.chiark.greenend.org.uk/~sgtatham/putty/>.
No. 5 **SSH key**
You need to have an SSH key pair. It consists of a public and private key. You can use your existing pair in this workflow or create a new one. If you do not have one, you have several options, such as:
* Generate them directly using the Horizon dashboard: [How to create key pair in OpenStack Dashboard on CloudFerro Cloud](How-to-create-key-pair-in-OpenStack-Dashboard-on-CloudFerro-Cloud.html).
* Generate your key pair using the Windows command line. Please check this article: [How to Create SSH Key Pair in Windows 10 On CloudFerro Cloud](../windows/How-To-Create-SSH-Key-Pair-In-Windows-On-CloudFerro-Cloud.html). If you choose that option, make sure that you upload your public key to the Horizon dashboard: [How to import SSH public key to OpenStack Horizon on CloudFerro Cloud](../networking/How-to-Import-SSH-Public-Key-to-OpenStack-Horizon-on-CloudFerro-Cloud.html).
This article contains information about configuring PuTTY using one such key pair.
Options for creation of a Virtual Machine (VM)[](#options-for-creation-of-a-virtual-machine-vm "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------------------
Creation of a virtual machine is divided into 11 sections, four of which are mandatory (denoted by an asterisk in the end of the name of the option). In addition to those four (**Details**, **Source**, **Flavor**, and **Networks**), we shall define **Security Groups** and **Key Pairs**. The rest of the options to launch an instance is out of scope of this article.
Note
In OpenStack terminology, a *virtual machine* is also an *instance*. *Instance* is a broader term as not all instances need be virtual machines, it is also possible to use real hardware as an instance.
The window to create a virtual machine is called **Launch Instance**. You will enter all the data about an instance into that window.
Step 1 Start the Launch Instance window and name the virtual machine[](#step-1-start-the-launch-instance-window-and-name-the-virtual-machine "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
In the Horizon dashboard go to **Compute** -> **Instances** and click **Launch Instance**. You should get the following window:
![create-linux-linux-04_creodias.png](../_images/create-linux-linux-04_creodias.png)
Type the name for your virtual machine in the **Instance Name** text field.
Click **Next** or the **Source** option on the left side menu.
Step 2 Define the source of the virtual machine[](#step-2-define-the-source-of-the-virtual-machine "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------------------------
The **Source** window appears:
![create-linux-linux-05_creodias.png](../_images/create-linux-linux-05_creodias.png)
Make sure that from the drop-down menu **Select Boot Source** option **Image** is selected.
![boot_source.png](../_images/boot_source.png)
From the **Available** list choose Linux distribution that suits you best and click **↑** next to it. It should now be visible in the **Allocated** section:
![create-linux-linux-06_creodias.png](../_images/create-linux-linux-06_creodias.png)
This image shows that a Ubuntu 20.04 LTS was selected; if you, however, chose CentOS 7, that is what would show here instead of Ubuntu 20.04 LTS.
If you change your mind, click **↓** to unselect a source and then choose a different one.
Images which have **NVIDIA** in their name contain NVIDIA hardware. This article does not cover their use. Therefore, make sure that you choose the image without it.
Also, make sure that in the section **Create New Volume** option **No** is selected.
Click **Next** or click on button **Flavor** to define the flavor of the instance.
Step 3 Define the flavor of the instance[](#step-3-define-the-flavor-of-the-instance "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------
You should now see the following form:
![create-linux-linux-07_creodias.png](../_images/create-linux-linux-07_creodias.png)
The standard definition of OpenStack *flavor* is the amount of resources available to the instance - like VCPU, memory and storage capacity.
Choose the one which suits you best and click **↑** next to it.
Warning
Make sure that you do **not** select one of the below flavors - they contain NVIDIA hardware and this article does not cover their use.
> * **vm.a6000.1**
> * **vm.a6000.2**
> * **vm.a6000.4**
> * **vm.a6000.8**
Sometimes, a flavor might be insufficient for source you chose in the previous step. If this is the case, you will see a yellow warning sign next to at least one of the values in the row for that flavor:
![yellow_triangles.png](../_images/yellow_triangles.png)
To solve this issue, choose a flavor that supports your chosen source instead. In the image above, *vm.a6000.4* is not available but, say, *hm.large* is.
Another possible cause might be that your quota is too low for creating a VM with your chosen flavor. You can see your quota in the **Compute -> Overview** section of your Horizon dashboard. If that is the case, you can either:
* choose a different flavor or
* contact the CloudFerro Cloud Support to request quota increase - [Helpdesk and Support](../accountmanagement/Help-Desk-And-Support.html).
Click **Next** or click **Networks** to define networks.
Step 4 Define networks for the virtual machine[](#step-4-define-networks-for-the-virtual-machine "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------------
You should now see a window to choose one or several networks that you want your VM to work with:
![create-linux-linux-08_creodias.png](../_images/create-linux-linux-08_creodias.png)
Here you can select networks that will be attached to your virtual machine. They control the way your machine is connected to the Internet, to the other machines and to other resources as well.
By default, you should have access to the network whose name starts with **cloud\_**. It
> * connects your machines together and
> * has access to the **external** network, which gives the instance access to the Internet.
Other networks may be present in the system.
These were the obligatory options. Since you want to access the instance through an SSH connection, you will need to define **Security Groups** and **Key Pair**.
Step 5 Define security groups for VM[](#step-5-define-security-groups-for-vm "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------
Security groups control network traffic to and from your virtual machine.
Click **Security Groups**. You should see the following form:
![create-linux-linux-09_creodias.png](../_images/create-linux-linux-09_creodias.png)
By default, you have access to two groups:
> * **default** which blocks all incoming traffic and allows all outgoing traffic
> * **allow\_ping\_ssh\_icmp\_rdp** which allows incoming Ping, SSH, ICMP and RDP connections
Enable both of these rules. One of the open ports in **allow\_ping\_ssh\_icmp\_rdp** is 22, which is a prerequisite for SSH access.
Step 6 Create a key pair for SSH access[](#step-6-create-a-key-pair-for-ssh-access "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------
To use SSH to connect your local Linux computer to the cloud Linux “computer”, you will need to provide one public and one secret key. (Keys are random strings, usually hundreds of characters long.)
Click **Key Pair**. You should now see the following window:
![create-linux-linux-10_creodias.png](../_images/create-linux-linux-10_creodias.png)
In the image above, the key is called **test-key**. There are three ways to enter the keys into this window:
> * using option **Create Key Pair** create it on the spot,
> * using option **Import Key Pair** take the keys you already have and upload them to the cloud,
> * using one of the key pairs that were already existing within OpenStack cloud.
If you havent created your key pair yet, please follow Prerequisite No. 5.
Anyways, make sure that your uploaded key is in the **Allocated** section.
Step 7 Create the instance[](#step-7-create-the-instance "Permalink to this headline")
---------------------------------------------------------------------------------------
Once you have set everything up, click **Launch Instance**.
Your instance should now be in the **Instances** list. Initially, the instance will be in a state of “Spawning” as in this image:
![create-linux-linux-12_creodias.png](../_images/create-linux-linux-12_creodias.png)
Spawning is the process of preparing the instance.
Wait up to a few minutes until your instance has finished spawning. The next state is **Running** label in the **Power State** column:
![create-linux-linux-13_creodias.png](../_images/create-linux-linux-13_creodias.png)
It means that the instance is ready to use.
In Step 4 you have attached a network with the name that starts with **cloud\_**. It allows the instance to send and receive data from other instances in the cloud and the Internet but does not automatically provide a static IP address. Such address is important if you want to host a website or access the instance via the SSH protocol.
Just like on the above screenshot, under header **IP Address**, you will see network addresses which both start with **10.**. It means that they are local network addresses. If you want to access your instance remotely, it must have a static IP address. The way to add it is to attach a so-called *floating IP* address to the instance.
Step 8 Attach a Floating IP to the instance[](#step-8-attach-a-floating-ip-to-the-instance "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------
Here is how to create and attach a floating IP to your instance: [How to Add or Remove Floating IPs to your VM on CloudFerro Cloud](../networking/How-to-Add-or-Remove-Floating-IPs-to-your-VM-on-CloudFerro-Cloud.html).
Once you have added the floating IP, you will see it in the Horizon dashboard under header **IP Address** - just like in the last image from that article:
![ip_address_from_article.png](../_images/ip_address_from_article.png)
The floating IP address in that article is **64.225.132.0**. Your address will vary.
Step 9 Convert your SSH key[](#step-9-convert-your-ssh-key "Permalink to this headline")
-----------------------------------------------------------------------------------------
If you followed Prequisite No. 5, you should have an SSH key pair on your local computer - public and private.
In order to connect to a virtual machine using PuTTY, you must first convert your private key to the PuTTY format.
If you didnt install PuTTY yet, please follow Prerequisite No. 4. You should have the following section in your **Start** menu:
![putty-02.png](../_images/putty-02.png)
Choose **PuTTYgen**. You should get the following window:
![putty-03.png](../_images/putty-03.png)
Click **Load**. A file sector should appear:
![putty-04.png](../_images/putty-04.png)
In the lower section of the window there should be a drop-down menu with the option **PuTTY Private Key Files** already selected. Click it and choose **All Files (\*.\*)** instead:
![putty-05.png](../_images/putty-05.png)
Find your downloaded private key and click **Open**.
A following message should appear:
![putty-06.png](../_images/putty-06.png)
Click **OK**. You should return to the previous window (**PuTTY Key Generator**). Click **Save private key**. You should get the following question:
![putty-07.png](../_images/putty-07.png)
Click **Yes**.
In the next window **Save private key as:** choose the location in which you wish to place your private key. Choose a name for your file and press **Save**.
Close the **PuTTY Key Generator** window. Your saved file should like like this:
![putty-08.png](../_images/putty-08.png)
Of course, your file will probably have a different name than the one on the screenshot above.
Step 10 Configure PuTTY[](#step-10-configure-putty "Permalink to this headline")
---------------------------------------------------------------------------------
Run **PuTTY** from your **Start** menu. The following window should appear:
![putty-09.png](../_images/putty-09.png)
In the text field **Host Name (or IP address)** type the floating IP of your virtual machine - in this example it is **64.225.133.247**:
![putty-10.png](../_images/putty-10.png)
In the **Category** section (in the left part of the window) go to **Connection -> SSH -> Auth -> Credentials to authenticate with**. You should get the following form:
![putty-11.png](../_images/putty-11.png)
Click **Browse…** next to the text field **Private key file for authentictation**.
Choose your converted private key.
The location of your key should appear in the **Private key file for authentication** text box:
![key-location-putty.png](../_images/key-location-putty.png)
Step 11 Save the session settings[](#step-11-save-the-session-settings "Permalink to this headline")
-----------------------------------------------------------------------------------------------------
To save these settings for future use, return to the **Session** category in which you typed the floating IP of your virtual machine. Choose the name of your session and type it in the text field found in the **Load, save or delete a stored session**:
![putty-12.png](../_images/putty-12.png)
Click **Save**. Your saved session should appear on the list:
![putty-13.png](../_images/putty-13.png)
Step 12 Connect to your virtual machine[](#step-12-connect-to-your-virtual-machine "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------
To connect to your virtual machine, click **Open**. If you are connecting to that machine for the first time, you should receive the following alert:
![putty-14.png](../_images/putty-14.png)
Click **Accept**.
You will be asked for your username:
![putty-15.png](../_images/putty-15.png)
Type **eouser** and press Enter.
Note
User **eouser** is the predefined Linux user name on default images on CloudFerro Cloud hosting.
You should now be connected to your virtual machine and be able to execute commands:
![putty-16.png](../_images/putty-16.png)
Using your saved PuTTY session to simplify login[](#using-your-saved-putty-session-to-simplify-login "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------------------------
In order to use your saved session, open **PuTTY**. In the **Load, save or delete a stored session**, click the name of your saved session from the list and click **Load**.
All your settings, including the floating IP of your VM should now be provided:
![putty-13.png](../_images/putty-13.png)
You can now start your session as explained in Step 12 above.
What To Do Next[](#what-to-do-next "Permalink to this headline")
-----------------------------------------------------------------
CloudFerro Cloud cloud can be used for general hosting needs, such as
> * installing LAMP servers,
> * installing and using WordPress servers,
> * email servers,
> * Kubernetes and SLURM clusters and so on.
To create a *cluster* of instances, see the series of articles on Kubernetes:
[How to Create a Kubernetes Cluster Using CloudFerro Cloud OpenStack Magnum](../kubernetes/How-to-Create-a-Kubernetes-Cluster-Using-CloudFerro-Cloud-OpenStack-Magnum.html).
If you find yourself unable to connect to your virtual machine using SSH, you can use the web console for troubleshooting and other purposes. Heres how to do it:
[How to access the VM from OpenStack console on CloudFerro Cloud](How-to-access-the-VM-from-OpenStack-console-on-CloudFerro-Cloud.html)
If you dont want the storage of your instance to be deleted while the VM is removed, you can choose to use a volume during instance creation. Please see the following articles:
[VM created with option Create New Volume No on CloudFerro Cloud](VM-created-with-option-Create-New-Volume-No-on-CloudFerro-Cloud.html)
[VM created with option Create New Volume Yes on CloudFerro Cloud](VM-created-with-option-Create-New-Volume-Yes-on-CloudFerro-Cloud.html).
You cant apply the SSH keys uploaded to the Horizon dashboard directly to a VM after its creation. The following article presents a walkaround to this problem:
[How to add SSH key from Horizon web console on CloudFerro Cloud](../networking/How-to-add-SSH-key-from-Horizon-web-console-on-CloudFerro-Cloud.html).
If you find that the storage of your VM is insufficient for your needs, you can attach the volume to it after its creation. The following articles contain appropriate instructions: [How to attach a volume to VM less than 2TB on Linux on CloudFerro Cloud](../datavolume/How-to-attach-a-volume-to-VM-less-than-2TB-on-Linux-on-CloudFerro-Cloud.html) and [How to attach a volume to VM more than 2TB on Linux on CloudFerro Cloud](../datavolume/How-to-attach-a-volume-to-VM-more-than-2TB-on-Linux-on-CloudFerro-Cloud.html).

View File

@ -0,0 +1,72 @@
How to create a VM using the OpenStack CLI client on CloudFerro Cloud cloud[](#how-to-create-a-vm-using-the-openstack-cli-client-on-brand-name-cloud "Permalink to this headline")
===================================================================================================================================================================================
This article will cover creating a virtual machine on CloudFerro Cloud cloud using the OpenStack CLI client exclusively. It contains basic information to get you started.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * The **openstack** command to create a VM
> * Selecting parameters of the new virtual machine
>
> > * Image
> > * Flavor
> > * Key pair
> > * Network(s)
> > * Security group(s)
>
> * Creating a virtual machine with CLI only
> * Adding a floating IP to the existing VM
> * Using SSH to access the VM
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
No. 2 **OpenStack CLI client configured**
To have the OpenStack CLI client configured and operational, see article: [How to install OpenStackClient for Linux on CloudFerro Cloud](../openstackcli/How-to-install-OpenStackClient-for-Linux-on-CloudFerro-Cloud.html).
If the command
```
openstack flavor list
```
shows a list of flavors, the **openstack** command is operational.
No. 3 **Available image to create a new VM from**
In general, you can create a new virtual machine from these four sources:
> * operating system image
> * instance snapshot
> * volume
> * volume snapshot
In this article, we will use the first option, an operating system image, as a source of a new virtual machine. There are three ways you can obtain an image:
Images that are automatically included on CloudFerro Cloud cloud
: There is a set of images that come predefined with the cloud. Typically, that default list of images will contain Ubuntu, CentOS, and Windows 2019/22 images, with various flavors. Other default images could be available as well, say, for AlmaLinux, OPNSense, OSGeolive, Rocky Linux and so on.
Images shared from other projects
: Under OpenStack, images can be shared between the projects. To have an alien image available in your project, you have to accept it first.
Images uploaded within your account
: Finally, you can upload an image by yourself. Once uploaded, the image will be a first class citizen but it may not be automatically available on other accounts you might have.
See this article
[How to upload your custom image using OpenStack CLI on CloudFerro Cloud](How-to-upload-your-custom-image-using-OpenStack-CLI-on-CloudFerro-Cloud.html)
for an example of uploading a new Debian image to the cloud.
No. 4 **Available SSH key pair**
These two articles should help generate and import the SSH key into the cloud:
* /networking/Generating-a-sshkeypair-in-Linux-on-CloudFerro-Cloud and

View File

@ -0,0 +1,62 @@
How to create instance snapshot using Horizon on CloudFerro Cloud[](#how-to-create-instance-snapshot-using-horizon-on-brand-name "Permalink to this headline")
===============================================================================================================================================================
In this article, you will learn how to create instance snapshot on CloudFerro Cloud cloud, using Horizon dashboard.
Instance snapshots allow you to archive the state of the virtual machine. You can, then, use them for
> * backup,
> * migration between clouds
> * disaster recovery and/or
> * cloning environments for testing or development.
We cover both types of storage for instances, *ephemeral* and *persistent*.
The plan[](#the-plan "Permalink to this headline")
---------------------------------------------------
In reality, you will be using the procedures described in this article with the already existing instances.
However, to get a clear grasp of the process, while following this article you are going to create two new instances, one with *ephemeral* and the other with *persistent* type of storage. Let their names be **instance-which-uses-ephemeral** and **instance-which-uses-volume**. You will create an instance snapshot for each of them.
If you are only interested in one of these types of instances, you can follow its respective section of this text.
It goes without saying that after following a section about one type of virtual machine you can clean up the resources you created to, say, save costs.
Or you can keep them and use them to create an instance out of it using one of articles mentioned in What To Do Next.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Create snapshot of instance which uses ephemeral storage
>
> + Navigate to the list of instances in Horizon
> + Shut down the VM
> + Create a snapshot
> + Show what the snapshot will contain for ephemeral storage
> * Create snapshot of instance which uses persistent storage
>
> + Navigate to the list of instances in Horizon
> + Shut down the VM
> + Create a snapshot
> + What does creating a snapshot of instance with persistent storage do?
> + Exploring instance snapshot and volume snapshots which were created alongside it
> + What happens if there are multiple volumes?
> * Downloading an instance snapshot
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
No. 2 **Ephemeral storage vs. persistent storage**
Please see article [Ephemeral vs Persistent storage option Create New Volume on CloudFerro Cloud](../datavolume/Ephemeral-vs-Persistent-storage-option-Create-New-Volume-on-CloudFerro-Cloud.html) to understand the basic difference between ephemeral and persistent types of storage in OpenStack.
No. 3 **Instance with ephemeral storage**
You need a virtual machine hosted on CloudFerro Cloud cloud.
Using any of the following articles will produce an instance with ephemeral storage:

View File

@ -0,0 +1,37 @@
How to create key pair in OpenStack Dashboard on CloudFerro Cloud[](#how-to-create-key-pair-in-openstack-dashboard-on-brand-name "Permalink to this headline")
===============================================================================================================================================================
Open **Compute -> Key Pairs**
![keypair1.png](../_images/keypair1.png)
Click **Create Key Pair**, insert the name of the key (eg. “ssh-key”) and Key Type.
![keypair2.png](../_images/keypair2.png)
After generating Key Pair your new Private Key download window will appear. Click **Open with Text Editor**
![keypair3.png](../_images/keypair3.png)
![keypair4.png](../_images/keypair4.png)
Save the key as **“id\_rsa”** in the folder of your choice (in linux the keys are usually kept in **~./ssh** folder).
In case of linux you should change the permissions on the private key:
```
$ sudo chmod 600 id_rsa
```
![keypair5.png](../_images/keypair5.png)
Click key name in **Key Pairs** menu and read your **public key**. You can also save the key to a file like the private key. For example named **“id\_rsa.pub”**.
* To connect via SSH to your Virtual Machine using Linux, follow the steps in this FAQ:
[How to connect to your virtual machine via SSH in Linux on CloudFerro Cloud](../networking/How-to-connect-to-your-virtual-machine-via-SSH-in-Linux-on-CloudFerro-Cloud.html)
* To connect via SSH to your Virtual Machine using Windows (Command Prompt), follow the steps in this FAQ:
[How to connect to a virtual machine via SSH from Windows 10 Command Prompt on CloudFerro Cloud](../windows/How-to-connect-to-a-virtual-machine-via-SSH-from-Windows-10-Command-Prompt-on-CloudFerro-Cloud.html)

View File

@ -0,0 +1,64 @@
How to create new Linux VM in OpenStack Dashboard Horizon on CloudFerro Cloud[](#how-to-create-new-linux-vm-in-openstack-dashboard-horizon-on-brand-name "Permalink to this headline")
=======================================================================================================================================================================================
Go to **Project → Compute → Instances**.
![newvm1.png](../_images/newvm1.png)
Click **“Launch Instance”**.
Insert the name of the Instance (eg. “vm01”) and click Next button.
![newvm2.png](../_images/newvm2.png)
Select Instance Boot Source (eg. “Image”), and choose desired image (eg. “Ubuntu 20.04 LTS”) by clicking on arrow.
Note
If you do not need to have the system disk bigger than the size defined in a chosen flavor, we recommend setting “Create New Volume” feature to “No” state.
![newvm3.png](../_images/newvm3.png)
Choose Flavor (eg. eo1.xsmall).
![newvm4.png](../_images/newvm4.png)
Click **“Networks”** and then choose desired networks.
![newvm5.png](../_images/newvm5.png)
Open **“Security Groups”** After that, choose “default” and “allow\_ping\_ssh\_icmp\_rdp” groups.
![newvm6.png](../_images/newvm6.png)
Choose or generate SSH keypair [How to create key pair in OpenStack Dashboard on CloudFerro Cloud](How-to-create-key-pair-in-OpenStack-Dashboard-on-CloudFerro-Cloud.html) for your VM. Next, launch your instance by clicking on blue button.
![newvm7.png](../_images/newvm7.png)
You will see **“Instances”** menu with your newly created VM.
![newvm8.png](../_images/newvm8.png)
Open the drop-down menu and choose **“Console”**.
![newvm9.png](../_images/newvm9.png)
Fig. 2 Click on the black terminal area (to activate access to the console). Type: **eoconsole** and hit Enter.[](#id1 "Permalink to this image")
![newvm10.png](../_images/newvm10.png)
Insert and retype new password.
![newvm11.png](../_images/newvm11.png)
Now you can type commands.
![newvm12.png](../_images/newvm12.png)
After you finish, type “exit”.
![newvm13.png](../_images/newvm13.png)
This will close the session.
If you want to make your VM accessible from the Internet check [How to Add or Remove Floating IPs to your VM on CloudFerro Cloud](../networking/How-to-Add-or-Remove-Floating-IPs-to-your-VM-on-CloudFerro-Cloud.html).

View File

@ -0,0 +1,19 @@
How to fix unresponsive console issue on CloudFerro Cloud[](#how-to-fix-unresponsive-console-issue-on-brand-name "Permalink to this headline")
===============================================================================================================================================
When you create a new virtual machine, the first thing you might want to do is to have a look at the console panel and check whether the instance has booted correctly.
After opening up the console in OpenStack you might encounter this error:
* unresponsive grey screen
* document icon in the down-right corner which informs about the issue on client side
![fixconsole.png](../_images/fixconsole.png)
**In this case:**
Check your firewall rules for port 6082 and assign “incoming” traffic the “allow” rule.
**Connecting through RDP:**
Make sure that you included your floating IP in RDP rules on your computer. If you want to make these changes for more than one machine, then include our external network address: 185.178.84.0/22.

View File

@ -0,0 +1,24 @@
How to generate and manage EC2 credentials on CloudFerro Cloud[](#how-to-generate-and-manage-ec2-credentials-on-brand-name "Permalink to this headline")
=========================================================================================================================================================
EC2 credentials are used for accessing private S3 buckets on CloudFerro Cloud cloud. This article covers how to generate and manage a pair of EC2 credentials so that you will be able to mount those buckets both
> * on your virtual machines and
> * on your local computers.
Warning
A pair of EC2 credentials usually provides access to secret data so share it only with trusted individuals.
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Hosting**
You need a CloudFerro Cloud hosting account with access to Horizon interface: <https://horizon.cloudferro.com>
No. 2 **OpenStack CLI client installed and configured**
You need to have the OpenStack CLI operational.
First, it must be installed. You have several options, such as:

View File

@ -0,0 +1,306 @@
How to generate or use Application Credentials via CLI on CloudFerro Cloud[](#how-to-generate-or-use-application-credentials-via-cli-on-brand-name "Permalink to this headline")
=================================================================================================================================================================================
You can authenticate your applications to *keystone* by creating application credentials for them. It is also possible to delegate a subset of role assignments on a project to an application credential, granting the same or restricted authorization to a project for the app.
With application credentials, apps authenticate with the “application credential ID” and a “secret” string which is not the users password. Thanks to this, the users password is not embedded in the applications configuration, which is especially important for users whose identities are managed by an external system such as LDAP or a single sign-on system.
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Hosting**
You need a CloudFerro Cloud hosting account with Horizon interface <https://horizon.cloudferro.com>.
No. 2 **Authenticate**
Once you have installed this piece of software, you need to authenticate to start using it: [How to activate OpenStack CLI access to CloudFerro Cloud cloud using one- or two-factor authentication](../accountmanagement/How-to-activate-OpenStack-CLI-access-to-CloudFerro-Cloud-cloud-using-one-or-two-factor-authentication.html)
No. 3 **OpenStackClient installed and available**
OpenStack is written in Python, it is recommended to use a dedicated virtual environment for the rest of this article.
Install GitBash on Windows
: [How to install OpenStackClient GitBash for Windows on CloudFerro Cloud](../openstackcli/How-to-install-OpenStackClient-GitBash-or-Cygwin-for-Windows-on-CloudFerro-Cloud.html).
Install and run WSL (Linux under Windows)
: [How to install OpenStackClient on Windows using Windows Subsystem for Linux on CloudFerro Cloud OpenStack Hosting](../openstackcli/How-to-install-OpenStackClient-on-Windows-using-Windows-Subsystem-for-Linux-on-CloudFerro-Cloud-OpenStack-Hosting.html).
Install OpenStackClient on Linux
: [How to install OpenStackClient for Linux on CloudFerro Cloud](../openstackcli/How-to-install-OpenStackClient-for-Linux-on-CloudFerro-Cloud.html).
No. 4 **jq installed and running**
You will need to have [jq](https://jqlang.org/download/) up and running. On Ubuntu, for example, the commands would be:
```
apt update && apt upgrade -y # Get the latest packages list and upgrade installed packages
apt install jq -y # Install jq from the default Ubuntu repository
jq --version # Check the installed jq version
```
Step 1 CLI Commands for Application Credentials[](#step-1-cli-commands-for-application-credentials "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------------------------
Command
```
openstack application credential
```
will list four commands available:
```
application credential create
application credential delete
application credential list
application credential show
```
To see the parameters for these commands, end them with **--help**, like this:
```
openstack application credential create --help
```
Amongst dozens of lines describing all the possible parameters, of particular interest are the commands to create a new credential:
![credential_create_help.png](../_images/credential_create_help.png)
Note
The **--help** option will produce a *vim*-like output, so type **q** on the keyboard to get back to the usual terminal line.
Step 2 The Simplest Way to Create a New Application Credential[](#step-2-the-simplest-way-to-create-a-new-application-credential "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------------------------------------------------------
The simplest way to generate a new application credential is just to define the name the rest of the parameters will be defined automatically for you. The following command uses name **cred2**:
```
openstack application credential create cred2
```
The new application credential will be both formed and shown on the screen:
![create_new_with_name.png](../_images/create_new_with_name.png)
Step 3 Using All Parameters to Create a New Application Credential[](#step-3-using-all-parameters-to-create-a-new-application-credential "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Here is the meaning of related parameters:
**--secret**
Secret value to use for authentication. If omitted, will be generated automatically.
**--role**
Roles to authorize. If not specified, roles for the current user are all copied. Repeat this parameter to specify another role to become part of the credential. The example of roles is:
```
_member_ magnum_user load-balancer_member heat_stack_owner creator k8s_admin
```
Note
Role **\_member\_** is the most basic role and should always be present. Beware however, as in some variations of OpenStack it can be called **member** instead of **\_member\_**.
**--expiration**
Sets an expiration date. If not present, the application credential will not expire. The format is **YYYY-mm-ddTHH:MM:SS**, for instance:
```
--expiration $(date +"%Y-11-%dT%H:%M:%S")
```
That will yield the following date:
```
2022-11-09T13:27:01.000000
```
Parameters **--unrestricted** and **--restricted**
By default, for security reasons, application credentials are forbidden from being used for creating additional application credentials or keystone trusts. If your application needs to be able to perform these actions, use parameter **--unrestricted**.
Here is a complete example, using all of the available parameters to create a new application credential:
```
openstack application credential create foo-dev-member4 --role _member_ --expiration $(date +"%Y-11-%dT%H:%M:%S") --description "Test application credentials" --unrestricted -c id -c secret -f json | jq -r '"application_credential_id: \"" + .id + "\"", "application_credential_secret: \"" + .secret + "\""'
```
The result is:
![complete_example.png](../_images/complete_example.png)
The name of the new application credential will be **foo-dev-member4**, will be used by role **\_member\_** and so on. The part of the command starting with **| jq -r** prints only the values of credentials **id** and **secret** as you have to enter those value into the *clouds.yml* file in order to activate the recognition part of the process.
Step 4 Enter id and secret into clouds.yml[](#step-4-enter-id-and-secret-into-clouds-yml "Permalink to this headline")
-----------------------------------------------------------------------------------------------------------------------
You are now going to store the values of **id** and **secret** that the cloud has sent to you. Once stored, future **openstack** commands will use these value to authenticate to the cloud without using any kind of password.
The place to store *id* and *secret* is a file called *clouds.yml*. It may reside on your local computer in one of these three locations:
Current directory
: **./clouds.yml**
You may want to create a special folder with **mkdir** command and paste *clouds.yml* into it.
The current directory is searched first.
User configuration directory
: **$HOME/.config/openstack/clouds.yml**
The most common default location for individual users.
Searched after the current directory.
System-wide configuration directory
: **/etc/openstack/clouds.yml**
Searches that location as the last resort.
Usually you must be *root* to modify that file.
The first *clouds.yml* file that is found will be used.
Note
The contents of the *clouds.yml* file will be in *yaml* format. It is customary to have the extension of *yaml* content be the exact same word *yaml* but here it is not *yaml* it is **yml** instead.
Let us create a new application credential called *trial-member\_creatornew*.
```
openstack application credential create trial-member_creatornew --unrestricted -c id -c secret -f json | jq -r '"application_credential_id: \"" + .id + "\"", "application_credential_secret: \"" + .secret + "\""'
```
This is the result:
![create_credential.png](../_images/create_credential.png)
Now create the *clouds.yml* file using your preferred editor of choice. Here it is *nano*:
```
nano $HOME/.config/openstack/clouds.yml
```
If not already existing, *nano* will create that file anew. Here are its contents:
**clouds.yml**
```
clouds:
trial-member_creatornew:
auth_type: "v3applicationcredential"
auth:
auth_url: https://keystone.cloudferro.com:5000/v3
application_credential_id: "a582edb593644106baeaa75fd706feb2"
application_credential_secret: "mPKQort71xi7Ros7BHb1sG4753wvN_tmJMBd1aRBBGzgFZM7AoUkLWzCutQuh-dAyac86-rkikYqqYaT1_f0hA"
```
Let us dissect that file line by line:
> * **clouds:** is in plural as it is possible to define parameters of two or more clouds in the same file.
> * **trial-member\_creatornew** is the name of the application credential used in the previous *credential create* command.
> * **v3applicationcredential** is the type of auth connection (it is always the same)
> * **auth** start of *auth* parameters
> * **auth\_url** the address to call on the CloudFerro Cloud OpenStack server (it always the same)
> * **application\_credential\_id** the value from the previous call of *credential create* command
> * **credential create** command the value from the previous call of *credential create* command
This is how it should look in the editor:
![nano_values.png](../_images/nano_values.png)
Save it with **Ctrl**-**X**, then press **Y** and Enter.
Step 5 Gain access to the cloud by specifying OS\_CLOUD or --os-cloud[](#step-5-gain-access-to-the-cloud-by-specifying-os-cloud-or-os-cloud "Permalink to this headline")
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Application credentials give access to all of the activated regions and you have to specify which one to use. Specify it as a value of parameter **--os-region**, for instance, WAW3-2, WAW4-1 (or what else have you).
In previous step you defined a *clouds.yml* file and it used to start with **clouds:**. The next line defined to which cloud will the parameters refer to, here it was *trial-member\_creatornew*. By design, the *clouds.yml* file can contain information on several clouds not only one so it is necessary to distinguish to which cloud are you going to refer. There is a special parameter for that, called
> * **OS\_CLOUD** if used as systems parameter or
> * **--os-cloud** if used from the command line.
You define **OS\_CLOUD** by directly assigning its value from the command line:
```
export OS_CLOUD=trial-member_creatornew
echo $OS_CLOUD
```
Open a new terminal window, execute the command above and then try to access the server:
![export_os_cloud.png](../_images/export_os_cloud.png)
It works.
You can also use that parameter in the command line, like this:
```
openstack --os-cloud=trial-member_creatornew flavor list
```
It works as well:
![cli_os_cloud.png](../_images/cli_os_cloud.png)
You have to set up **OS\_CLOUD** once per opening a new terminal window and then you can use **openstack** command without interpolating **--os-cloud** parameter all the time.
If you had two or more clouds defined in the *clouds.yml* file, then using **--os-cloud** in the command line would be more flexible.
In both cases, you can access the cloud without specifying the password, which was the goal in the first place.
Environment variable-based storage[](#environment-variable-based-storage "Permalink to this headline")
-------------------------------------------------------------------------------------------------------
You can export them as environment variables. This increases security, especially in virtual machines. Also, automation tools can use them dynamically.
To set them for the current session:
```
export OS_CLOUD=mycloud
export OS_CLIENT_ID=<your-id>
export OS_CLIENT_SECRET=<your-secret>
```
To make them persistent, add these lines to your **~/.bashrc** or **~/.zshrc** file:
```
echo 'export OS_CLOUD=mycloud' >> ~/.bashrc
echo 'export OS_CLIENT_ID=<your-id>' >> ~/.bashrc
echo 'export OS_CLIENT_SECRET=<your-secret>' >> ~/.bashrc
source ~/.bashrc
```
This method is useful for scripted deployments, temporary sessions, and when you dont want credentials stored in files.
What To Do Next[](#what-to-do-next "Permalink to this headline")
-----------------------------------------------------------------
Here are some articles that use application credentials:
[How to install Rancher RKE2 Kubernetes on CloudFerro Cloud](../kubernetes/How-to-install-Rancher-RKE2-Kubernetes-on-CloudFerro-Cloud-cloud.html)
[Configuring IP Whitelisting for OpenStack Load Balancer using Terraform on CloudFerro Cloud](../kubernetes/Configuring-IP-Whitelisting-for-OpenStack-Load-Balancer-using-Terraform-on-CloudFerro-Cloud.html)
[OpenStack User Roles on CloudFerro Cloud](OpenStack-user-roles-on-CloudFerro-Cloud.html)

View File

@ -0,0 +1,166 @@
How to install Python virtualenv or virtualenvwrapper on CloudFerro Cloud[](#how-to-install-python-virtualenv-or-virtualenvwrapper-on-brand-name "Permalink to this headline")
===============================================================================================================================================================================
Virtualenv is a tool with which you are able to create isolated Python environments. It is mainly used to get rid of problems with dependencies and versions.
It also does not include permission setup. Generally virtualenvwrapper is a kind of extension for virtualenv. It owns wrappers which are in charge of creating and deleting environments. It is useful supplement for our current subject.
For purposes of this guide we will use virtual machine **vm01** with operating system **Ubuntu 22.04 LTS**.
Log in to your virtual machine and check python version (it should be preinstalled). Next step would be the installation of pip:
```
eouser@vm01:~$ python3 --version
Python 3.10.12
eouser@vm01:~$ sudo apt install python3-pip
```
Confirm the pip3 installation by invoking:
```
eouser@vm01:~$ pip3 -V
```
If pip3 is installed, the **pip3 -V** command should give the output similar to this:
```
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
```
Install virtualenvwrapper via pip:
```
eouser@vm01:~$ pip3 install virtualenvwrapper
```
Create a new directory to store your virtual environments, for example:
```
mkdir .virtualenvs
```
Now we are going to modify **.bashrc** file by adding a row that will adjust every new virtual environment to use Python 3.
We will point virtual environments to the directory we created above (.virtualenvs) and we will also point to the locations of the virtualenv and virtualenvwrapper.
Open .bashrc file using editor, for example:
```
vim ~/.bashrc
```
Navigate to the bottom of the .bashrc file and add following rows:
```
#virtualenvwrapper settings:
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/home/eouser/.local/bin/virtualenv
source ./.local/bin/virtualenvwrapper.sh
```
After that save the .bashrc file.
Now we have to reload the bashrc script, to do it execute the command:
```
source ~/.bashrc
```
If everything is set up properly, you should see following lines:
```
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/get_env_details
```
Now create your first virtual environment **test** with mkvirtualenv command:
```
mkvirtualenv test
```
The output should look like this:
```
created virtual environment CPython3.10.12.final.0-64 in 207ms
creator CPython3Posix(dest=/home/eouser/.virtualenvs/test, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/eouser/.local/share/virtualenv)
added seed packages: pip==23.2.1, setuptools==68.2.0, wheel==0.41.2
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/test/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/test/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/test/bin/preactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/test/bin/postactivate
virtualenvwrapper.user_scripts creating /home/eouser/.virtualenvs/test/bin/get_env_details
```
Now you should see name of your environment in the parenthesis before username, which means that youre working on your virtual environment.
```
(test) eouser@vm01:~$
```
If you would like to exit current environment, just type the deactivate command:
```
(test) eouser@vm01:~$ deactivate
eouser@vm01:~$
```
To start working on virtual environment type workon command:
```
eouser@vm01:~$ workon test
(test) eouser@vm01:~$
```
To remove virtual environment invoke rmvirtualenv:
```
eouser@vm01:~$ rmvirtualenv test
Removing test...
```
To list all virtual environments use workon or lsvirtualenv:
```
eouser@vm01:~$ workon
test-1
test-2
test-3
eouser@vm01:~$ lsvirtualenv
test-1
======
test-2
======
test-3
======
```

View File

@ -0,0 +1,73 @@
How to start a VM from a snapshot on CloudFerro Cloud[](#how-to-start-a-vm-from-a-snapshot-on-brand-name "Permalink to this headline")
=======================================================================================================================================
a) Volume Snapshot[](#a-volume-snapshot "Permalink to this headline")
----------------------------------------------------------------------
1. Choose the desired virtual machine (booted from Volume) and click on the “Create snapshot” button.
![snap00.png](../_images/snap00.png)
2. Name the snapshot. The decision is up to you to improve the personal navigation throughout image or volume snapshot repository. Confirm with the blue button.
![snap01.png](../_images/snap01.png)
3. Go to Volumes tab and press Snapshots.
![snap3.png](../_images/snap3.png)
4. Your volume snapshot is being stored in this place. To start a virtual machine from this type of snapshot, press on the arrow beside “Create Volume”.
![snap4.png](../_images/snap4.png)
5. Choose “Launch as Instance”.
![snap5.png](../_images/snap5.png)
6. Define Instance name and change bookmark to “Source”.
![snap6.png](../_images/snap6.png)
7. Set Boot Source on “Volume Snapshot” and assign previously created snapshot by clicking on the arrow.
![snap7.png](../_images/snap7.png)
8. The rest of procedure is the same: [How to create new Linux VM in OpenStack Dashboard Horizon on CloudFerro Cloud](How-to-create-new-Linux-VM-in-OpenStack-Dashboard-Horizon-on-CloudFerro-Cloud.html).
9. Newly created machine is visible in the Instances list.
![snap8.png](../_images/snap8.png)
b) Image Snapshot[](#b-image-snapshot "Permalink to this headline")
--------------------------------------------------------------------
1.Choose the desired virtual machine (booted from Glance image) and click on the “Create snapshot” button.
![snap1.png](../_images/snap1.png)
2. Name the snapshot. The decision is up to you to improve the personal navigation throughout image or volume snapshot repository. Confirm with the blue button.
![snap2.png](../_images/snap2.png)
3. Go to Compute tab and press Images.
![snap3.png](../_images/snap3.png)
4. Scroll down and find your snapshot. Click on the “Launch”.
![snap4.png](../_images/snap4.png)
Attention
Image snapshot is in RAW format and its size is equivalent to the image that VM was booted from.
In the “Images” you may also find symbolic links to the volume snapshots.(i.e. snapshot-virtual-machine-01 from a) scenario). This type of snapshot is in format QCOW2 and its size is set on 0 bytes.
5. Name your virtual machine and go to “Source.” Set Boot Source on “Instance snapshot” and choose previously created Snapshot in RAW format.
![snap5.png](../_images/snap5.png)
6. The rest of procedure is the same: [How to create new Linux VM in OpenStack Dashboard Horizon on CloudFerro Cloud](How-to-create-new-Linux-VM-in-OpenStack-Dashboard-Horizon-on-CloudFerro-Cloud.html).
7. Virtual machine has been created.
![snap6.png](../_images/snap6.png)

View File

@ -0,0 +1,23 @@
How to start a VM from instance snapshot using Horizon dashboard on CloudFerro Cloud[](#how-to-start-a-vm-from-instance-snapshot-using-horizon-dashboard-on-brand-name "Permalink to this headline")
=====================================================================================================================================================================================================
In this article, you will learn how to create a virtual machine from an instance snapshot using Horizon dashboard.
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
No. 2 **Ephemeral storage vs. persistent storage**
Please see article [Ephemeral vs Persistent storage option Create New Volume on CloudFerro Cloud](../datavolume/Ephemeral-vs-Persistent-storage-option-Create-New-Volume-on-CloudFerro-Cloud.html) to understand the basic difference between ephemeral and persistent types of storage in OpenStack.
No. 3 **Instance snapshot**
You need to have an instance snapshot from which you are going to create your virtual machine. In this article, we will use an exemplary snapshot named **my-instance-snapshot** - here is how it can look like in section **Images -> Images** of the Horizon dashboard:
![start_vm_instance_snapshot_horizon-09_creodias.png](../_images/start_vm_instance_snapshot_horizon-09_creodias.png)
The following articles contain information how to create such a snapshot:

View File

@ -0,0 +1,146 @@
How to transfer volumes between domains and projects using Horizon dashboard on CloudFerro Cloud[](#how-to-transfer-volumes-between-domains-and-projects-using-horizon-dashboard-on-brand-name "Permalink to this headline")
=============================================================================================================================================================================================================================
Volumes in OpenStack can be used to store data. They are visible to virtual machines like drives.
Such a volume is usually available to just the project in which it was created. Transferring data stored on it between projects might take a long time, especially if such a volume contains lots of data, like, say, hundreds or thousands of gigabytes (or even more).
This article covers changing the assignment of a volume to a project. This allows you to move a volume directly from one project (which we will call *source* project) to another (which we will call *destination* project) using the Horizon dashboard in a way that does **not** require you to physically transfer the data.
The *source* project and *destination* project must both be on the same cloud (for example WAW3-2). They can (but dont have to) belong to different users from different domains and organizations.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Initializing transfer of volume
> * Accepting transfer of volume
> * Cancelling transfer of volume
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>
No. 2 **Volume**
You need to have a volume which you want to migrate.
Such a volume must **not** be connected to a virtual machine. It must have the following **Status**: **Available**.
You can check the status of your volume in the **Volumes -> Volumes** section of the Horizon dashboard. On screenshot below, that **Status** is marked with a green rectangle.
![transfer-volume-between-projects-horizon-32_creodias.png](../_images/transfer-volume-between-projects-horizon-32_creodias.png)
The following article includes information how to disconnect a volume from a virtual machine: [How to move data volume between two VMs using OpenStack Horizon on CloudFerro Cloud](../datavolume/How-to-move-data-volume-between-two-VMs-using-OpenStack-Horizon-on-CloudFerro-Cloud.html)
No. 4 **Ability to perform operations on both the source project and the destination project**
For the transfer to be successful, you need to first initiate it from the *source* project and then accept it from the *source* project.
If *source* and/or *destination* is not managed by you, you might need to get appropriate permission to perform such an operation.
To access each of these projects directly (if possible), depending on the circumstances you can either login to appropriate account or use the project switcher found in the top of the Horizon dashboard:
![transfer-volume-between-projects-horizon-37_creodias.png](../_images/transfer-volume-between-projects-horizon-37_creodias.png)
If you dont have direct access to any of these projects, you probably can request their members to execute commands mentioned in this article.
Step 1: Initializing transfer of volume[](#step-1-initializing-transfer-of-volume "Permalink to this headline")
----------------------------------------------------------------------------------------------------------------
Perform this step in the *source* project.
Navigate to the section **Volumes -> Volumes** of the Horizon dashboard. Confirm if the volume which you want to migrate has the following **Status**: **Available**. In example below, this requirement is met - see value marked with a blue rectangle.
![transfer-volume-between-projects-horizon-33_creodias.png](../_images/transfer-volume-between-projects-horizon-33_creodias.png)
If your volume has a different status, do **not** continue this workflow and check Prerequisite No. 2.
In the row which represents the volume you want to migrate, from drop-down menu found in **Actions** column choose **Create Transfer**:
![transfer-volume-between-projects-horizon-15_creodias.png](../_images/transfer-volume-between-projects-horizon-15_creodias.png)
You should see the following window:
![transfer-volume-between-projects-horizon-16_creodias.png](../_images/transfer-volume-between-projects-horizon-16_creodias.png)
Enter a descriptive name to text field **Transfer Name** and click **Create Volume Transfer**.
You should now see the following window:
![transfer-volume-between-projects-horizon-17_creodias.png](../_images/transfer-volume-between-projects-horizon-17_creodias.png)
Write somewhere down **Transfer ID** and **Authorization Key**. You can also use button **Download transfer credentials** to get these credentials as a plain text file.
Warning
Since these credentials allow somebody to capture the volume while the transfer is active, protect them and share them only with individuals for whom they are meant!
Once you have done it, you can click **Close** to close the window.
Your volume should now have the following **Status**: **Awaiting Transfer**.
![transfer-volume-between-projects-horizon-18_creodias.png](../_images/transfer-volume-between-projects-horizon-18_creodias.png)
Note that after initializing the transfer, the volume cannot be connected to any virtual machine until the transfer is accepted or cancelled. To learn how to cancel the transfer (if you, say, accidentally chose the wrong volume), see section **Cancelling transfer of volume** near the end of the article.
Step 2: Accepting transfer of volume[](#step-2-accepting-transfer-of-volume "Permalink to this headline")
----------------------------------------------------------------------------------------------------------
Perform this step in the *source* project.
Navigate to section **Volumes -> Volumes** of the Horizon dashboard. Click **Accept Transfer**:
![transfer-volume-between-projects-horizon-19_creodias.png](../_images/transfer-volume-between-projects-horizon-19_creodias.png)
You should see the following window:
![transfer-volume-between-projects-horizon-20_creodias.png](../_images/transfer-volume-between-projects-horizon-20_creodias.png)
Enter the **Transfer ID** and the **Authorization Key** you obtained while following Step 1 above to appropriate text fields.
Click **Accept Volume Transfer**.
The volume should now be visible on the list:
![transfer-volume-between-projects-horizon-21_creodias.png](../_images/transfer-volume-between-projects-horizon-21_creodias.png)
Cancelling transfer of volume[](#cancelling-transfer-of-volume "Permalink to this headline")
---------------------------------------------------------------------------------------------
If you, say, accidentally initiated transfer for a wrong volume and nobody accepts that transfer, it can be cancelled.
To do that, navigate to section **Volumes -> Volumes** of the Horizon dashboard:
![transfer-volume-between-projects-horizon-21_creodias.png](../_images/transfer-volume-between-projects-horizon-21_creodias.png)
In this example, lets assume that we mistakenly created a transfer for volume **my-volume**. Because of that, it has the following status: **Awaiting Transfer**. Such a volume cannot be connected to an instance.
To cancel transfer, simply click **Cancel Transfer** in the row representing your volume, column **Actions**:
![transfer-volume-between-projects-horizon-35_creodias.png](../_images/transfer-volume-between-projects-horizon-35_creodias.png)
You will be asked for confirmation:
![transfer-volume-between-projects-horizon-36_creodias.png](../_images/transfer-volume-between-projects-horizon-36_creodias.png)
Click **Cancel Transfer**.
If the operation was successful, you should get the following message in the top right corner of the Horizon dashboard:
![transfer-volume-between-projects-horizon-38_creodias.png](../_images/transfer-volume-between-projects-horizon-38_creodias.png)
Note that this message might be confusing if you read only its first line. It does not tell about the removal of the volume, but about cancelling of volume transfer.
After cancelling, your volume should now once again have status **Available**:
![transfer-volume-between-projects-horizon-11_creodias.png](../_images/transfer-volume-between-projects-horizon-11_creodias.png)
What To Do Next[](#what-to-do-next "Permalink to this headline")
-----------------------------------------------------------------
Now that the volume has been transferred, you might want to connect it to a virtual machine. This article includes information how to do that: [How to move data volume between two VMs using OpenStack Horizon on CloudFerro Cloud](../datavolume/How-to-move-data-volume-between-two-VMs-using-OpenStack-Horizon-on-CloudFerro-Cloud.html)
The workflow described in this article can also be done using the OpenStack CLI. Learn more here: [How to transfer volumes between domains and projects using OpenStack CLI client on CloudFerro Cloud](../openstackcli/How-to-transfer-volumes-between-domains-and-projects-using-OpenStack-CLI-client-on-CloudFerro-Cloud.html)

View File

@ -0,0 +1,42 @@
How to upload custom image to CloudFerro Cloud cloud using OpenStack Horizon dashboard[](#how-to-upload-custom-image-to-brand-name-cloud-using-openstack-horizon-dashboard "Permalink to this headline")
=========================================================================================================================================================================================================
In this tutorial, you will upload custom image stored on your local computer to CloudFerro Cloud cloud, using the Horizon Dashboard. The uploaded image will be available within your project alongside default images from CloudFerro Cloud cloud and you will be able to create virtual machines using it.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * How to check for the presence of image in CloudFerro Cloud cloud
> * How different images might behave
> * How to upload an image using Horizon dashboard
> * Example: how to upload image for Debian 11
> * What happens if you lose Internet connection during upload
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
No. 2 **Custom image you wish to upload**
You need to have the image you wish to upload. It can be one of the following image formats:
> | | | | | |
> | --- | --- | --- | --- | --- |
> | aki | ami | ari | iso | qcow2 |
> | raw | vdi | vhd | vhdx | vmdk |
The following container formats are supported:
> | | | | |
> | --- | --- | --- | --- |
> | aki | ami | ari | bare |
> | docker | ova | ovf | |
For the explanation of these formats, see article [What Image Formats are Available in OpenStack CloudFerro Cloud cloud](What-Image-Formats-are-available-in-OpenStack-CloudFerro-Cloud-Cloud.html).
No. 3 **Uploaded public SSH key**
If the image you wish to upload requires you to attach an SSH public key while creating the virtual machine, the key will need to be uploaded to CloudFerro Cloud cloud. One of these articles should help:

View File

@ -0,0 +1,46 @@
How to upload your custom image using OpenStack CLI on CloudFerro Cloud[](#how-to-upload-your-custom-image-using-openstack-cli-on-brand-name "Permalink to this headline")
===========================================================================================================================================================================
In this tutorial, you will upload custom image stored on your local computer to CloudFerro Cloud cloud, using the OpenStack CLI client. The uploaded image will be available within your project alongside default images from CloudFerro Cloud cloud and you will be able to create virtual machines using it.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * How to check for the presence of the image in your OpenStack cloud
> * How different images might behave
> * How to upload the image using only CLI commands
> * Example: how to upload image for Debian 11
> * What happens if you lose Internet connection during upload
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
No. 2 **OpenStack CLI configured**
You need to have the OpenStack CLI client configured and operational. See [How to install OpenStackClient for Linux on CloudFerro Cloud](../openstackcli/How-to-install-OpenStackClient-for-Linux-on-CloudFerro-Cloud.html). You can test whether your OpenStack CLI is properly activated by executing the **openstack server list** command mentioned in the end of that article - it should return the list of your virtual machines.
No. 3 **Custom image you wish to upload**
You need to have the image you wish to upload. It can be one of the following image formats:
> | | | | | |
> | --- | --- | --- | --- | --- |
> | aki | ami | ari | iso | qcow2 |
> | raw | vdi | vhd | vhdx | vmdk |
The following container formats are supported:
> | | | | |
> | --- | --- | --- | --- |
> | aki | ami | ari | bare |
> | docker | ova | ovf | |
For the explanation of these formats, see article [What Image Formats are Available in OpenStack CloudFerro Cloud cloud](What-Image-Formats-are-available-in-OpenStack-CloudFerro-Cloud-Cloud.html).
No. 4 **Uploaded public SSH key**
If the image you wish to upload requires you to attach an SSH public key while creating the virtual machine, the key will need to be uploaded to CloudFerro Cloud cloud. One of these articles should help:

View File

@ -0,0 +1,10 @@
How to install and use Docker on Ubuntu 24.04[](#how-to-install-and-use-docker-on-ubuntu-24-04 "Permalink to this headline")
=============================================================================================================================
This guide will walk you through
* the installation of [Docker](https://www.docker.com/) on Ubuntu 24.04, and
* basic commands to get you started with Docker containers.
What we are going to cover
--------------------------

View File

@ -0,0 +1,208 @@
How to Use GUI in Linux VM on CloudFerro Cloud and access it From Local Linux Computer[](#how-to-use-gui-in-linux-vm-on-brand-name-and-access-it-from-local-linux-computer "Permalink to this headline")
=========================================================================================================================================================================================================
In this article you will learn how to use GUI (graphical user interface) on a Linux virtual machine running on CloudFerro Cloud cloud.
For this purpose, you will install and use **X2Go** on your local Linux computer.
This article covers the installation of two desktop environments: MATE and XFCE. Choose the one that suits you best.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Installing X2Go client
> * Installing X2Go server and desktop environment (MATE or XFCE)
> * Connecting to your virtual machine using X2Go client
> * Basic troubleshooting
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>.
No. 2 **Linux installed on your local computer**
You need to have a local computer with Linux installed. This article was written for such computers running Ubuntu Desktop 22.04. If you are running a different Linux distribution, adjust the instructions from this article accordingly.
No. 3 **Linux virtual machine**
You need a Linux virtual machine running on CloudFerro Cloud cloud. You need to able to access it via SSH. The following article explains how to create one such virtual machine:
[How to create a Linux VM and access it from Linux command line on CloudFerro Cloud](How-to-create-a-Linux-VM-and-access-it-from-Linux-command-line-on-CloudFerro-Cloud.html)
This article was written for virtual machines using a default Ubuntu 20.04 image on cloud. Adjust the instructions from this article accordingly if your virtual machine has a different Linux distribution.
Step 1: Install X2Go client[](#step-1-install-x2go-client "Permalink to this headline")
----------------------------------------------------------------------------------------
Open the terminal on your local Linux computer and update your packages by executing the following command:
```
sudo apt update && sudo apt upgrade
```
Now, install the **x2goclient** package:
```
sudo apt install x2goclient
```
Step 2: Install the desktop environment on your VM[](#step-2-install-the-desktop-environment-on-your-vm "Permalink to this headline")
--------------------------------------------------------------------------------------------------------------------------------------
### Method 1: Installing MATE[](#method-1-installing-mate "Permalink to this headline")
Connect to your VM using SSH. Update your packages there:
```
sudo apt update && sudo apt upgrade
```
Now, install the **MATE** desktop environment and X2Go server:
```
sudo apt install x2goserver ubuntu-mate-desktop mate-applet-brisk-menu
```
You can add other packages to that command as needed.
During the installation you will be asked to choose the keyboard layout. Choose the one that suits you best using the arrow keys and Enter.
Once the installation is completed, reboot your VM by executing the following command:
```
sudo reboot
```
### Method 2: Installing XFCE[](#method-2-installing-xfce "Permalink to this headline")
Connect to your VM using SSH. Update your packages there:
```
sudo apt update && sudo apt upgrade
```
Now, install the **XFCE** desktop environment, the terminal emulator and X2Go server:
```
sudo apt install x2goserver xfce4 xfce4-terminal
```
You can add other packages to that command as needed.
During the installation you will be asked to choose the keyboard layout. Choose the one that suits you best using the arrow keys and Enter.
Once the installation is completed, reboot your VM by executing the following command:
```
sudo reboot
```
Step 3: Connect to your VM using X2Go[](#step-3-connect-to-your-vm-using-x2go "Permalink to this headline")
------------------------------------------------------------------------------------------------------------
Open X2Go on your local Linux computer. If you havent configured any session yet, you should get the window used for creating one:
![linux-gui-03_creodias.png](../_images/linux-gui-03_creodias.png)
If you didnt get such window, click the **New session** button on the X2Go toolbar.
Enter the name of your choice for your session in the **Session name:** text box. In this example, the name **cloud-session** will be used.
In the text box **Host:** enter the floating IP of your VM.
In the **Login:** button enter **eouser**.
Click the folder icon next to the **Use RSA/DSA key for sh connection:** text field. A file selector should appear. Choose the SSH private file you use for connecting to your VM via SSH.
From the drop-down menu in the **Session type** section choose the desktop environment you installed, for example **MATE** or **XFCE**.
In the **Input/Output** tab choose the screen resolution that suits you best in the **Display** section. Here you can also choose whether you wish to share clipboard with the remote VM in the **Clipboard mode** section.
Click **OK**. The window should close.
The session you created should now be visible in the X2Go client:
![linux-gui-04_creodias.png](../_images/linux-gui-04_creodias.png)
Click the name of your session to connect to your VM. Wait up to a minute until your connection is established. You should now see your desktop environment.
If you chose MATE, it should look like this:
![linux-gui-05_creodias.png](../_images/linux-gui-05_creodias.png)
If you, however, chose XFCE, it should look like this:
![linux-gui-06_creodias.png](../_images/linux-gui-06_creodias.png)
Troubleshooting - Using the terminal emulator on XFCE[](#troubleshooting-using-the-terminal-emulator-on-xfce "Permalink to this headline")
-------------------------------------------------------------------------------------------------------------------------------------------
If the button **Terminal Emulator** on your taskbar does not launch your terminal, click the **Applications** menu in the upper left corner of the screen:
![linux-gui-07_creodias.png](../_images/linux-gui-07_creodias.png)
Choose **Settings** -> **Preferred Applications**:
![linux-gui-08_creodias.png](../_images/linux-gui-08_creodias.png)
You should get the following window:
![linux-gui-09_creodias.png](../_images/linux-gui-09_creodias.png)
Open the tab **Utilities**. The window should now look like this:
![linux-gui-11_creodias.png](../_images/linux-gui-11_creodias.png)
From the drop-down menu in the **Terminal Emulator** section choose **Xfce Terminal**.
Click **Close**.
The button should now launch the terminal emulator correctly.
Troubleshooting - Keyboard layout[](#troubleshooting-keyboard-layout "Permalink to this headline")
---------------------------------------------------------------------------------------------------
If you discover that the system does not use the keyboard layout you chose during the installation of the desktop environment, you will need to set it manually. The process differs depending on the desktop environment you chose.
### MATE[](#mate "Permalink to this headline")
Click the **Menu** in the upper left corner of the screen:
![linux-gui-12_creodias.png](../_images/linux-gui-12_creodias.png)
From the **Preferences** section choose **Keyboard**:
![linux-gui-13_creodias.png](../_images/linux-gui-13_creodias.png)
You should get the following window:
![linux-gui-14_creodias.png](../_images/linux-gui-14_creodias.png)
Navigate to the **Layouts** tab:
![linux-gui-15_creodias.png](../_images/linux-gui-15_creodias.png)
Here, you can add or remove keyboard layouts depending on your needs.
### XFCE[](#xfce "Permalink to this headline")
From the **Applications** menu in the upper left corner of the screen choose **Settings** -> **Keyboard**. You should get the following window:
![linux-gui-16_creodias.png](../_images/linux-gui-16_creodias.png)
Go to the **Layout** tab:
![linux-gui-17_creodias.png](../_images/linux-gui-17_creodias.png)
Unselect the **Use system defaults** check box. You can now add or remove the keyboard layouts depending on your needs.

View File

@ -0,0 +1,120 @@
How to use Security Groups in Horizon on CloudFerro Cloud[](#how-to-use-security-groups-in-horizon-on-brand-name "Permalink to this headline")
===============================================================================================================================================
Security groups in **OpenStack** are used to filter the Internet traffic coming **to** and **from** your virtual machines. They consist of security rules and can be attached to your virtual machines during and after the creation of the machines.
By default, each instance has a rule which blocks all incoming Internet traffic and allows all outgoing traffic. To modify those settings, you can apply other security groups to it.
Viewing the security groups[](#viewing-the-security-groups "Permalink to this headline")
-----------------------------------------------------------------------------------------
To check your current security groups, please follow these steps:
Log in to your CloudFerro Cloud account: <https://horizon.cloudferro.com>.
In the panel on the left choose **Network** and then **Security Groups**.
You will see the list of your security groups there. The following groups should always be present:
> * **default** which blocks all incoming traffic and allows all outgoing traffic.
> * **allow\_ping\_ssh\_rdp** which allows incoming ping, SSH (port 22) and RDP (port 3389) connections. This group is not attached to your VMs by default.
![use-security-groups-1_creodias.png](../_images/use-security-groups-1_creodias.png)
Creating a new security group[](#creating-a-new-security-group "Permalink to this headline")
---------------------------------------------------------------------------------------------
In order to create a new security group, please follow these steps:
Click the **Create Security Group** button.
The following window should appear:
![use-security-groups-2_creodias.png](../_images/use-security-groups-2_creodias.png)
Give your security group a recognizable name in the **Name** text field. Optionally, you can also provide a description of it in the **Description** text field.
Confirm your choices by clicking the **Create Security Group** button.
You should now be taken to the screen which allows you to modify the security rules of that security group - in our case the group is called **my-group**:
![use-security-groups-3_creodias.png](../_images/use-security-groups-3_creodias.png)
Note
If you want to access that screen later, you can click the **Manage Rules** button next to your security group in the **Security Groups** screen.
By default, your new security group should contain two rules seen on the screenshot above - the first one allows all outgoing traffic on IPv4 and the second one allows all outgoing traffic on IPv6.
Adding security rules to a security group[](#adding-security-rules-to-a-security-group "Permalink to this headline")
---------------------------------------------------------------------------------------------------------------------
In the **Manage Security Rules** screen that you entered in the previous step, click the **Add Rule** button.
The following form will appear. In it you can define the security rule:
![use-security-groups-4_creodias.png](../_images/use-security-groups-4_creodias.png)
The drop-down list **Rule** allows you to choose the type of rule. These types, along with the available options for them, are explained below. Once you have finished, click **Add** to finish creating your rule.
**Custom TCP Rule**
This type of rule allows you to create a custom rule for the TCP protocol. This protocol is commonly used, amongst other things, for interacting with websites.
You can optionally provide the description of that rule in the **Description** text field.
The drop-down list **Direction** allows you to choose whether this rule should apply to incoming (**Ingress**) or outgoing (**Egress**) traffic.
The drop-down list **Port** has the following options:
> * If you choose **Port**, you will get the text field **Port** in which you can input one port for which this rule will apply.
> * If you choose **Port Range**, you will be able to enter the first port in range in the text field **From Port** and the last port in the text field **To Port**.
> * If you choose **All ports**, this rule will apply to all ports.
The drop-down list **Remote** has the following options:
> * If you choose **CIDR**, you will get the text field **CIDR** which allows you to input the IP address block for which this rule will apply using the CIDR notation, for example: **64.225.135.119/32**. This example means that only the **64.225.135.119** IP address is included in this rule. If this notation was as follows: **64.225.135.119/8**, then this rule would apply to all IP addresses that have the first digit **64**.
> * If you choose **Security Group**, you will get the drop-down list **Security Group** - the machines which are in that security group will be able to access your virtual machine. You will also get the drop-down list **Ether Type** from which you can choose IPv4 or IPv6. You should almost always use IPv4 for your network operations (apart from a few rare instances in which you know that IPv6 is needed).
**Custom UDP Rule**
This type of rule has the same options as **Custom TCP Rule**, but involves the UDP protocol. It is a protocol similar to TCP, but the main difference is that it does not provide session control.
**Custom ICMP rule**
This type of rule is used for ICMP. This protocol is used, among others, for **traceroute** and **ping**. It has the same options as the **Custom TCP Rule**, but instead of ports, it uses the ICMP types (which you should put in the **Type** text field) and ICMP codes (which should be put in the **Code** text field).
**Other Protocol**
This option is for protocols like for example SIP (protocol used for Internet telephony).
**All ICMP**, **All TCP**, **All UDP**
These options apply to all ports of ICMP, TCP and UPD, respectively.
**Other options**
The drop-down list **Rule** also contains templates for commonly used services like DNS (Domain Name Services), HTTP (Hypertext Transfer Protocol) or SMTP (Simple Mail Transfer Protocol). If you choose one of them, you only have to provide the information about the **Remote** - **CIDR** or **Security Group**. The explanation for those options is in the **Custom TCP Rule** section.
Adding a Security Group to your VM[](#adding-a-security-group-to-your-vm "Permalink to this headline")
-------------------------------------------------------------------------------------------------------
You can apply your security group to your VM either during or after creating it.
### During its creation[](#during-its-creation "Permalink to this headline")
During the process of creating your virtual machine you can add security groups to it. This happens during the **Security Groups** step:
![use-security-groups-5_creodias.png](../_images/use-security-groups-5_creodias.png)
You can add security groups to your VM by using the **↑** button an remove them using the **↓** button - the same as in the **Source** or **Network** steps. In this case, we have added the **my-group** group to the VM:
![use-security-groups-6_creodias.png](../_images/use-security-groups-6_creodias.png)
### After its creation[](#after-its-creation "Permalink to this headline")
Go to **Compute** > **Instances**. Click the drop-down menu in the row containing information about the to which you wish to apply your rule (column **Actions**). Select **Edit Security Groups**. You should see the window similar to this:
![use-security-groups-7_creodias.png](../_images/use-security-groups-7_creodias.png)
In the left section you can see available security groups and in the right section you can see security groups already attached to your VM. To apply a security group to your VM, click the **+** button next to that group and to remove it, click the **-** button next to it.

View File

@ -0,0 +1,235 @@
OpenStack User Roles on CloudFerro Cloud[](#openstack-user-roles-on-brand-name "Permalink to this headline")
=============================================================================================================
A **user role** in OpenStack cloud is a set of permissions that govern how members of specific groups interact with system resources, their access scope, and capabilities.
This guide simplifies OpenStack roles for casual users of CloudFerro Cloud VMs. It focuses on practical use cases and commonly required roles.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * Frequently used user roles
>
> > * Common user roles
> > * Roles for Kubernetes users
> > * Roles for Load Balancer users
>
> * Examples of using user roles
>
> > * Using user roles while creating application credential in Horizon
> > * Using user roles while creating application credential via the CLI
> > * Using user roles while creating a new project
> > * Using member role only while creating a new user
>
> * Dictionary of other roles
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
**1. Account**
You need a CloudFerro Cloud hosting account with Horizon access: <https://horizon.cloudferro.com>.
Also see:
[What is an OpenStack project on CloudFerro Cloud](What-is-an-OpenStack-project-on-CloudFerro-Cloud.html)
[What is an OpenStack domain on CloudFerro Cloud](What-is-an-OpenStack-domain-on-CloudFerro-Cloud.html)
[How to generate or use Application Credentials via CLI on CloudFerro Cloud](How-to-generate-or-use-Application-Credentials-via-CLI-on-CloudFerro-Cloud.html)
**2. Familiarity with OpenStack Commands**
Ensure you know the following OpenStack commands:
**openstack**
: The primary CLI for interacting with OpenStack services.
[How to install OpenStackClient for Linux on CloudFerro Cloud](../openstackcli/How-to-install-OpenStackClient-for-Linux-on-CloudFerro-Cloud.html)
**kubectl**
: CLI for Kubernetes clusters. Example article:
[How To Access Kubernetes Cluster Post Deployment Using Kubectl On CloudFerro Cloud OpenStack Magnum](../kubernetes/How-To-Access-Kubernetes-Cluster-Post-Deployment-Using-Kubectl-On-CloudFerro-Cloud-OpenStack-Magnum.html)
Frequently used user roles[](#frequently-used-user-roles "Permalink to this headline")
---------------------------------------------------------------------------------------
### Common user roles[](#common-user-roles "Permalink to this headline")
**member**
: Grants standard access to project resources.
Note
Older OpenStack versions may use **\_member\_**. If both **member** and **\_member\_** exist, choose **member**.
* Horizon: **Project** -> **Overview**
* CLI: **openstack server list**, **openstack project list**
**observer**
: Read-only access for monitoring and auditing resources. Suitable for third-party tools like Prometheus or Grafana.
* Horizon: **Project** -> **Overview**
* CLI: **openstack server show**, **openstack project show**
**reader**
: Read-only access with slightly broader permissions than **observer**. Ideal for monitoring and analytics tools requiring detailed resource data.
* Horizon: **Project** -> **Overview**
* CLI: **openstack server list**, **openstack project list**
### Roles for Kubernetes users[](#roles-for-kubernetes-users "Permalink to this headline")
**k8s\_admin**
: Administrative access to manage Kubernetes clusters and resources.
* Horizon: **Kubernetes** -> **Clusters**
* CLI: **kubectl create deployment**, **kubectl get pods**
**k8s\_developer**
: For developers deploying applications within Kubernetes.
* Horizon: **Kubernetes** -> **Workloads**
* CLI: **kubectl create**, **kubectl apply**
**k8s\_viewer**
: Read-only access to monitor Kubernetes resources.
* Horizon: **Kubernetes** -> **Overview**
* CLI: **kubectl get pods**, **kubectl describe pod**
### Roles for Load Balancer users[](#roles-for-load-balancer-users "Permalink to this headline")
**load-balancer\_member**
: Grants access to deploy applications behind load balancers.
* Horizon: **Network** -> **Load Balancers**
* CLI: **openstack loadbalancer member create**, **openstack loadbalancer member list**
**load-balancer\_observer**
: Read-only access to monitor load balancer configurations.
* Horizon: **Network** -> **Load Balancers**
* CLI: **openstack loadbalancer show**, **openstack loadbalancer stats show**
How to View Roles in Horizon[](#how-to-view-roles-in-horizon "Permalink to this headline")
-------------------------------------------------------------------------------------------
You can view roles in Horizon by navigating to **Identity** -> **Roles**.
| | |
| --- | --- |
| ../_images/user-roles-list-2.png | ../_images/user-roles-list-1.png |
Assigning multiple roles is best done during project creation rather than user creation.
![openstack-user-roles-create-4.png](../_images/openstack-user-roles-create-4.png)
Examples of using user roles[](#examples-of-using-user-roles "Permalink to this headline")
-------------------------------------------------------------------------------------------
The following articles, as one of many steps, describe how to assign a role to the new project, credential, user or group.
### Using user roles while creating application credential in Horizon[](#using-user-roles-while-creating-application-credential-in-horizon "Permalink to this headline")
Normally, you access the cloud via user credentials, which may be one- or two-factor credentials. OpenStack provides a more direct procedure of gaining access to cloud with application credential and you can create a credential with several user roles.
That S3 article selects user roles when creating an application credential, through Horizon:
/s3/Create-S3-bucket-and-use-it-in-Sentinel-Hub-requests
![user-roles-list-create-2.png](../_images/user-roles-list-create-2.png)
### Using user roles while creating application credential via the CLI[](#using-user-roles-while-creating-application-credential-via-the-cli "Permalink to this headline")
This is the main article about application credentials; it is mostly using CLI:
[How to generate or use Application Credentials via CLI on CloudFerro Cloud](How-to-generate-or-use-Application-Credentials-via-CLI-on-CloudFerro-Cloud.html)
Here is how to specify user roles through CLI parameters:
![user-roles-list-create-1.png](../_images/user-roles-list-create-1.png)
### Using user roles while creating a new project[](#using-user-roles-while-creating-a-new-project "Permalink to this headline")
In article [How to Create and Configure New Openstack Project Through Horizon on CloudFerro Cloud Cloud](../openstackcli/How-To-Create-and-Configure-New-Project-on-CloudFerro-Cloud-Cloud.html) we use command **Project Members** to define which users to include into the project:
![user-roles-list-create-4.png](../_images/user-roles-list-create-4.png)
You would then continue by defining the roles for each user in the project:
![user-roles-list-create-5.png](../_images/user-roles-list-create-5.png)
> See this Rancher article, [How to install Rancher RKE2 Kubernetes on CloudFerro Cloud](../kubernetes/How-to-install-Rancher-RKE2-Kubernetes-on-CloudFerro-Cloud-cloud.html). Then, in Preparation step 1, a new project is created, with the following user roles:
* **load-balancer\_member**,
* **member** and
* **creator**.
![user-roles-list-create-6.png](../_images/user-roles-list-create-6.png)
### Using member role only while creating a new user[](#using-member-role-only-while-creating-a-new-user "Permalink to this headline")
In SLURM article, we first create a new OpenStack Keystone user, with the role of **member**.
/cuttingedge/Sample-SLURM-Cluster-on-CloudFerro-Cloud-Cloud-with-ElastiCluster
![user-roles-list-create-3.png](../_images/user-roles-list-create-3.png)
That user can login to Horizon and use project resources together with other users which are defined in a similar way.
Dictionary of other roles[](#dictionary-of-other-roles "Permalink to this headline")
-------------------------------------------------------------------------------------
**admin**
: Grants unrestricted access to all resources and configurations in the system. Typically reserved for superusers or administrators.
**project\_admin**
: Provides administrative privileges within a specific project, allowing users to manage resources, members, and settings at the project level.
**network\_admin**
: Focused on managing networking resources, including creating networks, subnets, and routers, as well as assigning IPs.
**storage\_admin**
: Offers full control over storage resources, such as creating, modifying, and deleting volumes and snapshots.
**database\_admin**
: Designed for managing database resources, including provisioning, scaling, and backup configurations.
**audit\_viewer**
: A read-only role dedicated to viewing logs, system events, and audit trails for compliance and monitoring purposes.
**compute\_operator**
: Allows management of compute resources, such as starting, stopping, and resizing virtual machines, but without administrative privileges.
**volume\_user**
: Enables users to attach and detach volumes to/from instances and perform basic volume management tasks.
**image\_creator**
: Provides permissions to upload, manage, and delete virtual machine images in the image repository.
**security\_group\_manager**
: Focused on managing security groups and rules, including creating and updating firewall configurations.
**dns\_admin**
: Grants administrative privileges over DNS zones, records, and configurations.
**keypair\_user**
: A role for managing SSH key pairs used for authenticating access to virtual machines.
**heat\_stack\_owner**
: Enables users to create and manage orchestration stacks using Heat templates, including scaling and updating stacks.
**backup\_admin**
: Offers full control over backup operations, such as scheduling backups, restoring data, and managing backup repositories.
**report\_viewer**
: A read-only role that provides access to reports and analytics dashboards without the ability to modify data.
**api\_user**
: Designed for programmatic access to the system via APIs, allowing automation and integration tasks.
**support\_role**
: A limited-access role for customer support agents, enabling them to troubleshoot issues without full system access.
**custom\_role (generic)**
: Represents a user-defined role tailored for specific permissions or organizational policies. Refer to system administrators for details on its scope.

View File

@ -0,0 +1,134 @@
Resizing a virtual machine using OpenStack Horizon on CloudFerro Cloud[](#resizing-a-virtual-machine-using-openstack-horizon-on-brand-name "Permalink to this headline")
=========================================================================================================================================================================
Introduction[](#introduction "Permalink to this headline")
-----------------------------------------------------------
When creating a new virtual machine under OpenStack, one of the options you choose is the *flavor*. A flavor is a predefined combination of CPU, memory and disk size and there usually is a number of such flavors for you to choose from.
After the instance is spawned, it is possible to change one flavor for another, and that process is called *resizing*. You might want to resize an already existing VM in order to:
> * increase (or decrease) the number of CPUs used,
> * use more RAM to prevent crashes or enable swapping,
> * add larger storage to avoid running out of disk space,
> * seamlessly transition from testing to production environment,
> * change application workload byt scaling the VM up or down.
In this article, we are going to resize VMs using commands in OpenStack Horizon.
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://portal.cloudferro.com/>.
No. 2 **How to create a new VM**
If you are a normal user of CloudFerro Cloud hosting, you will have all prerogatives needed to resize the VM. Make sure that the VM you are about to resize belongs to a project you have access to. Here are the basics of creating a Linux VM in Horizon:
[How to create a Linux VM and access it from Linux command line on CloudFerro Cloud](How-to-create-a-Linux-VM-and-access-it-from-Linux-command-line-on-CloudFerro-Cloud.html)
[How to create a Linux VM and access it from Windows desktop on CloudFerro Cloud](How-to-create-a-Linux-VM-and-access-it-from-Windows-desktop-on-CloudFerro-Cloud.html)
No. 3 **Awareness of existing quotas and flavors limits**
For general introduction to quotas and flavors, see [Dashboard Overview Project Quotas And Flavors Limits on CloudFerro Cloud](Dashboard-Overview-Project-Quotas-And-Flavors-Limits-on-CloudFerro-Cloud.html).
Also:
> * The VM you want to resize is in an active or shut down state.
> * A flavor with the desired resource configuration exists.
> * Adequate resources are available in your OpenStack environment to accommodate the resize.
Creating a new VM[](#creating-a-new-vm "Permalink to this headline")
---------------------------------------------------------------------
To illustrate the commands in this article, let us create a new VM in order to start with a clean slate. (It goes without saying that you can practice with any of the already existing VMs in your account.)
Use Prerequisite No. 2 to create a new VM and let it be called **Resizing**. Here is a typical list of flavors you might see:
![resize-vm-horizon-1.png](../_images/resize-vm-horizon-1.png)
For the sake of this article, let us choose a “middle” flavor not too large and not to small to start with. Let it be **eo2a.large**.
![resize-vm-horizon-2.png](../_images/resize-vm-horizon-2.png)
Finish the process of creating a new VM and let it spawn:
![resize-vm-horizon-3.png](../_images/resize-vm-horizon-3.png)
Let us now resize the VM called **Resizing**.
Steps to Resize the VM[](#steps-to-resize-the-vm "Permalink to this headline")
-------------------------------------------------------------------------------
Locate the VM by using Horizon commands **Compute** -> **Instances**.
Click the dropdown arrow next to the VM and select **Resize Instance**.
![resize-vm-horizon-4.png](../_images/resize-vm-horizon-4.png)
You get form **Resize Instance** on screen:
![resize-vm-horizon-5.png](../_images/resize-vm-horizon-5.png)
Assuming you wanted to scale up the VM, you could decide upon **eo2.xlarge**. Let us compare the two flavors:
| Flavor | VCPUs | RAM | Total Disk | Root Disk |
| --- | --- | --- | --- | --- |
| eo2a.large | 2 | 7.45 GB | 32 GB | 32 GB |
| eo2.xlarge | 4 | 16 GB | 64 GB | 64 GB |
So, select **eo2.xlarge** as the new flavor. This screen shows its parameters:
![fwaas-openvpn-v2-34.png](../_images/fwaas-openvpn-v2-34.png)
Advanced Options[](#advanced-options "Permalink to this headline")
-------------------------------------------------------------------
**Advanced Options** tab contains two further options for resizing the instance.
![resize-vm-horizon-10.png](../_images/resize-vm-horizon-10.png)
Disk Partition
: Whether the entire disc is a single partition and automatically resizes.
Options are **Automatic** and **Manual**
Server Group
: Here you select server group to which the instance can belong after resizing. Even if you never manually created a server group, they may be present as a consequence of creating Kubernete clusters, or using parameters for group affinity.
The list can be quite long:
![resize-vm-horizon-11.png](../_images/resize-vm-horizon-11.png)
Resize the VM[](#resize-the-vm "Permalink to this headline")
-------------------------------------------------------------
Anyways, click on **Resize** to proceed with the resizing of the VM.
![resize-vm-horizon-8.png](../_images/resize-vm-horizon-8.png)
In **Status** column, there will be message **Confirm or Revert Resize/Migrate**. It means the system is waiting for you to decide what to do next. To confirm the resizing/migrating process, click on button **Confirm Resize/Migrate** in the **Actions** column.
The resizing process will finish within a couple of seconds and the VM will be in **Status** Active.
If you encounter issues, you can choose **Revert Resize** to return the VM to its previous state. This option is, however, only available before **Resize/Migration Confirmation**.
Or, if the resizing is finished, you can again use option **Resize instance** and choose the flavor from which you started (**eo2a.large** in this case). This process of scaling down is much faster than the process of scaling up.
Troubleshooting[](#troubleshooting "Permalink to this headline")
-----------------------------------------------------------------
If any of the flavor parameters does not match up, the resizing will fail.
You will then see balloon help in the right upper corner:
![resize-vm-horizon-7.png](../_images/resize-vm-horizon-7.png)
In this case, the sizes of the disk before and after the resizing do not match.
What To Do Next[](#what-to-do-next "Permalink to this headline")
-----------------------------------------------------------------
You can also resize the virtual machine using only OpenStack CLI. More details here: [Resizing a virtual machine using OpenStack CLI on CloudFerro Cloud](../openstackcli/Resizing-a-virtual-machine-using-OpenStack-CLI-on-CloudFerro-Cloud.html)

View File

@ -0,0 +1,32 @@
Spot instances on CloudFerro Cloud[](#spot-instances-on-brand-name "Permalink to this headline")
=================================================================================================
Spot instance is resource similar to Amazon EC2 Spot Instances or Google Spot VMs. In short, user is provided with unused computational resources for a discounted price but those resources can be terminated on a short time notice whenever on-demand usage increases. The main use case are ephemeral workflows which can deal with being terminated unexpectedly and/or orchestration platforms which can deal with forced scaling down of available resources e.g. Kubernetes clusters.
What We Are Going To Cover[](#what-we-are-going-to-cover "Permalink to this headline")
---------------------------------------------------------------------------------------
> * How to create spot instances
> * Additional configuration via tags
> * What is the expected behaviour
Prerequisites[](#prerequisites "Permalink to this headline")
-------------------------------------------------------------
No. 1 **Account**
You need a CloudFerro Cloud hosting account with access to the Horizon interface: <https://horizon.cloudferro.com>
No. 2 **Available exclusively on WAW3-2 cloud**
When using spot instances, be sure to work only on WAW3-2 cloud:
![waw3-2-cloud-activated.png](../_images/waw3-2-cloud-activated.png)
No. 3 **Using quotas and flavors**
For quotas, see this article: [Dashboard Overview Project Quotas And Flavors Limits on CloudFerro Cloud](Dashboard-Overview-Project-Quotas-And-Flavors-Limits-on-CloudFerro-Cloud.html)
No. 3 **OpenStack CLI client**
If you want to interact with CloudFerro Cloud cloud using OpenStack CLI client, you need to have it installed. Check one of these articles:

View File

@ -0,0 +1,77 @@
Status Power State and dependencies in billing of instance VMs on CloudFerro Cloud[](#status-power-state-and-dependencies-in-billing-of-instance-vms-on-brand-name "Permalink to this headline")
=================================================================================================================================================================================================
In OpenStack, instances have their own Status and Power State:
> * **Status** informs about the present condition of the VM, while
> * **Power** states tell us only whether virtual machines are running or not.
![statuspower.png](../_images/statuspower.png)
There are six Power states, divided into two groups, depending on whether the VM is running or not.
Power state while VM is running[](#power-state-while-vm-is-running "Permalink to this headline")
-------------------------------------------------------------------------------------------------
**NO STATE**
: VM is running, but encountered some fatal errors which require repeat launch of an instance.
**RUNNING**
: VM is running properly.
**PAUSED**
: VM is frozen and a memory dump is made.
Power state while VM is turned off[](#power-state-while-vm-is-turned-off "Permalink to this headline")
-------------------------------------------------------------------------------------------------------
**SHUT DOWN**
: VM is powered off properly.
**CRASHED**
: VM is turned down due to fatal error.
**SUSPENDED**
: VM is blocked by system (most likely because of negative credit on account).
Status and its conditions[](#status-and-its-conditions "Permalink to this headline")
-------------------------------------------------------------------------------------
Status may have one of the following conditions:
**ERROR**
: Instance is not working due to problems in creation process.
User is not charged.
**ACTIVE**
: Instance is running with the specified image.
User is charged for particular chosen flavor and storage.
**PAUSED**
: Instance is paused with the specified image.
User is charged for flavor and storage.
**SUSPENDED**
: Instance is suspended with the specified image, with a valid memory snapshot.
User is charged for flavor and storage.
**SHUT OFF**
: Instance is powered down by the user and the image is on disk.
User is charged for chosen flavor and storage.
**SHELVED OFFLOADED**
: Instance is removed from the compute host and it can be reverted by “Unshelve instance” button.
User is charged for storage.
**RESIZED/MIGRATED**
: Instance is stopped on the source node but running on the destination node. Images exist at two locations. User confirmation is required.
User is charged for the new flavor and storage.
Please note that floating IP addresses are billed regardless of instance state.

View File

@ -0,0 +1,22 @@
VM created with option Create New Volume No on CloudFerro Cloud[](#vm-created-with-option-create-new-volume-no-on-brand-name "Permalink to this headline")
===========================================================================================================================================================
During creation of a VM you can select a source. If you choose “Image”, you can then choose **Yes** or **No** for the option “**Create New Volume**”.
![volno1.png](../_images/volno1.png)
By default **No** is selected:
![volno2.png](../_images/volno2.png)
The new Virtual Machine will be created with the System Volume (Root Disk) size as defined in the flavor.
![volno3.png](../_images/volno3.png)
If you want to select a different size for the System Volume (Root Disk) please read article [VM created with option Create New Volume Yes on CloudFerro Cloud](VM-created-with-option-Create-New-Volume-Yes-on-CloudFerro-Cloud.html).
![volno4.png](../_images/volno4.png)
In contrast to a VM created when choosing **Yes**, when choosing **No** the system disk is “ephemeral” and will not be visible in the Volumes view.
![volno5.png](../_images/volno5.png)

View File

@ -0,0 +1,72 @@
VM created with option Create New Volume Yes on CloudFerro Cloud[](#vm-created-with-option-create-new-volume-yes-on-brand-name "Permalink to this headline")
=============================================================================================================================================================
Note
While creating a new Virtual Machine, you have to choose the source from which the VM will be built:
![volyes1.png](../_images/volyes1.png)
If you choose “Image”, you can choose the option “Create New Volume”: Yes or No.
By default the option “No” is chosen.
**Option: Create New Volume - Yes**
This option allows you to choose the system volume different from that defined in the flavor:
![volyes2.png](../_images/volyes2.png)
Now you can choose the Volume Size.
In the example below we will choose the volume 15 GB and apply it to the flavor eo1.xsmall.
Default size of the system disk for flavor eo1.xsmall is 8 GB:
![volyes3.png](../_images/volyes3.png)
After choosing the other parameters (Details, Flavor, Networks, Security Group and Key Pair) you can launch the instance:
![volyes4.png](../_images/volyes4.png)
You can see the VM created:
![volyes5.png](../_images/volyes5.png)
If you go to Volumes -> Volumes pane you can see the system volume which the new VM is built on:
![volyes6.png](../_images/volyes6.png)
If you click on “Edit Volume” button, you will see that the volume is bootable:
![volyes7.png](../_images/volyes7.png)
If you previously have chosen “Delete Volume on Instance Delete”: No
![volyes8.png](../_images/volyes8.png)
and now you will delete the VM:
![volyes9.png](../_images/volyes9.png)
then the volume will remain (not attached to any instance):
![volyes10.png](../_images/volyes10.png)
You can now create a new VM from the volume choosing “Launch as Instance”:
![volyes11.png](../_images/volyes11.png)
![volyes12.png](../_images/volyes12.png)
![volyes13.png](../_images/volyes13.png)
you can choose different new flavor (eg. eo1.xmedium) than original (eo1.xsmall):
![volyes14.png](../_images/volyes14.png)
After choosing other parameters (Details, Networks, Security Group and Key Pair) you can launch the instance.
![volyes15.png](../_images/volyes15.png)
![volyes16.png](../_images/volyes16.png)

View File

@ -0,0 +1,24 @@
What Image Formats are Available in OpenStack CloudFerro Cloud cloud[](#what-image-formats-are-available-in-openstack-brand-name-cloud "Permalink to this headline")
=====================================================================================================================================================================
In CloudFerro Cloud OpenStack ten image format extensions are available:
**QCOW2** - Formatted Virtual Machine Storage is a storage format for virtual machine disk images. QCOW stands for “QEMU copy on write”. It is used with the KVM hypervisor. The images are typically smaller than RAW images, so it is often faster to convert a raw image to qcow2 for uploading instead of uploading the raw file directly. Because raw images do not support snapshots, OpenStack Compute will automatically convert raw image files to qcow2 as needed.
**RAW** - The RAW storage is the simplest one, and is natively supported by both KVM and Xen hypervisors. RAW image could be considered as the bit-equivalent of a block device file. It has a performance advantage over QCOW2 in that no formatting is applied to virtual machine disk images stored in the RAW format. No additional work from hosts is required in Virtual machine data operations on disk images stored in this format.
**ISO** - The ISO format is a disk image formatted with the read-only ISO 9660 filesystem which is used for CDs and DVDs. While ISO is not frequently considered as a virtual machine image format, because of ISOs contain bootable filesystems with an installed operating system, it can be treated like other virtual machine image files.
**VDI** - Virtual Disk Image format used by VirtualBox for image files. None of the OpenStack Compute hypervisors supports VDI directly, so it will be needed to convert these files to a different format to use them.
**VHD** - Virtual Hard Disk format for images, widely used by Microsoft (e.g. Hyper-V, Microsoft Virtual PC).
**VMDK** - Virtual Machine Disk format is used by VMware ESXi hypervisor for images. VMWares products use various versions and variations of VMDK disk images, so its important to understand where it can be used.
**PLOOP** - A disk format supported and used by Virtuozzo to run OS Containers.
**AKI/AMI/ARI** - was the initial image format supported by Amazon EC2. The image consists of three files:
> * **AKI** - Amazon Kernel Image is a kernel file that the hypervisor will load initially to boot the image. For a Linux machine, this would be a vmlinuz file.
> * **AMI** - Amazon Machine Image is a virtual machine image in raw format, as described above.
> * **ARI** - Amazon Ramdisk Image is an optional ramdisk file mounted at boot time. For a Linux machine, this would be an initrd file.

View File

@ -0,0 +1,26 @@
What is an OpenStack domain on CloudFerro Cloud[](#what-is-an-openstack-domain-on-brand-name "Permalink to this headline")
===========================================================================================================================
**Domain**
Intention of providing a domain in cloud environment is to define boundaries for management. OpenStack domain is a type of a container for projects, users and groups.
One crucial benefit is separating overlapping resource names for different domains.
Furthermore, permissions in the project and domain are two not related things, hereby customization for administrator is made up much easier.
Current domain name is **visible** beside the project that is currently selected in the Horizon panel.
![cloud/domain_cloudferrocloud.png](_images/domain_cloudferrocloud.png)
The name of the domain is grayed out, denoting that you can use only the domain that has been allocated to you by the system.
You cannot create a new domain.
**Service relation**
CloudFerro Cloud account is linked to your main account in particular domain, hence it allows you to login to the OpenStack dashboard without any need to deliver keystone credentials.
This type of facility is due to a proper implementation of KeyCloak and KeyStone relation.
**Docs**
Click here if you want to see official [OpenStack documentation for domains](https://docs.openstack.org/security-guide/identity/domains.html).

View File

@ -0,0 +1,23 @@
What is an OpenStack project on CloudFerro Cloud[](#what-is-an-openstack-project-on-brand-name "Permalink to this headline")
=============================================================================================================================
A **project** is a isolated group of zero or more users who share common access with specific privileges to the software instance in OpenStack. A project is created for each set of instances and networks that are configured as a discrete entity for the project. In Compute, a project owns virtual machines (in Compute) or containers (in Object Storage).
You can imagine that the whole OpenStack cloud is a big cake of resources (vCPU, disks, instances, etc…) and projects are the pieces of this cake served to the customers.
Current project name is **visible** in the Horizon panel.
![project1.png](../_images/project1.png)
Projects are created, managed, and edited at the OpenStack **Projects** screen.
![project2.png](../_images/project2.png)
Users can be associated with more than one project, but once signed, they can only see and access the resources available in that project.
Each project and user pairing can have a role associated with it.
OpenStack users can create projects, and create new accounts using the OpenStack Dashboard. They can also associate other users with roles, projects, or both.
To remove project its mandatory to manually remove all of its resources first.
Users can create private networks for connectivity within projects [How to create a network with router in Horizon Dashboard on CloudFerro Cloud](../networking/How-to-create-a-network-with-router-in-Horizon-Dashboard-on-CloudFerro-Cloud.html). By default, they are fully isolated and are not shared with other projects.

2
docs/cloud/cloud.html.md Normal file
View File

@ -0,0 +1,2 @@
CLOUD[](#cloud "Permalink to this headline")
=============================================