Snippets
Created by
Azat Kurbanov
last modified
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | from bottle import route, run, response
def ec2_format(func):
def inner(*args, **kwargs):
iterable = func(*args, **kwargs)
response.content_type = 'text/plain'
return '\n'.join(iterable)
return inner
@route('/')
@ec2_format
def versions():
return [
'1.0',
'2007-01-19',
'2007-03-01',
'2007-08-29',
'2007-10-10',
'2007-12-15',
'2007-02-01',
'2007-09-01',
'2007-04-04',
'2011-01-01',
'2011-05-01',
'2011-01-12',
'2012-02-25',
'latest',
]
@route('/<version>')
@route('/<version>/')
@ec2_format
def list_contents(version):
return [
'meta-data/',
'user-data',
]
@route('/<version>/meta-data')
@route('/<version>/meta-data/')
@ec2_format
def metadata(version):
return [
'instance-id',
'hostname',
'public-hostname',
'local-hostname',
'local-ipv4',
'public-ipv4',
'public-keys/',
]
@route('/<version>/meta-data/instance-id')
@route('/<version>/meta-data/instance-id/')
@ec2_format
def instance_id(version):
return ['i-42']
@route('/<version>/meta-data/hostname')
@route('/<version>/meta-data/hostname/')
@route('/<version>/meta-data/public-hostname')
@route('/<version>/meta-data/public-hostname/')
@route('/<version>/meta-data/local-hostname')
@route('/<version>/meta-data/local-hostname/')
@ec2_format
def hostname(version):
return ['cdistex']
@route('/<version>/meta-data/local-ipv4')
@route('/<version>/meta-data/local-ipv4/')
@route('/<version>/meta-data/public-ipv4')
@route('/<version>/meta-data/public-ipv4/')
def ip_address(version):
return ['192.168.122.121']
@route('/<version>/meta-data/public-keys')
@route('/<version>/meta-data/public-keys/')
@ec2_format
def public_keys(version):
return ['0=my-public-key']
@route('/<version>/meta-data/public-keys/0')
@route('/<version>/meta-data/public-keys/0/')
@ec2_format
def first_public_key(version):
return ['openssh-key']
@route('/<version>/meta-data/public-keys/0/openssh-key')
@route('/<version>/meta-data/public-keys/0/openssh-key/')
@ec2_format
def first_public_key_contents(version):
return ['ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/jiZrVxSSh8caGaOZD1KSLHZKh/mmbEkwDymls8dV03313zYHhdea71pdnt/ldbDfo/NBqoBPmOul7uNpYT0uSWsS657HOBXimuJhmHC09JUlsEOYOdwbwVR1IFKrANA7J1DgtRKvmeqPPXOSXcDzMKCs6jzEDxFiPDgkt48wLNxB/yKkT0IK9GnKTfvondZzBkHqQvDep+px72dCdObRXpiY9v/kJ0itRBJ+L52EUOTlpe52H3c46/1RqjU9IhRNxRw4WRx5dFcwswofnbmDXj6cM5k6cPccDBSYIMwBglAApAckcbt8JQybtfQ10saHVbJHuBARsuciIucO/COT198tmI30NlomB2saz8b/xL5Pz77ATDYUC/92Re4Q5Pli/oCjq4tUARFwyknH8Ai+rDl0JDgU/+uejHv02nsq1KuaNajZlx6ATPMKJ8/751oGlTrgo8NSu1/j+Q3J35gcO6tCSUZGueWu7/bx61d3/xJLtHzB8kBHksIIcNDjRBnMu490VEOcWsq6P67c2lEuUJmMDOIonvXOW9SYhNNyEXEUTtXq+3xe5AeyXZgidqeKNVtHyK/6LzT4zpG56OBSJc87C8MiQ8KQYua/NWAurdcb8XZFqfj/Yh8ZUH1vRG8XpIgKshhDxyE0L7a81x5oti8AzZ79NCwMdeRwpcUmTw== cordalace@crdgen.local']
@route('/<version>/user-data')
@route('/<version>/user-data/')
def user_data(version):
response.content_type = 'text/cloud-config'
return (
'#cloud-config\n'
'\n'
'users:\n'
' - default\n'
' - name: ubuntu\n'
# openssl passwd -1 "strong_password"
' - passwd: $1$.I.MHI0K$46DmbKESe56EyRyJykep20\n'
' - groups: wheel\n'
'\n'
'manage-resolv-conf: true\n'
'\n'
'resolv_conf:\n'
" - nameservers: ['8.8.8.8', '8.8.4.4']\n"
)
run(host='169.254.169.254', port='80', debug=True)
|
Comments (0)
You can clone a snippet to your computer for local editing. Learn more.