Skip to main content

tempor

Build Status Coverage Python Version Pypi Version Pypi Downloads Twitter

tempor is a tool used for creating ephemeral infrastructure in the cloud. tempor has the ability to create an arbitrary number of servers via Terraform, ideal for penetration testers and bug hunters.

AWS supports authentication through ENV variables, profile or API tokens in the config file.

Custom Ansible playbook supported using --ansible flag.

Custom Packer config supported using --packer flag.

Check out the examples/ folder for Ansible and Packer examples

:moneybag: Referrals - Get Free Credit! :moneybag:

DigitalOcean Referral Badge

Vultr
Linode

:heavy_plus_sign: Install

python3 -m pip install --user tempor

:wrench: Dependencies

  • Python >= 3.11
  • Windows - WSL only

:gear: Configuration

# ~/.config/tempor/config.yml

providers:
  -
    name: digitalocean
    region: nyc1
    image: ubuntu-20-04-x64
    resources: s-1vcpu-1gb
    api_token:
  -
    name: linode
    region: us-east
    image: linode/ubuntu20.04
    resources: g6-standard-1
    api_token:
  -
    name: vultr
    region: ewr
    image: 387
    resources: vc2-1c-1gb
    api_token:
  -
    name: aws
    region: us-east-1
    image: ami-04505e74c0741db8d
    resources: t2.micro
    api_token:
      profile:    # Optional
      access_key: # Optional
      secret_key: # Optional
  -
    name: gcp
    region: us-east1
    zone: us-east1-b
    image: ubuntu-os-cloud/ubuntu-1804-lts
    resources: f1-micro
    api_token:
      auth_file:
      project:
  -
    name: azure
    region: westus2
    image: Canonical/UbuntuServer/18_04-lts-gen2
    resources: Standard_F2
    api_token:
      subscription_id:
      client_id:
      client_secret:
      tenant_id:

:interrobang: Usage

❯ tempor --help
usage: tempor [-h] {digitalocean,linode,vultr,aws,gcp,azure} ...

positional arguments:
  {digitalocean,linode,vultr,aws,gcp,azure}

options:
  -h, --help            show this help message and exit
  -t TEARDOWN, --teardown TEARDOWN
                        Name of VPS Image to Tear down
  -u, --update          Check for Upates
  --version             Print current version

❯ tempor linode --help --additional-info

usage: tempor linode [-h] [--image image] [--region region] [-s] [-l] [-b] [-m] [--teardown]

options:
  -h, --help            show this help message and exit
  -c, --count           Number of images to create
  --image image         Specify the OS Image
  --region region       Specify the Region to Host the Image
  --resources resource  Specify the hardware resources for the host image
  -s, --setup           Create a VPS
  --ansible ansible     Specify Ansible playbook for custom configuration (Path to main.yml file)
  --packer packer       Specify Packer config for custom configuration (Path to *.pkr.hcl file)
  --additional-info     Displays available regions, images, and resources (with --help)

          Regions
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ ID           ┃ Location ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ ap-west      │ in       │
│ ca-central   │ ca       │
│ ap-southeast │ au       │
│ us-central   │ us       │
│ us-west      │ us       │
│ us-southeast │ us       │
│ us-east      │ us       │
│ eu-west      │ uk       │
│ ap-south     │ sg       │
│ eu-central   │ de       │
│ ap-northeast │ jp       │
└──────────────┴──────────┘
                           Images x86-64
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ID                            ┃ Name                            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ linode/almalinux8             │ AlmaLinux 8                     │
│ linode/alpine3.12             │ Alpine 3.12                     │
│ linode/alpine3.13             │ Alpine 3.13                     │
│ linode/alpine3.14             │ Alpine 3.14                     │
│ linode/alpine3.15             │ Alpine 3.15                     │
│ linode/arch                   │ Arch Linux                      │
│ linode/centos7                │ CentOS 7                        │
│ linode/centos-stream8         │ CentOS Stream 8                 │
│ linode/centos-stream9         │ CentOS Stream 9                 │
│ linode/debian10               │ Debian 10                       │
│ linode/debian11               │ Debian 11                       │
│ linode/debian9                │ Debian 9                        │
│ linode/fedora34               │ Fedora 34                       │
│ linode/fedora35               │ Fedora 35                       │
│ linode/gentoo                 │ Gentoo                          │
│ linode/debian11-kube-v1.20.15 │ Kubernetes 1.20.15 on Debian 11 │
│ linode/debian9-kube-v1.20.7   │ Kubernetes 1.20.7 on Debian 9   │
│ linode/debian9-kube-v1.21.1   │ Kubernetes 1.21.1 on Debian 9   │
│ linode/debian11-kube-v1.21.12 │ Kubernetes 1.21.12 on Debian 11 │
│ linode/debian11-kube-v1.21.9  │ Kubernetes 1.21.9 on Debian 11  │
│ linode/debian9-kube-v1.22.2   │ Kubernetes 1.22.2 on Debian 9   │
│ linode/debian11-kube-v1.22.6  │ Kubernetes 1.22.6 on Debian 11  │
│ linode/debian11-kube-v1.22.9  │ Kubernetes 1.22.9 on Debian 11  │
│ linode/debian11-kube-v1.23.4  │ Kubernetes 1.23.4 on Debian 11  │
│ linode/debian11-kube-v1.23.6  │ Kubernetes 1.23.6 on Debian 11  │
│ linode/opensuse15.3           │ openSUSE Leap 15.3              │
│ linode/rocky8                 │ Rocky Linux 8                   │
│ linode/slackware14.2          │ Slackware 14.2                  │
│ linode/slackware15.0          │ Slackware 15.0                  │
│ linode/ubuntu16.04lts         │ Ubuntu 16.04 LTS                │
│ linode/ubuntu18.04            │ Ubuntu 18.04 LTS                │
│ linode/ubuntu20.04            │ Ubuntu 20.04 LTS                │
│ linode/ubuntu21.10            │ Ubuntu 21.10                    │
│ linode/ubuntu22.04            │ Ubuntu 22.04 LTS                │
│ linode/alpine3.11             │ Alpine 3.11                     │
│ linode/centos8                │ CentOS 8                        │
│ linode/fedora33               │ Fedora 33                       │
│ linode/opensuse15.2           │ openSUSE Leap 15.2              │
│ linode/slackware14.1          │ Slackware 14.1                  │
│ linode/ubuntu21.04            │ Ubuntu 21.04                    │
└───────────────────────────────┴─────────────────────────────────┘
                         Hardware Resources
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ID               ┃ Price      ┃ Description                      ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ g6-nanode-1      │ $0.0075/hr │ Nanode 1GB                       │
│ g6-standard-1    │ $0.015/hr  │ Linode 2GB                       │
│ g6-standard-2    │ $0.03/hr   │ Linode 4GB                       │
│ g6-standard-4    │ $0.06/hr   │ Linode 8GB                       │
│ g6-standard-6    │ $0.12/hr   │ Linode 16GB                      │
│ g6-standard-8    │ $0.24/hr   │ Linode 32GB                      │
│ g6-standard-16   │ $0.48/hr   │ Linode 64GB                      │
│ g6-standard-20   │ $0.72/hr   │ Linode 96GB                      │
│ g6-standard-24   │ $0.96/hr   │ Linode 128GB                     │
│ g6-standard-32   │ $1.44/hr   │ Linode 192GB                     │
│ g7-highmem-1     │ $0.09/hr   │ Linode 24GB                      │
│ g7-highmem-2     │ $0.18/hr   │ Linode 48GB                      │
│ g7-highmem-4     │ $0.36/hr   │ Linode 90GB                      │
│ g7-highmem-8     │ $0.72/hr   │ Linode 150GB                     │
│ g7-highmem-16    │ $1.44/hr   │ Linode 300GB                     │
│ g6-dedicated-2   │ $0.045/hr  │ Dedicated 4GB                    │
│ g6-dedicated-4   │ $0.09/hr   │ Dedicated 8GB                    │
│ g6-dedicated-8   │ $0.18/hr   │ Dedicated 16GB                   │
│ g6-dedicated-16  │ $0.36/hr   │ Dedicated 32GB                   │
│ g6-dedicated-32  │ $0.72/hr   │ Dedicated 64GB                   │
│ g6-dedicated-48  │ $1.08/hr   │ Dedicated 96GB                   │
│ g6-dedicated-50  │ $1.44/hr   │ Dedicated 128GB                  │
│ g6-dedicated-56  │ $2.88/hr   │ Dedicated 256GB                  │
│ g6-dedicated-64  │ $5.76/hr   │ Dedicated 512GB                  │
│ g1-gpu-rtx6000-1 │ $1.5/hr    │ Dedicated 32GB + RTX6000 GPU x1  │
│ g1-gpu-rtx6000-2 │ $3.0/hr    │ Dedicated 64GB + RTX6000 GPU x2  │
│ g1-gpu-rtx6000-3 │ $4.5/hr    │ Dedicated 96GB + RTX6000 GPU x3  │
│ g1-gpu-rtx6000-4 │ $6.0/hr    │ Dedicated 128GB + RTX6000 GPU x4 │
└──────────────────┴────────────┴──────────────────────────────────┘

❯ tempor linode -b
Generating new key pair...Done.
Preparing Configuration...Done.
Creating VPS...Done.
Configuring SSH Keys...Done.

VPS' now available!

ssh ljtilopnez100

❯ tempor linode --list
                                  Active VPS'
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ VPS Name      ┃ IP Address    ┃ Region  ┃ Image              ┃ Hardware      ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ ljtilopnez100 │ 66.228.46.192 │ us-east │ linode/ubuntu20.04 │ g6-standard-1 │
└───────────────┴───────────────┴─────────┴────────────────────┴───────────────┘

❯ tempor --teardown ljtilopnez100
Tearing down ljtilopnez100...Done.

Inspired by pry0cc/axiom.

Metadata

Release files for tempor 0.10.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tempor 0.10.3
File Size Uploaded
tempor-0.10.3.tar.gz 3.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for tempor 0.10.3
File Interpreter ABI Platform
tempor-0.10.3-py3-none-any.whl Python 3 none any Details

Total release size: 3.2 MB

Release files / tempor-0.10.3.tar.gz

Download URL tempor-0.10.3.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
65c7d7786c1ddf8a2522593f379628b1e4db962ca797b312a7f44348375877c6
BLAKE2b-256 checksum
How to use checksums
aa8f005caa0d6137acc0a22afd31b3798c1a5f92b8726be3aa3b076876374432
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Release files / tempor-0.10.3-py3-none-any.whl

Download URL tempor-0.10.3-py3-none-any.whl
Size 56.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3099f1a47e83486cec45ae2d223bc69b9c379540d576707f714934a3edce58b8
BLAKE2b-256 checksum
How to use checksums
8dcac7209dd39ed14c2fb0cfc7ee7f936fb42bdf6fab98cb6f74f89b0c97651d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Release history Release notifications | RSS feed

This release

0.10.3 This release

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.19

2 release files

0.5.16

2 release files

0.5.15

2 release files

0.5.14

2 release files

0.5.10

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page