Morpheus is a software based appliance installation capable of orchestrating many clouds and hypervisors. Before an installation is started it is important to understand some of the base requirements.
In the simplest configuration Morpheus simply needs one Appliance Server. The Appliance Server, by default, contains all the components necessary to orchestrate both vms and containers.
To get started some base requirements are recommended:
- Operating System: Ubuntu 14.04 or 16.04, CentOS/RHEL greater than 7.0.
*Please note Ubuntu 16.10 and Amazon Linux are not supported at this time
- Memory: 8 GB minimum
- Storage: 50 GB storage minimum, 100+ GB recommended (see storage details below)
- Network connectivity from your users to the appliance over TCP 443 (HTTPS)
- Inbound connectivity access from provisioned vms and container hosts on port 443 (needed for agent communication)
- Internet Connectivity from Appliance (To download from Morpheus' public docker repositories and virtual image catalog)
- Superuser privileges via the sudo command for the user installing the Morpheus Appliance package.
- An Appliance License is required for any operations involving provisioning.
- An Appliance URL that is accessible to all managed hosts. It is necessary for all hosts that are managed by Morpheus to be able to communicate with the appliance server ip on ports 443 and 80. This URL is configured under Admin->Settings. Morpheus also utilizes SSH (Port 22) and Windows Remote Management (Port 5985) to initialize a server.
Morpheus needs storage space for a few items. One is for the built-in Elasticsearch store (used for log aggregation and stats collection metrics). Morpheus also keeps a workspace and local virtual image cache for doing virtual image conversion and template upload. While the permanent store of these can be offloaded via a Storage Provider some space is still recommended for dealing with non streamable virtual image formats.
In many common scenarios it might be prudent to configure a shared datastore on a storage cluster and mounted to /var/opt/morpheus (this is where all user based data and database data is persisted). There are several folders located within here that can be independently located as desired.
Morpheus primarily operates via communication with its agent that is installed on all managed vms or docker hosts. This is a lightweight agent responsible for aggregating logs and stats and sending them back to the client with minimal network traffic overhead. It also is capable of processing instructions related to provisioning and deployments instigated by the appliance server.
The Morpheus Agent exists for both linux and windows based platforms and opens NO ports on the guest operating system. Instead it makes an outbound SSL (https / wss) connection to the appliance server. This is what is known as the appliance url during configuration (in Admin→Settings). When the agent is started it automatically makes this connection and securely authenticates. Therefore, it is necessary for all vms and docker based hosts that are managed by morpheus to be able to reach the appliance server ip on port 443.
Morpheus also utilizes SSH (Port 22) and Windows Remote Management (Port 5985) to initialize a server. This includes sending remote command instructions to install the agent. It is actually possible for Morpheus to operate without agent connectivity (though stats and logs will not function) and utilize SSH/WinRM to perform operations. Once the agent is installed and connections are established SSH/WinRM communication will stop. This is why an outbound requirement exists for the appliance server to be able to utilize port 22 and 5985.
NOTE: In newer versions of morpheus this outbound connectivity is not mandatory. The agent can be installed by hand or via Guest Process API’s on cloud integrations like Vmware.
The Appliance Server automatically installs several components for the operation of Morpheus. This includes:
- RabbitMQ (Messaging)
- MySQL (Logistical Data store)
- Elasticsearch (Logs / Metrics store)
- Redis (Cache store)
- Tomcat (Morpheus Application)
- Nginx (Web frontend)
- Guacamole (Remote console service for clientless remote console)
- Check Server (Monitoring Agent for custom checks added via UI)
All of these are installed in an isolated way using chef zero to /opt/morpheus. It is also important to note these services can be offloaded to separate servers or clusters as desired. For details check the installation section and high availability.