-
*
- This project is provided as-is, and is not an official or *
- Supported Red Hat project. We will happily accept issues and *
- Pull Requests and provide basic OSS level community support *
This project contains a set of modules for working with ROSA as well as some example playbooks.
Will create/delete ROSA clusters but if you know how to work ansible inventories, it can do multiple clusters. By default the cluster will be a single-az public cluster on a BYO VPC network with STS enabled. modify the inventory in environment/default
to enable private-link or modify networks.
-
Create a Red Hat account, if you do not already have one. Then, check your email for a verification link. You will need these credentials to install ROSA.
-
Download and install the AWS cli
-
Download and install the ROSA cli 1.0.9+
-
Enable the ROSA service in AWS.
- Sign in to your AWS account.
- Go to the ROSA service and select Enable.
To authenticate to AWS / ROSA you can use the tools directly to auth or set ansible variables and let it do it for you.
-
Configure aws cli
aws configure
-
Configure rosa
rosa login
- Clone down the repo:
git clone https://github.com/rh-mobb/ansible-rosa.git
cd ansible-rosa
- Create python virtualenv:
make virtualenv
This will deploy a single-az cluster with STS enabled.
See
./environment/default/group_vars/all.yaml
for the example inventory used. You can modify this file to change the cluster configuration.
- Create:
make create
- Delete:
make delete
See
./environment/transit-gatewa-egress/group_vars/all.yaml
for the example inventory used. You can modify this file to change the cluster configuration.
This will deploy a fairly complex cluster with STS enabled, Transit Gateway, and PrivateLink. Along with the ROSA VPC it will create an Egress VPC with a NAT Gateway and a Squid based proxy (configured to restrict cluster egress to just the allowed endpoints). It places a SSH Bastion in the Egress VPC in order to provide easy access to the cluster (sshuttle ftw). It also creates an infrastructure VPC which is where you might connect your Datacenter or VPN connections too, this has a DNS forwarder to help with DNS resolution.
- Create:
make create.tgw
- Delete:
make delete.tgw
-
Build the docker image
make image
-
Create the cluster (do one of the following)
- If you've already logged in locally:
make docker.create
- If you want to let ansible log you in (fill out the variables):
docker run -ti -e AWS_ACCESS_KEY_ID="" \ -e AWS_SECRET_ACCESS_KEY="" -e ROSA_TOKEN="" \ quay.io/pczar/ansible-rosa \ ansible-playbook create-cluster.yaml
-
Delete the cluster
make docker.delete
or
docker run -ti -e AWS_ACCESS_KEY_ID="" \ -e AWS_SECRET_ACCESS_KEY="" -e ROSA_TOKEN="" \ quay.io/pczar/ansible-rosa \ ansible-playbook delete-cluster.yaml