Bare-metal Cluster Setup¶
Anaconda for cluster management can be used to manage pre-existing clusters, such as bare-metal machines, collections of virtual machines (Vagrant, Docker, etc.), or previously instantiated cloud instances. These types of installations are collectively referred to as bare-metal installations.
Additional bare-metal cluster requirements:
- Client machine:
- Passwordless SSH access to all cluster nodes
- Cluster Nodes:
- Matching user account/credentials on all nodes with passwordless sudo enabled
Provisioning instructions¶
1. Provider Setup¶
A sample providers file is included with a new installation of Anaconda for
cluster management and is located within the ~/.acluster/providers.yaml
file on the client machine. You can edit the contents of this file to reflect
the settings for your bare metal provider.
An example ~/.acluster/providers.yaml
file with a provider named
bare_metal
is shown below:
bare_metal:
cloud_provider: none
private_key: ~/.ssh/my-private-key
Refer to the Provider settings page for more details about provider settings.
2. Profile Setup¶
Create a file on the client machine located at
~/.acluster/profiles.d/profile_name.yaml
that defines the following
information:
name: profile_name
provider: bare_metal
node_id: bare_metal
node_type: bare_metal
user: ubuntu
num_nodes: 4
machines:
head:
- 192.168.1.1
compute:
- 192.168.1.2
- 192.168.1.3
- 192.168.1.4
# Optional for Anaconda Server
# (note that the ports might be different in your configuration)
anaconda_url: http://[your-anaconda-server-ip]:9000/Miniconda-latest-Linux-x86_64.sh
conda_channels:
- http://[your-anaconda-server-ip]:8080/conda/anaconda-cluster
- http://[your-anaconda-server-ip]:8080/conda/anaconda
- defaults
The example profile shown above is named profile_name
and is configured for
a 4-node bare-metal cluster.
Refer to the Profile settings page for more details about profile settings.
3. Configure Cluster¶
Use the following command to configure a bare-metal cluster with the specified profile:
$ acluster create demo_cluster --profile profile_name
Note: Replace demo_cluster
with the name of your cluster, and
profile_name
with the name of your profile.
After this command is executed, the bare-metal cluster will be configured, and you will see updates as the tasks and initialization steps are completed.
A typical bare-metal cluster configuration takes a few minutes, and has output similar to the following:
$ acluster create demo_cluster --profile profile_name
Creating cluster
Number of existing nodes: 0
Number of requested nodes: 4
Licensed nodes: 16
License is valid for the current number of nodes.
INFO: Creating new cluster "demo_cluster" with profile "profile_name"
INFO: Creating 4 instances
INFO: Successfully created instances
INFO: Cluster info: {'ips': ['54.84.227.194', '52.23.192.232',
'54.84.184.193', '54.88.116.203'], 'user': 'ubuntu',
'name': u'demo_cluster'}
Saving cluster file
Cluster "demo_cluster": 4 nodes
Number of existing nodes: 4
Number of requested nodes: 0
Licensed nodes: 16
License is valid for the current number of nodes.
Checking ssh connection
INFO: Checking SSH connection
Checking sudo
Bootstraping conda
INFO: Installing miniconda
INFO: Anaconda URL: https://repo.anaconda.com/miniconda/Miniconda-latest-Linux-x86_64.sh
INFO: Checking conda installation
INFO: Checking conda installation
Bootstraping salt
INFO: Setting up Salt master and Minions
INFO: Creating conda env for salt
INFO: Installing salt
Starting salt
INFO: Flushing iptables rules
INFO: Setting SELinux to permissive
INFO: Starting salt-master daemon
INFO: Starting salt-minion daemon
Checking salt connection
Uploading formulas
INFO: Uploading formulas to head
INFO: Uploading profile
Setting Roles
INFO: Settings grains/roles
Syncing formulas
Done
The cluster is now ready for use.
View the Troubleshooting FAQ if you encounter errors while creating a cluster.