Skip to content

Repository files navigation

STARTcloud Roles

STARTcloud Roles logo

Documentation for STARTcloud Roles

Explore the docs »

Report Bug · Request Feature

Table of Contents

About the Project

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.

Roles

The collection ships 140 roles covering base system setup, services, databases, desktops, and appliance targets — browse them under roles/. Every role carries its own README.md describing what it does and a meta/argument_specs.yml documenting every variable it accepts.

Including STARTcloud Roles

Releases are built by release-please from conventional commits: every release carries an immutable startcloud-startcloud_roles-<version>.tar.gz (plus a mutable startcloud-startcloud_roles.tar.gz "latest" alias) with .sha256 sidecars — the same artifact contract the provisioner catalog uses. Vendor the collection into a provisioner from the artifact instead of a git submodule:

ansible-galaxy collection install \
  https://github.com/STARTcloud/startcloud_roles/releases/latest/download/startcloud-startcloud_roles.tar.gz \
  -p provisioners/ansible_collections

Or pin a version in a requirements.yml:

collections:
  - name: https://github.com/STARTcloud/startcloud_roles/releases/download/v1.0.3/startcloud-startcloud_roles-1.0.3.tar.gz

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 and service_user roles from STARTcloud Roles should be applied to all hosts via all.

  2. 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 GPL-2.0-or-later License - see the LICENSE.md file for details

Acknowledgments

  • Hat tip to anyone whose code was used

About

STARTcloud Ansible Roles

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages