Skip to content

Latest commit

 

History

History
138 lines (103 loc) · 6.97 KB

README.md

File metadata and controls

138 lines (103 loc) · 6.97 KB

Logo

STARTcloud Roles

Documentation for STARTcloud Roles
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

STARTcloud Roles

STARTcloud Roles is a collection of Ansible roles designed to secure and prepare virtual machines (VMs) for use with SSL, configure services, and install dependencies. It is part of the STARTcloud ecosystem, working in conjunction with the Core Provisioner to automate the provisioning and configuration of VMs. This project enhances the security and functionality of VMs by providing a structured approach to role management and deployment.

Key Features

  • Role Management: Offers a comprehensive set of Ansible roles for various aspects of VM preparation and configuration.
  • SSL Preparation: Automates the process of securing VMs with SSL certificates, ensuring secure communication.
  • Service Configuration: Simplifies the setup of necessary services on VMs, streamlining the deployment process.
  • Dependency Installation: Handles the installation of required dependencies, reducing manual setup efforts.

Including STARTcloud Roles

  1. Add STARTcloud Roles as a Git Submodule: First, ensure that STARTcloud Roles is added as a submodule to your project. This can be done using the following command:

git submodule add -b submodule https://github.com/STARTcloud/startcloud_roles startcloud_roles Replace path/to/submodule with the desired path within your project where you want to include STARTcloud Roles.

  1. Update the Submodule: After cloning your project, navigate to the submodule directory and pull the latest changes:

bash cd path/to/submodule git pull origin main

Interacting with Hosts.yml and Hosts.rb

To integrate STARTcloud Roles with the Core Provisioner, specifically with the Hosts.yml and Hosts.rb files, follow these steps:

STARTcloud Roles enhances the provisioning process by automating the configuration of VMs. To utilize these roles effectively, they need to be referenced within the Hosts.yml for the Core Provisioner Hosts.rb.

  1. Reference Roles in Hosts.yml: Within the Hosts.yml file, you can specify which roles from STARTcloud Roles should be applied to a particular host. This is done by including the role names under the roles key for each host configuration. For example:
hosts: all
roles: 
  - startcloud.startcloud_roles.ssl
  - startcloud.startcloud_roles.service_user

This configuration indicates that the ssl_setup and service_configuration roles from STARTcloud Roles should be applied to all hosts via all.

  1. Execution in Hosts.rb: The Hosts.rb script is responsible for interpreting the Hosts.yml file and generating the necessary Vagrant configurations. When the Hosts.rb script encounters a host configuration that includes roles, it automatically applies these roles during the provisioning process. There's no need for additional modifications in Hosts.rb for this purpose, as the script is designed to handle role application based on the Hosts.yml configurations.

By following these steps, you can seamlessly integrate STARTcloud Roles with the Core Provisioner, leveraging the power of Ansible roles to automate the configuration and security of your VMs. This approach enhances the flexibility and extensibility of your provisioning process, allowing for a more declarative and manageable setup.

Roadmap

See the open issues for a list of proposed features (and known issues).

Provider Support

Provider Supported by STARTcloud Roles
VirtualBox Yes
Bhyve/Zones Yes
VMware Fusion No
Hyper-V No
Parallels No
AWS EC2 Yes
Google Cloud No
Azure No
DigitalOcean No
Linode No
Vultr No
Oracle Cloud No
OpenStack No
Rackspace No
Alibaba Cloud No
Aiven No
Packet No
Scaleway No
OVH No
Exoscale No
Hetzner Cloud No
KVM Yes
QEMU Yes
Docker Desktop No
HyperKit No
WSL2 No

Built With

  • Vagrant - Portable Development Environment Suite.
  • VirtualBox - Hypervisor.
  • Ansible - Virtual Machine Automation Management.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the SSLP v3 License - see the LICENSE.md file for details

Acknowledgments

  • Hat tip to anyone whose code was used