My first server on the MCP¶
Because of sophisticated features brought by the Managed Cloud Platform, you have to create some infrastructure before landing your first server. In this tutorial we show how to automate tedious tasks with a couple of straightforward statements.
Requirements for this use case¶
- Deploy at Frankfurt in Europe
- Create a Network Domain
- Create an Ethernet network (a VLAN)
- Deploy a first sample server
- Add the server to the automated monitoring dashboard
- Assign a public IPv4 address to the server
- Add address translation to ensure end-to-end IP connectivity
- Add firewall rule to accept TCP traffic on port 22 (ssh)
Fittings plan¶
Copy the text below and put it in a text file named fittings.yaml
:
1 2 3 4 5 6 7 8 9 10 11 12 13 | locationId: EU6
regionId: dd-eu
blueprints:
- myBluePrint:
domain:
name: myDC
ethernet:
name: myVLAN
subnet: 10.1.10.0
nodes:
- myServer
|
In this example the server MyServer
is placed in a
network named MyNetwork
, and the network is part of a network
domain acting as a virtual data centre, MyDataCentre
. Feel free to change
these to any values that would better suit you.
Some notes on directives used in these fittings plan:
locationId: EU6
and regionId: dd-eu
- The region defines the API
endpoint used by plumbery, and the location designates the target data centre
in the region. Look at the table below to select your preferred location.
City locationId regionId Amsterdam (Netherlands) EU7 dd-eu Ashburn (US East) NA9 dd-na Frankfurt (Germany) EU6 dd-eu Hong Kong AP5 dd-ap London (UK) EU8 dd-eu Melbourne (Australia) AU10 dd-au New-Zealand AU11 dd-au Santa Clara (US West) NA12 dd-na Singapore AP3 dd-ap Sydney (Australia) AU9 dd-au Tokyo (Japan) AP4 dd-ap
ipv4: 2
- This is to reserve some public IPv4 addresses. Here we
anticipate on the public address assigned to the server.
glue:
- This directive adds connectivity to a node, either by assigning
a public IPv4 address to the Internet, or by adding network interfaces to
additional networks. With internet 22
, Plumbery assigns a public IPv4
address and adds a NAT rule. The firewall is also
configured to accept only ssh traffic on port 22.
monitoring: essential
- Automatically adds monitoring to this node after
its creation.
Deployment commands¶
$ python -m plumbery fittings.yaml build
$ python -m plumbery fittings.yaml start
These two commands will build fittings as per the provided plan, and start the server as well. Look at messages displayed by plumbery while it is working, so you can monitor what’s happening.
Follow-up commands¶
In this use case you can use the IPv4 assigned to the node for direct ssh connection.
$ ssh root@<ipv4_here>
You will have to accept the new host, then provide the password used for the
creation of the server. This is the one put in MCP_PASSWORD
environment
of the computer that is running plumbery.
After that you can do whatever you want on this first host. For example:
$ apt-get update
$ apt-get upgrade
Destruction commands¶
Cloud computing has a hard rule. Any resource has a cost, be it used or not. At the end of every session, you are encouraged to destroy everything. Hopefully, plumbery is making this really simple:
$ python -m plumbery fittings.yaml dispose