Developers are always on the lookout for easy-to-use automation tools to eliminate repetitive infrastructure management tasks. With near instantaneous physical server provisioning, Bare Metal Cloud provides an infrastructure foundation for implementing DevOps tools and technologies for streamlined delivery.

Here is a curated list of the top 10 GitHub repositories that let you adapt Bare Metal Cloud servers to your needs and manage them easily.

What Are Bare Metal Cloud Servers?

Bare Metal Cloud (BMC) is a cloud-native dedicated server platform geared toward DevOps organizations. The platform allows you to deploy non-virtual physical machines in minutes over an API or with Infrastructure as Code tools.

With unrestricted access to the server’s physical hardware, you can build custom environments optimized for your specific workloads. BMC servers are ideal for running CI/CD pipelines, testing workloads, or production environments.

There are more than 20 powerful instance types you can choose from. If you’re just getting started, you might want to try entry-level and general-purpose instances. For more complex workloads, compute-optimized or memory-optimized instances are the way to go.

BMC also exposes a robust API that allows you to manage your server programmatically. This makes it easy to deploy one or one hundred servers across different locations at once with just a couple of lines of code.

To help you automate BMC server management, phoenixNAP has released numerous open-source automation scripts and Infrastructure as Code modules on its GitHub account.

Infrastructure as code modules for BMC.

1. Terraform Provider for BMC

Terraform is a popular Infrastructure as Code tool that makes it simple and easy to manage cloud resources programmatically.  It allows you to safely deploy and modify infrastructure setups across numerous cloud providers with code. To do this, you need to specify the appropriate Terraform Provider in your configuration files.

Providers are plugins that allow you to interact with an API of a particular cloud service through Terraform. BMC has its own Terraform provider plugin pnap that you can download directly from Terraform’s Provider Registry or phoenixNAP’s GitHub account. Before using it, you need to create a BMC account and authenticate access to the BMC API. Once you have everything set up, you can use familiar Terraform commands to define, deploy, and manage BMC servers.

Be sure to check out the official documentation for the pnap Terraform provider for more information on how to authenticate and deploy BMC servers.


2. Ansible Module for BMC

Ansible is another powerful Infrastructure as Code tool that simplifies IT automation and orchestration of cloud resources. Developers love working with Ansible because it’s easy to set up and configure. To use Ansible, you write playbooks (blueprints of automation tasks) in a human-readable way using YAML.

There are hundreds of free modules you can use inside your playbooks to automate different tasks. BMC comes with a custom-built Ansible module that interacts with the BMC API. The BMC server module for Ansible allows you to create and delete server instances as well as perform power actions on those servers.

To use this module, head to the Ansible collection GitHub repo and download it. There, you’ll also find examples of different Ansible Playbooks you can use.


If you’re new to Ansible, check out our Knowledge Base for tutorials on how to install Ansible on Ubuntu or how to install ansible on Windows.

3. Pulumi Provider for BMC

Pulumi holds a slight advantage over other Infrastructure as Code tools because you don’t need to learn another domain-specific language. With Pulumi, you can write configurations in familiar programming languages like Python, Go, or Javascript.

BMC is fully compatible with Pulumi. You can use the Pulumi Provider for BMC pulumi-pnap to deploy, delete, and manage BMC resources with speed and agility. You can find the source code for the provider on phoenixNAP’s GitHub account as well as examples on how to install it using different programming languages.


Kubernetes controller for BMC.

4. Kubernetes Controller for BMC

phoenixNAP recently released a Kubernetes Controller for BMC that allows you to manage your BMC servers within a Kubernetes cluster. To provision resources, there is no need to use third-party tools. You simply leverage the flexibility of the Kubernetes API. This helps you focus on writing code and improving your release velocity without leaving the Kubernetes environment.

The Kubernetes Controller for BMC is published as a Docker image. To get started with Kubernetes on BMC, head over to GitHub where you’ll find detailed installation instructions and available commands.


5. GitHub Actions for BMC

GitHub Actions allow you to automate code deployments and create CI/CD pipelines within the GitHub interface. All you have to do is write the instructions, and GitHub takes care of the execution for you. Actions are event-driven which means they run automatically whenever an event occurs.

There are three custom-made GitHub actions that you can use to easily manage BMC resources. With these actions, you can create, delete, and query information about server instances in an automated way. Each action has its own repository which contains code examples and basic instructions on how to use the them.

6. Script for Deploying Apache Spark on BMC

Apache Spark is a powerful open-source engine for Big Data processing. Use Spark to quickly extract valuable insight from huge amounts of structured or unstructured data. Spark utilizes in-memory caching when performing complex computations. This processing method gives you more speed when running batch apps, data streaming, iterative algorithms, and interactive queries.

Running Spark workloads on BMC servers can further improve your data processing speeds. To test it out, try deploying a Spark cluster on BMC. After you’ve created a BMC account, run this automated script that will deploy a Spark cluster consisting of one master and two worker nodes.

The source code for the automated Spark install script is publicly available on phoenixNAP’s GitHub account. For a detailed guide, check out Automated Deployment of Spark Cluster on Bare Metal Cloud.


7. Script for Deploying a Kubernetes Cluster on BMC

This script will do all the heavy lifting for you if you want to install a fully functional Kubernetes cluster on BMC servers. All you need to do is use Python to execute the script and let automation deploy three bare metal cloud servers with Ubuntu running. One server will be designated as the master node and the other two as worker nodes. The script will also install WordPress for you.

Before running the script, make sure you have a BMC account and grab your authentication tokens for the API. Check out the repo’s README file for further instructions on how to obtain these tokens.


8. Chef Knife Plugin for BMC

Chef is a major player in the Infrastructure as Code game. It’s an open-source configuration management tool that enables automated infrastructure provisioning. The tool can be used to provision and manage both on-prem and cloud resources as well as applications.

With Chef, configurations are stored in recipes and cookbooks. Chef recipes and cookbooks are basic building blocks for defining and configuring desired environments across a wide variety of cloud providers.

The Knife utility is used for integrating Chef with different cloud services. phoenixNAP has developed a Knife plugin for BMC — knife bmc, which provides a set of commands for easier management of BMC resources. Use it to deploy and delete BMC instances as well as perform power actions on your servers.


9. Docker Machine Driver for BMC

Docker Machine is a tool for setting up Docker Engine on multiple virtual hosts. Use docker-machine commands to provision and manage these Dockerized hosts on one or more BMC instances.

To use this driver, you need to have Docker Machine installed on your system along with the Go programming language. You also have to have a BMC account to generate authentication tokens for the BMC API.

Visit the GitHub repo for the Docker Machine driver to learn how to get started and explore available functions.


10. Ruby SDK for BMC

The Ruby SDK gives you all the tools you need to deploy and manage BMC instances with Ruby. It makes it easy to interact with the BMC API without switching to another language. The SDK is available for download as a gem — bmc-sdk.

To make calls to the BMC API, you need to create an account and generate API authentication tokens via the BMC portal. These tokens consist of the Client ID and Client Secret. Once you’re authenticated, you can run the script to set up the SDK.

The source code for the SDK is hosted on phoenixNAP’s GitHub account. Check it out to get detailed instructions on how to install the SDK and see code examples.


Join the Bare Metal Cloud Community

Keep an eye out on phoenixNAP’s GitHub account for more useful modules, SDKs, and scripts for easier management of BMC resources. All GitHub resources are open-source and free to use. So, feel free to fork them or contribute code.

Stay in touch with the latest BMC developments by joining the community on Slack. Once you join, you can chat with the BMC development team, send feedback, and request new features.

And don’t forget to subscribe to our Developers Monthly newsletter if you want to level up your dev skills. Each month, we compile a list of the most useful tutorials from our Knowledge Base and send them straight to your inbox.