Simple bootstrapper project to
- Deploy EC2 Instance
- Install Ubuntu Desktop + TigerVNC
- Install RViz + Ros tooling
- Download and setup Ford AV Data
├── Config
├── README.md # Helper file with instructions on how to use the app
├── bootstrap.js # Bootstrapping script to help you configure your app settings
├── cdk.json # CDK configuration file, includes settings created by bootstrap.js
├── index.ts # CDK app and stack file
├── ssm.sh # Shell script to start SSM Port forwarding session to your machine
└── user-data
└── rviz-setup.sh # Script executed on EC2 first boot. Sets up VNC + RVIZ
- Nodejs
npm install
npm run project-bootstrap
// Configures cdk.json context and creates SSM Parameters
- Ensure you've run the bootstrapping scripts above and check your values in
cdk.json
$ npm run cdk deploy"
- Wait for the bootstrapping to finish. This can take up to 15 minutes.
To see the progress:
- SSH into the machine:
$ ./ssm.sh ssh
(If you encounter "is not connected error see below") - Switch to ubuntu user:
$ sudo su ubuntu
- Tail the log and wait for user-data script to finish:
$ tail -f /var/log/cloud-init-output.log
- SSH into the machine:
- Run port forwarding to connect via VNC
$ ./ssm.sh vnc
- Use your VNC client to connect to
vnc://localhost:5901
using the password set during bootstrpping.
Follow the troubleshooting guide here for this specific error
In some cases, an outdated version of SSM could be the cause. To update SSM on the instance you can use the following guide SSM Run Command Guide
- On the VNC session GUI open a new terminal
cd ~/catkin_ws
- Run
./0-run-all.sh
to launch the demo
npm run build
compile typescript to jsnpm run watch
watch for changes and compilenpm run test
perform the jest unit testscdk deploy
deploy this stack to your default AWS account/regioncdk diff
compare deployed stack with current statecdk synth
emits the synthesized CloudFormation template
See CONTRIBUTING for more information.
This project uses SSM Parameter Store Secure Strings to store the VNC password which is read only once when executing the user-data bootstrap script.
SecureString parameter values are encrypted using KMS. For more information see the following guide on how AWS Systems Manager Parameter Store uses AWS KMS.
Since we do not require advanced features provided by AWS Secrets Manager such as password generation, rotation or cross account access, SecureString parameters are sufficient.
This library is licensed under the MIT-0 License. See the LICENSE file.