Introduce packer support (#18)
cleanups and fixes, packer is ready to roll
add errorApi endpoint
initialize mitmproxy dependencies
packer deployments finally working
fix virtualenv call for ubuntu 20.04
WIP. update to ubuntu 20.04. fixing algo installation
WIP. packer fixes
remove unused constant
WIP. packer basics working for ec2
Merge branch 'master' of git.bubblev.org:bubblev/bubble into cobbzilla/introduce_packer
remove automation dir, all moved to resources
log pg autovacuum if longer than 250ms
touch install marker for algo
set mitmproxy as owner of all mitmproxy files
add hostname to packer image name
avoid closing progress meter prematurely
WIP. parallelize node startup, fix packer bugs
clarify docs
add missing vars, algo tweaks
add missing vars, update algo hash
WIP. improving algo/mitmproxy packer stuff
install packer for sage, call packer from proper location
Use compute driver to get regions
improve comments
wait longer before polling new vultr server, avoid spurious ok status
unquote simple filenames
WIP. Use packer key, no more instance ssh key. Change API installation. Simplify packer/ansible.
rename bubble_finalizer to just finalizer, remove default_roles
filter servers/images based on installType
for now, consider packer image OK if bubble version matches
add algo/mitm roles to packer. add installType to BubbleNode
fix NODE_ROLES file
templatize packer file and playbook, use same template for sage and node
WIP: refactor addAllRegions
WIP: do not re-create identical images
WIP: packer build for vultr now working
Merge branch 'master' of git.bubblev.org:bubblev/bubble into cobbzilla/introduce_packer
WIP. working on vultr packer builds
WIP: packer image creation working for digitalocean
WIP: packer basics working for digitalocean
add packer endpoints, introduce packer support to cloud compute drivers
remove roles endpoints
AnsibleRole is no longer an model entity. Introduce Packer.
Merge branch 'sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService' of git.bubblev.org:bubblev/bubble into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' of git.bubblev.org:bubblev/bubble into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Add instance count to script
Co-authored-by: Jonathan Cobb <jonathan@kyuss.org>
Co-authored-by: Svitlana <sfedoriv@itekako.com>
Reviewed-on: https://git.bubblev.org/bubblev/bubble/pulls/18
4 years ago Introduce packer support (#18)
cleanups and fixes, packer is ready to roll
add errorApi endpoint
initialize mitmproxy dependencies
packer deployments finally working
fix virtualenv call for ubuntu 20.04
WIP. update to ubuntu 20.04. fixing algo installation
WIP. packer fixes
remove unused constant
WIP. packer basics working for ec2
Merge branch 'master' of git.bubblev.org:bubblev/bubble into cobbzilla/introduce_packer
remove automation dir, all moved to resources
log pg autovacuum if longer than 250ms
touch install marker for algo
set mitmproxy as owner of all mitmproxy files
add hostname to packer image name
avoid closing progress meter prematurely
WIP. parallelize node startup, fix packer bugs
clarify docs
add missing vars, algo tweaks
add missing vars, update algo hash
WIP. improving algo/mitmproxy packer stuff
install packer for sage, call packer from proper location
Use compute driver to get regions
improve comments
wait longer before polling new vultr server, avoid spurious ok status
unquote simple filenames
WIP. Use packer key, no more instance ssh key. Change API installation. Simplify packer/ansible.
rename bubble_finalizer to just finalizer, remove default_roles
filter servers/images based on installType
for now, consider packer image OK if bubble version matches
add algo/mitm roles to packer. add installType to BubbleNode
fix NODE_ROLES file
templatize packer file and playbook, use same template for sage and node
WIP: refactor addAllRegions
WIP: do not re-create identical images
WIP: packer build for vultr now working
Merge branch 'master' of git.bubblev.org:bubblev/bubble into cobbzilla/introduce_packer
WIP. working on vultr packer builds
WIP: packer image creation working for digitalocean
WIP: packer basics working for digitalocean
add packer endpoints, introduce packer support to cloud compute drivers
remove roles endpoints
AnsibleRole is no longer an model entity. Introduce Packer.
Merge branch 'sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService' of git.bubblev.org:bubblev/bubble into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' of git.bubblev.org:bubblev/bubble into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Merge branch 'master' into sfedoriv/APIAddSupportForAmazonEC2ComputeCloudService
Add instance count to script
Co-authored-by: Jonathan Cobb <jonathan@kyuss.org>
Co-authored-by: Svitlana <sfedoriv@itekako.com>
Reviewed-on: https://git.bubblev.org/bubblev/bubble/pulls/18
4 years ago |
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- // ----------------------
- // Bubble Activation JSON
- // ----------------------
- //
- // Do not edit this file directly. Copy this file somewhere else and edit the copy.
- //
- // When you are happy with your edits, activate a blank bubble using:
- //
- // ./bin/bactivate /path/to/your/activation.json
- //
- // NOTE: In this file '//' is used for comments
- // Normally comments are not valid JSON, but when you run `bactivate` the Bubble toolchain strips out
- // the comments before sending the request to the Bubble server.
- //
-
- {
- ///////////////////////
- // Initial Admin
- ///////////////////////
-
- // email, password and description of the initial admin user
- "name": "root@local.local", // change this to an email address only you have access to
- "password": "REPLACE WITH YOUR ROOT PASSWORD",
- "description": "root user",
-
- "cloudConfigs" : {
- ///////////////////////
- // DNS
- ///////////////////////
-
- // You must configure at least one of these DNS services
- // Comment the other one out if you're not going to use it
- "Route53Dns" : {
- "credentials" : {
- "AWS_ACCESS_KEY_ID": "your_aws_access_key_id",
- "AWS_SECRET_KEY": "your_aws_secret_key"
- }
- },
-
- "GoDaddyDns" : {
- "credentials" : {
- "GODADDY_API_KEY": "your_godaddy_api_key",
- "GODADDY_API_SECRET": "your_godaddy_api_secret"
- }
- },
-
- ///////////////////////
- // Compute
- ///////////////////////
-
- // You must configure at least one of these Compute services
- // Comment the other one out if you're not going to use it
- "VultrCompute": {
- "credentials": {"API-Key": "your_vultr_api_key"}
- },
-
- "DigitalOceanCompute": {
- "credentials": {"apiKey": "your_digitalocean_api_key"}
- },
-
- // EC2 driver is incomplete, use one of the above instead
- "AmazonEC2Driver" : {
- "config": {
- // region must be a valid value from the Regions enum: https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/regions/Regions.java
- "region": "your_aws_region" // for example: us-east-1
- },
- "credentials" : {
- "AWS_ACCESS_KEY_ID": "your_aws_access_key_id",
- "AWS_SECRET_KEY": "your_aws_secret_key"
- }
- },
-
- // Docker can be used for testing or for advanced use cases
- // Leave this out if you're not going to use it
- // "DockerCompute": {
- // "config": {},
- // "credentials": {
- // // these are the default settings, change as needed
- // "host": "unix:///var/run/docker.sock",
- // "tlsVerify": "false", // if tlsVerify is "true" then certPath must be set
- // "certPath": null,
- // "registryUrl": null,
- // "registryUsername": null,
- // "registryEmail": null,
- // "registryPassword": null
- // }
- // },
-
- ///////////////////////
- // Storage
- ///////////////////////
-
- // LocalStorage is required, just leave this as-is.
- // If you really want, you can change the baseDir
- "LocalStorage": {
- "config": { "baseDir": ".bubble_local_storage" },
- "credentials": {}
- },
-
- // You must configure the AWS S3 Storage service in order to launch new Bubbles
- "S3Storage" : {
- "config": {
- // region must be a valid value from the Regions enum:
- // https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/regions/Regions.java
- "region": "US_EAST_1",
- "bucket": "must be a valid bucket name that the credentials can read/write/list/delete",
- "prefix": "", // optional: all paths for S3 operations will be prefixed with this path
- "listFetchSize": 100
- },
- "credentials" : {
- "AWS_ACCESS_KEY_ID": "your_aws_access_key_id",
- "AWS_SECRET_KEY": "your_aws_secret_key"
- }
- },
-
- ///////////////////////
- // Email
- ///////////////////////
-
- // You must configure an email service, it is required to send emails
- // Comment out the other ones out if you're not going to use them
- "SmtpEmail": {
- "config": { "tlsEnabled": true },
- "credentials": {
- "user": "your_smtp_username",
- "password": "your_smtp_password",
- "host": "your_smtp_server_hostname",
- "port": "your_smtp_server_port"
- }
- },
-
- "SendGridEmail": {
- "config": {},
- "credentials": {
- "apiKey": "your_sendgrid_api_key"
- }
- },
-
- "MailgunEmail": {
- "config": {},
- "credentials": {
- "domain": "your_mailgun_domain",
- "apiKey": "your_mailgun_api_key"
- }
- },
-
- ///////////////////////
- // TOTP Auth
- ///////////////////////
-
- // Required for TOTP-based authentication. Nothing to configure, just leave this as-is
- "TOTPAuthenticator": {},
-
- ///////////////////////
- // SMS
- ///////////////////////
-
- // Required for sending SMS messages. Currently only Twilio is supported
- // Comment this out if you're not going to use it
- "TwilioSms": {
- "credentials": {
- "accountSID": "your_twilio_account_SID",
- "authToken": "your_twilio_auth_token",
- // text messages sent by Bubble will come "from" this phone number, must be in Twilio-compatible format
- "fromPhoneNumber": "your_twilio_from_number"
- }
- },
-
- ///////////////////////
- // GeoLocation
- ///////////////////////
-
- // Required for locale and "nearest compute region" auto-detection.
- // Currently only MaxMind and Whois are supported.
-
- // MaxMind is free, but now requires registration and an API token.
- // Comment this out if you're not going to use it
- "MaxMindGeoLocation": {
- "config": {
- // these values work for the free GeoLite database, but you still have to specify an apiKey
- "url": "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=[[apiKey]]&suffix=tar.gz",
- "file": "GeoLite2-City_20[\\\\d]{6}/GeoLite2-City\\\\.mmdb"
- },
- "credentials": {"apiKey": "your_maxmind_api_key"}
- },
-
- // Whois is also free, but less accurate. It's worth a try if you have nothing better.
- "WhoisGeoLocation": {
- "config": {
- // Normally the default 'whois' settings are used.
- // If you want to pass `-h` and `-p` to whois to set the host and port
- // of another whois server to use, set the config params below
- "host": null,
- "port": null
- // If you're not going to change host/port, you can reduce this
- // config object to an empty JSON object {}
- },
- "credentials": {},
- "template": true
- },
-
- ///////////////////////
- // GeoCode
- ///////////////////////
-
- // Required for "nearest compute region" auto-detection. Currently only Google GeoCoder is supported
- // Comment this out if you're not going to use it
- "GoogleGeoCode": {
- "credentials": {"apiKey": "your_google_api_key"}
- },
-
- ///////////////////////
- // GeoTime
- ///////////////////////
-
- // Required for timezone auto-detection. Currently only Google GeoTime is supported
- // Comment this out if you're not going to use it
- "GoogleGeoTime": {
- "credentials": {"apiKey": "your_google_api_key"}
- }
- },
-
- ///////////////////////
- // Initial Domain
- ///////////////////////
-
- // initial domain that new Bubbles will be launched within
- "domain": {
- "publicDns": "Route53Dns or GoDaddyDns", // name of a DNS provider configured above
- "name": "example.com" // a domain name that you own, that is managed by the DNS provider named in `publicDns`
- },
-
- ///////////////////////
- // Expert Settings
- ///////////////////////
-
- // You can safely chop off everything from here down from your copy (well, except the closing curly-brace).
-
- // The settings below should rarely be changed, and omitting them is the same as not changing them.
- // You really shouldn't change them unless you know what you're doing.
-
- // -----------
- // skipTests
- // -----------
- //
- // Most of the cloud services you add above have "self-test" features in their Bubble driver.
- // Normally, Bubble will test each cloud driver to ensure that it is working properly before
- // allowing activation to proceed.
- //
- // The driver test can detect a lot of configuration problems, invalid API keys, and so on.
- // It's a good idea to leave the tests enabled.
- //
- // If, however, this is not the first time you've run with the exact same JSON file and you KNOW that
- // all the clouds/credentials/configs are correct, because they've passed tests before, then setting
- // this to true does save a little bit of time during activation.
- //
- // NOTE: DO NOT SET THIS TO true UNLESS YOU *KNOW* ALL YOUR DRIVERS ARE OK
- //
- // If the activation.json file has no `skipTests` property, then tests will be enabled
- //
- "skipTests": false, // set this to true to skip cloud driver tests
-
- // -----------
- // skipPacker
- // -----------
- //
- // Bubble needs to ensure that packer images are available on any cloud compute service where you could
- // launch a new Bubble. The easiest way to ensure this happens is to check for packer images immediately after
- // activation. This is the default behavior.
- //
- // It's a good idea to do this, because if the images don't exist, then Bubble won't check again until you're
- // about to launch your Bubble -- and then you take the 20-minute delay of building the image.
- //
- // If, however, you KNOW that the images exist, or you explicitly want to create them later using the
- // `pack_bubble` command, you can skip the packer check during activation by setting this to true
- //
- // NOTE: DO NOT SET THIS TO true UNLESS YOU *KNOW* THE PACKER IMAGES ARE VALID FOR YOUR CLOUD PROVIDER
- //
- // If the activation.json file has no `skipPacker` property, then packer images will be created during activation,
- // if not already present.
- //
- "skipPacker": false // set this to true to skip checking/creating packer images
-
- }
|