CDK Construct for creating an Amazon Linux EC2 instance with pre-installed software
Project description
CDK Preinstalled Amazon Linux EC2 Instance Construct
This is a CDK Construct for creating a preinstalled AmazonLinux EC2 instance.
You can use Node.js, Visual Studio Code, git and other software as soon as the EC2 instance starts.
Usage
Install the package:
npm install cdk-preinstalled-amazon-linux-ec2
Use it in your CDK stack:
import { PreinstalledAmazonLinuxInstance } from 'cdk-preinstalled-amazon-linux-ec2';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
declare const vpc: ec2.IVpc;
// You can configure all properties of the EC2 instance
new PreinstalledAmazonLinuxInstance(this, 'Instance', {
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.NANO),
machineImage: new ec2.AmazonLinuxImage({
generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2023,
}),
// Specify preinstalled software
preinstalledSoftware: {
packages: [
PreinstalledSoftwareType.NODEJS,
PreinstalledSoftwareType.VSCODE,
PreinstalledSoftwareType.GIT,
],
others: ['rsyslog'], // You can specify other software packages. These parameters are used as `sudo dnf install ${parameter}`
});
After the stack is deployed, you can SSH into the EC2 instance and use Node.js:
$ ssh ec2-user@<public-ip>
$ node --version
v20.13.1
$ code --version
1.89.1
$ git --version
git version 2.39.3
user data
Installation of software is done by user data script. You can see the script in the src/index.ts
file.
// Install Node.js
userData.addCommands(
'touch ~/.bashrc',
'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash',
'source ~/.bashrc',
'export NVM_DIR="$HOME/.nvm"',
'[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"',
`nvm install ${props.nodeJsVersion ?? '--lts'}`,
// Note that the above will install nvm, node and npm for the root user.
// It will not add the correct ENV VAR in ec2-user's environment.
`cat <<EOF >> /home/ec2-user/.bashrc
export NVM_DIR="/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
EOF`);
Ofcourse, you can customize the additional user data script by calling instance.userData.addCommands()
method.
declare const instance: PreinstalledAmazonLinuxInstance;
// install yarn
instance.userData.addCommands(
'npm install -g yarn'
);
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for cdk-preinstalled-amazon-linux-ec2-0.0.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c39a1386c39f3d7a8cb017ad5956c2cacd5717d6de449a11972db1711f9526a |
|
MD5 | ed692a98a3a4f20055c3f50d3e9e4be5 |
|
BLAKE2b-256 | 33a8f616eb260d6b2ab92bef37adb9fd0adecb037c12fde0e6a781d094a2df4f |
Close
Hashes for cdk_preinstalled_amazon_linux_ec2-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a361d5c87da4915bbac874470133702b57fc1c0bd5c05c8362ed4ed79d6ee057 |
|
MD5 | 165f8e34dfefedf4ab3f5c0bdb5a64c2 |
|
BLAKE2b-256 | 4619d5d6bf62c010f439b8db14328d565edc647bd6f70599bf0934a0c15f22e0 |