obdi-aws-p2ec2

module
v0.0.0-...-743681e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2017 License: GPL-3.0

README

obdi-aws-p2ec2

Creates AWS EC2 Instances from Full System Backups.

Dependencies: obdi-aws-ec2lib

Known Users: obdi-rsyncbackup

Todo

Screenshot

What is it?

This plugin writes files to a volume mounted into AWS management instance ultimately creating a new AWS instance from those files.

No entry is made in the sidebar for this plugin since this plugin is accessed from other compatible plugins.

For example, when this plugin is installed, the obdi-rsyncbackup plugin will show a 'Create Amazon EC2 Instance' button in the file viewer when it thinks it has found a root filesystem. Pressing the button will take the user to this plugin and allow them to create an Amazon Virtual Machine.

Installation

Installing the plugin

Configuration

Set the AWS_ACCESS_KEY_ID_1 json object in the environment, using the Admin interface.

{
    "Aws_access_key_id":"ALIENX2KD6OINVA510NQ",
    "Aws_secret_access_key":"wHdlwoigU637fgnjAu+IRNVHfT-EXnIU5C2MbiQd",
    "Aws_obdi_worker_instance_id":"i-e29eg362",
    "Aws_obdi_worker_region":"us-east-1",
    "Aws_obdi_worker_url":"https://1.2.3.4:4443/",
    "Aws_obdi_worker_key":"secretkey",
    "Aws_filter":"key-name=groupkey",
    "Aws_keyname":"groupkey",
    "Aws_securitygroups":["groupkey"],

    "Aws_dnsserver_ip":"10.17.3.163",
    "Aws_dnsdomain":"karmalab.net",
    "Aws_gateway":"10.17.0.1",
    "Aws_obdi_worker_ip":"172.31.16.14",
    "Aws_shell_user_name":"centos",
    "Aws_shell_ssh_key_b64":"LS0tLSTXdURGxLU...1ySBQUklWQVRFIEtFWS0tLS0t"
}

The following variables are used up until OS modifications by the Javascript/HTML code.

Aws_access_key_id

AWS API access key ID

Aws_secret_access_key

AWS API password

Aws_obdi_worker_instance_id

The AWS instance that contains the Obdi worker. This AWS instance will be used to copy, mount and modify the backup image.

Aws_obdi_worker_region

The region the Obdi worker resides in.

Aws_obdi_worker_url

The URL used to access the Obdi worker.

Aws_obdi_worker_key

The password for the Obdi worker.

Aws_filter

The global filter to apply, if any. For example, you might want to filter all results by 'key-name=ourkeyname' or 'owner-id=25513944296'.

Aws_keyname

The key name used when creating a new EC2 Instance.

Aws_securitygroups

List of security group IDs (not names) that instances will belong to when creating a new EC2 Instance. This option should be called Aws_securitygroupids.

Aws_subnetid

A subnet ID of a subnet to put the new instance in.

The following variables are used by the Bash script when modifying the OS:

Aws_dnsserver_ip and Aws_dnsdomain

Should both be set to avoid an error message. Affects the final '/etc/resolv.conf'.

Aws_gateway

Affects the networking in '/etc/sysconfig/network-scripts/ifcfg-eth0'.

Aws_obdi_worker_ip

The IP address of the AWS instance, Aws_obdi_worker_instance_id. This is the address as seen from the Backup server.

Aws_shell_user_name

User name to use to connect to Aws_obdi_worker_ip using ssh.

Aws_shell_ssh_key_b64

The base64 encoded key file.

Dev

get-not-so-secret-data

Gets Json Object Capability data for AWS_ACCESS_KEY_ID_1 for an environment. This data will be stored in the Browser's DOM so Aws_secret_access_key and Aws_obdi_worker_key have obfuscated values.

# Log in

$ ipport="127.0.0.1:443"

$ guid=`curl -ks -d '{"Login":"nomen.nescio","Password":"password"}' \
  https://$ipport/api/login | grep -o "[a-z0-9][^\"]*"`

# Get [not-so-] secret AWS data from the Capability AWS_ACCESS_KEY_ID_1

$ curl -k "https://$ipport/api/nomen.nescio/$guid/aws-p2ec2/get-not-so-secret-data?env_id=1"

osedits-centos6

TODO: Document parameter options.

TODO: Document req params for capability object.

Edits Centos 6 OS.

# Log in

$ ipport="127.0.0.1:443"

$ guid=`curl -ks -d '{"Login":"nomen.nescio","Password":"password"}' \
  https://$ipport/api/login | grep -o "[a-z0-9][^\"]*"`

# Edit the OS

$ curl -ks -X POST "https://$ipport/api/nomen.nescio/$guid/aws-p2ec2/osedits-centos6?env_id=1&task_id=1&path=/nosnap/centosbox004&force=true&umountdir=true"

Directories

Path Synopsis
go
src/github.com/go-sqlite3
Package sqlite3 provides interface to SQLite3 databases.
Package sqlite3 provides interface to SQLite3 databases.
src/github.com/jinzhu/inflection
Package inflection pluralizes and singularizes English nouns.
Package inflection pluralizes and singularizes English nouns.
src/github.com/lib/pq
Package pq is a pure Go Postgres driver for the database/sql package.
Package pq is a pure Go Postgres driver for the database/sql package.
src/github.com/lib/pq/listen_example
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
src/github.com/lib/pq/oid
Package oid contains OID constants as defined by the Postgres server.
Package oid contains OID constants as defined by the Postgres server.
src/github.com/mattn/go-sqlite3
Package sqlite3 provides interface to SQLite3 databases.
Package sqlite3 provides interface to SQLite3 databases.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL