Re-implementation of cfjump on Alpine Linux with the purpose of reduce its size.
Jumpbox Docker image with most of the required tools to install and operate Cloud Foundry from the command line. It works with different workflows, and includes several tools to work with OpsManager and other Pivotal-specific components. It also includes some IaaS-specific CLI tools for OpenStack, AWS, GCP, and Azure.
It has been tested only on an Ubuntu Server 16.04 (Xenial) 64-bit Docker host VM. Your mileage on other systems may vary.
v0.2 includes:
- gliderlabs/alpine base image
- Several Linux troubleshooting tools like
iPerf
,nmap
andtcpdump
. - Golang (1.6)
bosh-init
(latest)- BOSH CLI (latest)
bosh-cli
(latest) Golang implementation of the BOSH CLI. Early Alpha.cf
CLI (latest)- uaac CLI
- Concourse
fly
CLI (latest) - asg-creator (latest) A cleaner way to create and manage ASGs.
- Deployadactyl (latest). Go library for deploying applications to multiple Cloud Foundry instances.
- cfops (latest) automation based on the supported way to back up Pivotal Cloud Foundry
- PivNet CLI
pivnet
(experimental, early Alpha) CLI (latest) - OpsMan-cli (CLI to interact with OpsManager).
- cf-mgmt (latest) Go automation for managing orgs, spaces that can be driven from concourse pipeline and git-managed metadata.
- bosh-bootloader Command line utility for standing up a CloudFoundry or Concourse installation on an IAAS of your choice.
- OpenStack CLI (latest), both, legacy
nova
,cinder
,keystone
, etc commands as well as the neweropenstack
integrated CLI. - Terraform (0.7.4)
- Microsoft Azure CLI (latest)
- Google Compute Cloud CLI (latest)
- AWS CLI (latest)
- Vault (latest)
safe
CLI, an alternative Vault CLI (latest)- certstrap (latest)
- Spiff (latest)
- Spruce (latest)
- Genesis (latest)
- s3cmd (latest). Command line to work with S3 endpoints.
- Enaml (update program only). Deploy Cloud Foundry without YAML.
- Photon Controller CLI
First, make sure you can run instances as a regular unprivileged user. This container will create an internal user with uid and gid of 1000, same as the default in Ubuntu, which makes easier to share folders with the host.
The included cfja
script make the operation of virtual jumpboxes easy. Copy it to a directory in your $PATH and use it to interact with the virtual jumpboxes. The operation is:
cfja list
(or simplycfja
with no arguments) to list the running containers.cfja <name>
to either create or enter a container.cfja kill <name>
to delete a running container. The associated shared volume won't be deleted. That needs to be done manually if desired. You can also specifycfja kill all
, which will destroy all running (or stopped) jumpbox containers.
You can use different jumpbox instances for different sessions, users, environments, etc, as long as you use different shared folders.
You can just get this image from Docker Hub by running:
docker pull ramxx/cfjump-alpine:latest
Or if you prefer to build it yourself:
git clone https://github.com/RamXX/cfjump-alpine
cd cfjump-alpine
docker build -t ramxx/cfjump-alpine:latest .
Every instance of a container can only be used by a single user at the time. If another user attempts to join the same container while being used, all screen I/O will be duplicated in each screen.
It may be possible to use an sshd
daemon to support multiple sessions, but that's outside the scope of this work.
Additionally, man
pages are not installed in this image to decrease its size. Typically, man pages can be accessed on the Docker host itself or easily found online.
Please submit pull requests with any correction or improvement you want to do. I hope this is useful to others.