Browsed by
Month: June 2016

SCP – Transfering files with SSH

SCP – Transfering files with SSH

This is one thing that I don’t use that often but when I do I alwasy have to look for the syntax of the command on google. To avoid this step I’ve finally decided to document it in a small blog post!

If you want to copy a file from your pc to a remote machine use this command:

scp <file> <username>@<IP address or hostname>:<Destination>

This works well if you have to transfer only one file, but when a folder is involved recursion has to be used:

scp -r /folder/ <username>@<IP address or hostname>:<Destination>

And finally, to instead copy files from the remote machine to your laptop:

scp -r <username>@<IP address or hostname>:<Source> <Destination>

# for example, copying "files_to_copy" to current directory
scp -r vince@192.168.1.10:/home/vince/files_to_copy/ .

This concludes the blog post about SCP. Hopefully the next time I have to use it I’ll remember the synthax or at least know where to find it!

Peace out,

Vincenzo

Working with Fuel and Openstack (part 1)

Working with Fuel and Openstack (part 1)

Hello everybody,

during the last few weeks I’ve been working on Fuel, an open source deployment and management tool for OpenStack.

In this blog post I’m going to present Fuel, how it works, what it offers and I’m also going to talk about a few personal thoughts derived from my personal experience with Fuel.

What’s Openstack and what’s Fuel?

OpenStack is a free and open-source software platform for cloud computing. The software platform consists of interrelated components that control hardware pools of computing, storage, and networking resources throughout a data center. It basically allows the end user to spawn Virtual Machines on-demand. The image here below gives an overview of its architecture:

openstack-software-diagram
Openstack architecture (Compute, Networking and Storage)

Fuel, on the other hand, is a tool developed by Mirantis that provides a faster, less complicated and nicer way to deploy OpenStack environments. When installing a software plaform like OpenStack a lot of complicated and repetitive task have to be made, for example: the object storage, the identity manager, the networking services, the compute service etc. have to be configured and deployed. This makes deploying OpenStack a nightmare for many user. In order to solve this problem and also have a more scalable infrastructure, the Fuel software has been developed.

How does Fuel work?

Fuel is composed of a CentOS image which is called the Fuel Master. Iside this CentOS image there are 11 docker container (EDIT: Fuel v9 doesn’t use containers anymore), each one running a dedicated service such as: keystone for autenthication, niginx for the web GUI, postgres for the database etc. Thanks to these containers the Fuel Master, after having configured the correct networks, is able to add and remove “nodes” on the fly and without having to reconfigure the OpenStack environment. These “nodes” are of three types, Controller, Storage and Compute.

openstack_env
Fuel architecture

Controller nodes, which handles the orchestration activities and provides the OpenStack dashboard and the external API access. Compute nodes are used to create, manage and terminate Virtual Machines. And finally Storage nodes which are used to store the Virtual Machine data.

As mentioned before another Fuel functionality is the Network configuration. A total of four network have to be defined and configured in the Fuel Master. One is the Public network, which allows inbound connections to VMs (Controllers and Tenant VMs) from external networks (e.g., the Internet) as well as outbound connections from VMs to the external networks. The second one is the Storage network which is used to provide storage services such as replication traffic or migrating a disk. The third network is the Management which handles all nova-api and other api traffic. Thanks to this separation one can be sure that when doing operation on a VM the other traffic isn’t affected. Finally, the last one is the Private network which is used for communication between each tenant’s VMs.

 

This is the first part of a series of posts about Fuel. Stay tuned for the next parts!

SSH Config file

SSH Config file

Tired of writing hostnames and ports when using ssh? Then start using ssh config file!

I’ve recently found out that there is the possibility to define frequently used hosts in an ssh configuration file which get’s looked up each time you use ssh.

Here’s an example of a ssh config entry:

Host raspberry
    HostName 192.168.1.10 # hostname used by ssh
    User root
    IdentityFile ~/.ssh/rasp.key

#or

Host ftpserver
    HostName myhostname.domain.me
    User vince

With this configuration, connecting to the raspberry host is going to be as simple as:

ssh raspberry

Of course there are a lot of other options, one that I use frequently is the ProxyCommand, which allows you to specify the ssh command to be executed. In my case I use this when I need to connect to a host using a second machine, so for example : my_pc -> jump_machine -> final_destination. Also showed in the image here below:

 

sshConfig
Using ssh_config to bypass hosts

This can be achived with this set-up:

Host final_destination
    User vince
    ProxyCommand ssh -q -l myusername -W final_destination:22 jump_machine

So there you go! A complete list of possible options/attributes for your ssh config file can be found here.

Bye