Deployfish MySQL plugin
Project description
deployfish-mysql
deployfish-mysql is a plugin for deployfish that
allows you to manage databases in remote MySQL servers in AWS.
deploy mysql create {name}: Create database a database and user, with appropriateGRANTs.deploy mysql update {name}: Update the user's password andGRANTsdeploy mysql validate {name}: Validate that the username/password combination is validdeploy mysql dump {name}: Dump MySQL databases as SQL files to local file systems.deploy mysql load {name} {filename}: Load a local SQL file into remote MySQL databasesdeploy mysql show-grants {name}: Show GRANTs for your user
{name} above refers to the name of a MySQL connection from the mysql: section of your deployfish.yml file. See below for how the mysql: connection works.
Install deployfish-mysql
pip install deployfish deployfish-mysql
Configure deployfish-mysql
First follow the instructions for installing and configuring deployfish, then
add this stanza to your ~/.deployfish.yml file:
plugin.mysql:
enabled: true
NOTE: ~/.deployfish.yml is the config file for deployfish itself. This is different from the deployfish.yml file that defines your services and tasks.
Instrument your deployfish.yml
deployfish-mysql looks in your deployfish.yml file (the one with your services and task definitions, not the ~/.deployfish.yml config file for deployfish iteslf) for a section named mysql, which has definitions of mysql databases:
mysql:
- name: test
service: service-test
host: my-remote-rds-host.amazonaws.com
db: mydb
user: myuser
pass: password
- name: config-test
service: service-test
host: config.DB_HOST
db: config.DB_NAME
user: config.DB_USER
pass: config.DB_PASSWORD
services:
- name: dftest-test
cluster: my-cluster
environment: test
config:
- DEBUG=False
- DB_HOST=${terraform.rds_address}
- DB_NAME=dftest
- DB_USER=dftest_u
- DB_PASSWORD:secure:kms_key_arn=${env.DB_PASSWORD}
Entries in the mysql: section must minimally define these keys:
name: the name of the connection. This will be used in all thedeploy mysqlcommands as the connection name.service: the name of a service in theservices:section. This will be used to determine which host we use to use for SSH when doing our mysql commandshost: the hostname of the remote MySQL serverdb: the name of the database to work with inhostuser: the username of the user to use to authenticate tohostpass: the password of the user to use to authenticate tohost
These are optional keys that you can add to your connection definition:
port: the port to connect to on the remote MySQL server. Default: 3306character_set: set the character set of your database to this (used fordeploy mysql createanddeploy mysql update). Default:utf8.collation: set the collation set of your database to this (used fordeploy mysql createanddeploy mysql update). Default:utf8_unicode_ci.
As you can see in the examples above, you can either hard code host, db, user and password in or you can reference config parameters from the config: section of the definition of our service. For the latter, deployfish-mysql will retrieve those parameters directly from AWS SSM Parameter Store, so ensure you write the service config to AWS before trying to establish a MySQL connection.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deployfish-mysql-1.2.16.tar.gz.
File metadata
- Download URL: deployfish-mysql-1.2.16.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
524e5e43757e714e78289e2d08e00ad07667ea01efe1c4b288aedbb082ffd3c4
|
|
| MD5 |
2bd2b4472ce5ae63a7c5572984fb4e86
|
|
| BLAKE2b-256 |
23a52312cff8659c07b696ace22a7a811839992119bc1a2e383ca1cff01d0335
|
File details
Details for the file deployfish_mysql-1.2.16-py2.py3-none-any.whl.
File metadata
- Download URL: deployfish_mysql-1.2.16-py2.py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68857add21375946bd86f4123f7c40fa85d99eed787e0ae7cad5c8f4c0ca60df
|
|
| MD5 |
873700c95a235fe1d81700695e3931c5
|
|
| BLAKE2b-256 |
5e97e493eefee5af3eccd4da938d5d6e5a6a8ea00722813fcfa44288cecee037
|