POTBOILER - Improving Dx using Ansible Playbook
In this blog entry, I want to share step by step guide in using potboiler to set up a MacBook with required configuration need for accessing NocoDB.
Using this Ansible Playbook, we can do following things:
- Installing common packages.
- Install ec2 instance connect cli through pip
- Check session-manager-plugin is installed
- Install session-manager-plugin
- checking ssh keypair already exist or not
- Generate an OpenSSH keypair
- copying ssh config content
- checking if .aws directory exists
- Creates .aws directory
- sso config for blackhole
- sso config for team
- running shell for generating file with export and alias cmd
- adding ssh key send and sshuttle cmd to generated file
Prerequisite
1. open the Terminal, copy and run the below command to install brew, python3, git and ansible
sh -c "$(curl -fsSL https://gist.githubusercontent.com/pavi-wego/b2914127d74f091d11b8641408ce7585/raw/c757b922012b936278dd96fb74c75609db92b459/install_software.sh)"
note: Based on the mac type(intel/M1), it will install brew, ansible, python3 and git. Get skipped if it is already installed
2. clone the potboiler repo
3. change the directory to potboiler after cloning,
cd potboiler
Getting started
make install.sh executable and run ./install.sh
chmod +x install.sh
./install.sh
note:
- select the ssh key, if not present will create one with user name under ~/.ssh. if already present, will list the keys in path ~/.ssh, select the key by typing the name while prompting for value
- select the team for sso configure, support multiple team as well. just need to type the team name from available team and press CTRL+D to end reading from standard-input.
- Provide filename (without extension) and directory (absolute path) to generate a file with export and alias cmd
- source it inside your profile file
To run only one task in ansible playbook
If you wanted to just run a part of a playbook
ansible-playbook <<playbook_name>> --tags "<<tag_name>>"
On the other hand, if you want to run a playbook without certain tasks,
ansible-playbook <<playbook_name>> --skip-tags "<<tag_name>>"
Connecting to private service using file generated via ansible playbook
1. step to connect nocodb staging
- sso login to blackhole staging
- send ssh key to blackhole
- do sshuttle
- Access this link https://nocodb.staging.bezurk.org/dashboard/ to connect nocodb staging
2.Instead of typing the whole cmd,
aws sso login --profile <<profilename>>
Just type alias name (present in file generated as a part of playbook) in terminal
alias <<aliasname>>=<<< cmd... >>>