Documentation for STARTcloud Roles
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
- About the Project
- Key Features
- Galaxy Role File Structure
- Roadmap
- Contributing
- License
- Contact
- Acknowledgements
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.
- 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.
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.
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
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
.
- Reference Roles in
Hosts.yml
: Within theHosts.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 theroles
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
.
- Execution in
Hosts.rb
: TheHosts.rb
script is responsible for interpreting theHosts.yml
file and generating the necessary Vagrant configurations. When theHosts.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 inHosts.rb
for this purpose, as the script is designed to handle role application based on theHosts.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.
See the open issues for a list of proposed features (and known issues).
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 |
- Vagrant - Portable Development Environment Suite.
- VirtualBox - Hypervisor.
- Ansible - Virtual Machine Automation Management.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
- Joel Anderson - Initial work - JoelProminic
- Justin Hill - Initial work - JustinProminic
- Mark Gilbert - Refactor - MarkProminic
See also the list of contributors who participated in this project.
This project is licensed under the SSLP v3 License - see the LICENSE.md file for details
- Hat tip to anyone whose code was used