Integrations¶
Integrations¶
Note
To add and edit certain integrations such as Ansible Tower, vRO, Chef and Puppet, the user must have FULL permission for “Library: Integrations” in addition to “Admin: Integrations”.
To add an integration select + ADD and choose your integration. Many Morpheus-supported integrations can be configured in this section, though not all. Some integrations, such as networking integrations, must be configured within their own areas of the application. The following integrations can be configured in this section:
Chef
Puppet
Ansible
Salt Masters
Ansible Tower
vRealize Orchestrator
Microsoft DNS
PowerDNS
Route 53
Bind DNS
Git
Github
Docker Repositories
Jenkins
ServiceNow
Cherwell
Remedy
Venafi
Please see the Guides for each specific integration type for more detailed information on setup steps and features supported by the integration.
Packages¶
Overview¶
The /administration/packages
is where Morpheus packages (.morpkg, .mpkg, or .mopkg) can be uploaded to appliances. Morpheus packages contain Library objects, such as Instance Types, Layouts, Node Types, Spec Temples and Cluster Layouts. Morpheus packages consist of library objects as code compiled into a simple ($.morpkg, $.mpkg, or $.mopkg)
file, allowing for agile distribution, updated and sharing of Library configurations.
The addition of /administration/packages
in v6.2.10 is targeted for uploading future Morpheus provided packages, however users will be able to create, distribute and/or import custom Morpheus packages.
Role Permissions¶
Access and capabilities for the Packages section is determined by the following role permissions:
- Role: Feature Access:
Admin: Plugins
None: Cannot access Admin: Plugins section
Full: Access to Admin: Plugins and ability to upload Morpheus packages (.morpkg, .mpkg, or .mopkg)
Uploading Packages¶
/administration/packages
is targeted for uploading future Morpheus provided packages’s, however users will be able to create, distribute and/or import custom Morpheus packages. Additional information on creating custom packages will be provided.
Plugins¶
Overview¶
Morpheus is extendable with custom plugins for Task types, UI tabs, reports, approvals, cypher, and more. Plugins are added from the Plugins tab of the Integration page under Administration (Administration > Integrations > Plugins). Simply browse for a local plugin file (.jar) to add it to the UI. Custom plugins can also be edited or deleted by clicking on the pencil or trash can icons in the corresponding row.
Morpheus maintains a repository of internally-developed and vetted plugins at Morpheus Exchange. These plugins can be downloaded and added to Morpheus using the instructions in the prior paragraph. Alongside the download link, you can also find helpful readme information that discusses how the plugin can be used and which versions of Morpheus it’s compatible with.
With at least one plugin integrated, Morpheus will show details on each plugin from the Plugins List View. The following information is displayed:
NAME: The name given to the plugin
DESCRIPTION: A description value (if any) coded into the plugin
FILE NAME: The .jar filename
VERSION: The plugin version number
STATUS: The status of the plugin, such as “loaded” when the plugin is ready for use
STATUS MESSAGE: A status message (if any) for the plugin
ENABLED: If the plugin is enabled, a check mark appears here. Disabled plugins are also grayed out
Additional information about each plugin can be viewed by clicking on the pencil (edit) icon. Most of the information in this modal is read-only but you can enable or disable plugins from this pane.
Please visit the Morpheus Developer Portal for Plugin Architecture SDK documentation and help getting started with custom Plugin development.
![../../_images/plugins_new.png](../../_images/plugins_new.png)
Distributed Workers¶
Overview¶
The Morpheus distributed worker is installed using the same package as the VDI Gateway worker. Organizations which have already deployed VDI Gateway(s) can use the same worker for both purposes if desired, you’d simply need to update configuration in /etc/morpheus/morpheus-worker.rb
and run a reconfigure. When creating a distributed worker or VDI Gateway object in Morpheus UI, an API key is generated. Adding one or both types of API keys to the worker configuration file determines if the worker is running in VDI gateway and/or distributed worker mode.
Supported Cloud Types
The following Cloud/Zone types support Distributed Workers
vmware
vmwareCloudAws
nutanix
openstack
xenserver
macstadium
Installation¶
A distributed worker VM is installed and configured similarly to a Morpheus appliance via rpm
or deb
package.
Note
Package URLs for the distributed worker are available at https://app.morpheushub.com in the downloads section.
Note
The distributed worker requires that the Morpheus appliance has a trusted SSL certificate. This can be accomplished by configuring a public trusted SSL certificate on the Morpheus appliance (or load balancer) or ensure the certificate and chain are added to the Java Keystore of the Distributed Worker, to trust the certificate.
Requirements
OS |
Version(s) |
---|---|
Amazon Linux |
2 |
CentOS |
7.x, 8.x |
Debian |
10, 11 |
RHEL |
7.x, 8.x |
SUSE SLES |
12 |
Ubuntu |
18.04, 20.04, 22.04 |
Memory: 4 GB RAM minimum recommended
Storage: 10 GB storage minimum recommended. Storage is required for installation packages and log files
CPU: 4-core minimum recommended
Network connectivity to the Morpheus appliance over TCP 443 (HTTPS)
Superuser privileges via the
sudo
command for the user installing the Morpheus worker packageAccess to base
yum
orapt
repos. Access to Optional RPM repos may be required for RPM distros
Important
In order to proxy VMware vCenter Cloud traffic through a Distributed Worker, you must have a static public DNS entry for the internal IP address of the vCenter appliance. If this is not done, everything may appear to be working properly when configuring the Cloud but problems will arise at provision time. This is not a Morpheus limitation but is a limitation of the VMware SDK client which does not natively support proxies.
Download the appropriate package from Morpheus Hub based on your target Linux distribution and version for installation in a directory of your choosing. The package can be removed after successful installation.
wget https://downloads.morpheusdata.com/path/to/morpheus-worker-$version.distro
Validate the package checksum as compared with the values indicated on Hub. For example:
sha256sum morpheus-worker-$version.distro
Next, install the package using your selected distribution’s package installation command and your preferred options. Example, for RPM:
rpm:
$ sudo rpm -ihv morpheus-worker-$version.$distro
Preparing... ################################# [100%]
Updating / installing...
1:morpheus-worker-x.x.x-1.$distro ################################# [100%]
Thank you for installing Morpheus Worker!
Configure and start the Worker by running the following command:
sudo morpheus-worker-ctl reconfigure
Configuration¶
With the package installed, we need to add a new distributed worker in Morpheus UI. Distributed workers are added in Administration > Integrations > Distributed Workers. To create one, populate the following fields:
NAME: A name for the distributed worker in Morpheus
DESCRIPTION: An optional description for the distributed worker
PROXY HOSTS: A comma-delimited list of global proxy hosts, any endpoint listed here will be proxied through the Morpheus worker. For VMware, you must list the host addresses for any vCenter you wish to proxy through the worker. Xen hosts and PowerVC hosts must be listed here as well. Other Cloud types which are supported by the Morpheus worker need only have the worker configured on the Edit Cloud modal (Infrastructure > Clouds > Selected Cloud > Edit button)
ENABLED: When marked, the selected worker is available for use
Important
The proxy host URL entered in the Worker configuration must match the URL set in the Cloud configuration. That is, if you use the URL in the Cloud configuration you must also use it in the Worker configuration. The reverse is also true, if an IP address is used in the Cloud configuration, that should be used in the Worker configuration as well. There are also configuration considerations that must be made for proxying vCenter Cloud traffic through a Distributed Worker. See the “IMPORTANT” box in the “Requirements” section for additional details.
After clicking SAVE CHANGES, an API key is generated and displayed. Make note of this as it will be needed in a later configuration step.
![../../_images/createWorker.png](../../_images/createWorker.png)
With the worker configured in Morpheus, the next step is to update supported Cloud integrations which should be proxied through the worker. Select the desired Cloud from the Clouds List Page (Infrastructure > Clouds) and click EDIT from the chosen Cloud’s Detail Page. Within the Advanced Options section, choose a configured worker from the DISTRIBUTED WORKER dropdown menu. Click SAVE CHANGES.
![../../_images/updateCloud.png](../../_images/updateCloud.png)
With the API key in hand and configuration complete in Morpheus UI, head back to the worker box. Configure the gateway by editing /etc/morpheus/morpheus-worker.rb
and updating the following:
worker_url 'https://gateway_worker_url' # This is the worker URL the Morpheus appliance can resolve and reach on 443 worker['appliance_url'] = 'https://morpheus_appliance_url' # The resolvable URL or IP address of Morpheus appliance which the worker can reach on port 443 worker['apikey'] = 'API KEY FOR THIS GATEWAY' # VDI Gateway API Key generated from Morpheus Appliance VDI Pools > VDI Gateways configuraiton. For worker only mode, a value is still required but can be any value, including the 'API KEY FOR THIS GATEWAY' default template value worker['worker_key'] = 'DISTRIBUTED WORKER KEY' # Distributed Worker API Key from Administration > Integrations > Distributed Workers configuration
Note
By default the worker_url uses the machine’s hostname, ie https://your_machine_name
. The default worker_url
value can be changed by editing /etc/morpheus/morpheus-worker.rb
and changing the value of worker_url
. Additional appliance configuration options are available below.
After all configuration options have been set, run sudo morpheus-worker-ctl reconfigure
to install and configure the worker, nginx and guacd services:
sudo morpheus-worker-ctl reconfigure
The worker reconfigure process will install and configure the worker, nginx and guacd services and dependencies.
Tip
If the reconfigure process fails due to a missing dependency, add the repo that the missing dependency can be found in and run
Note
Configuration options can be updated after the initial reconfigure by editing /etc/morpheus/morpheus-worker.rb
and running sudo morpheus-worker-ctl reconfigure
again.
Once the installation is complete the morpheus worker service will automatically start and open a web socket with the specified Morpheus appliance. To monitor the startup process, run morpheus-worker-ctl tail
to tail the logs of the worker, nginx and guacd services. Individual services can be tailed by specifying the service, for example morpheus-worker-ctl tail worker