Amazon EC2
aws ec2 run-instances
--image-id ami-12345678
--instance-type t3.micro
--user-data file://script.yamlSets up a complete development environment with common tools
#cloud-config
package_update: true
package_upgrade: true
packages:
- git
- vim
- curl
- wget
- build-essential
- python3
- python3-pip
- nodejs
- npm
- default-jdk
- golang-go
- docker.io
- docker-compose
- code
- zsh
- tmux
- htop
- tree
- jq
users:
- name: developer
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/zsh
groups: docker
ssh_authorized_keys:
- ssh-rsa YOUR_SSH_KEY_HERE
write_files:
- path: /home/developer/.gitconfig
content: |
[user]
name = Developer
email = dev@example.com
[core]
editor = vim
[push]
default = simple
owner: developer:developer
runcmd:
# Install Oh My Zsh for developer user
- sudo -u developer sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Install Rust
- sudo -u developer curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# Install Python packages
- pip3 install virtualenv poetry black flake8 pytest
# Install Node.js packages
- npm install -g typescript nodemon eslint prettieraws ec2 run-instances
--image-id ami-12345678
--instance-type t3.micro
--user-data file://script.yamldoctl compute droplet create
--image ubuntu-22-04-x64
--size s-1vcpu-1gb
--user-data-file script.yaml
my-dropletgcloud compute instances create
my-instance
--metadata-from-file
user-data=script.yaml