рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдмреИрдХрдЕрдк рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдлреНрд▓рд┐рди рд╕реАрдПрд▓рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдбреАрдмреА рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рдмреИрдХрдЕрдк рдЦреАрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рдкреНрд░рдгрд╛рд▓реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪреАрдЬреЗрдВ:
: +1: рдЕрдиреБрд╕реВрдЪрд┐рдд рдмреИрдХрдЕрдк рд╕реБрд╡рд┐рдзрд╛ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ :)
рдХреНрдпрд╛ рдореИрдВ Amazon S3 рдХреЛ рдмреИрдХрдЕрдк рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдлреЗрдВрдХ рд╕рдХрддрд╛ рд╣реВрдВ? рдпрд╣ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдореИрдВ рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред :)
рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдХреЗрд╡рд▓ $ flynn cluster backup
рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ s3 рдкрд░ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдпрджрд┐ рдХрд▓реНрдкрдирд╛ рдмрд╛рдж рдореЗрдВ рдареАрдХ рд▓рдЧрддреА рд╣реИ рддреЛ рдореИрдВ рдмрд╛рдж рдореЗрдВ рдлрд╝реНрд▓рд┐рди рдореЗрдВ рдкреАрдЖрд░ рдмрдирд╛рдКрдВрдЧрд╛ред рдпрд╣ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреАред
рдмреИрдХрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ backy
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрд╕реА рд╢реИрд▓реА envs рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ blobstore
:
$ flynn -a backy env
BACKEND_S3MAIN=backend=s3 region=eu-west-1 bucket=flynn-backup access_key_id=XXXXXX secret_access_key=YYYYYYYYY
DEFAULT_BACKEND=s3main
BACKUP_SCHEDULE='* */8 * * *'
BACKUP_ENCRYPTION=type=symmetric symmetric=ZZZZZZZZZZZ
BACKUP_SCHEDULE
рдХреНрд░реЙрди рдЯрд╛рдЗрдо рдлреЙрд░реНрдореЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
BACKUP_ENCRYPTION
none, symmetric, public-key
рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдФрд░ рдЗрд╕рдореЗрдВ рдпрд╛ рддреЛ symmetric
рдпрд╛ private_key
рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
BACKUP_ADMINS
рдЕрддрд┐рд░рд┐рдХреНрдд gpg рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИ рдЬреЛ public-key
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдмреИрдХрдЕрдк рдЦреЛрд▓ рд╕рдХрддреА рд╣реИрдВред
рдореИрдВ рд╣рдореЗрдВ https://flynn.io/docs/production#amazon -s3 рдЬреИрд╕реА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ "s3:DeleteObject"
рдЕрдиреБрдорддрд┐ рдХреЗред рдЗрд╕ рддрд░рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдмреИрдХрдЕрдк рдкрдврд╝ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддреА рд╣реИ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреА рд╣реИред рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдмреИрдХрдЕрдк рд╕реЗ рд╕рдордЭреМрддрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред
рд╣рдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕рдорд╛рдкреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдмреИрдХрдЕрдк рдЕрдВрддрддрдГ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдмрдХреЗрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдХреЗрд╡рд▓ s3
рдЗрд╕ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ-рдХреЗрд╡рд▓ рдЕрдиреБрдорддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП Google рдпрд╛ Azure рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд▓реЗрдХрд┐рди рд╡реЗ рднреА рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рдореИрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП https://github.com/maxwellhealth/go-gpg рд╕реЗ gpg
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рд╕рдордорд┐рдд рдХреБрдВрдЬреА (рдкрд╛рд╕рд╡рд░реНрдб) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди sysadmin рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ gpg рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдмреНрд▓реЙрдмрд╕реНрдЯреЛрд░ рд╕реЗ рднрдВрдбрд╛рд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
import (
...
"github.com/flynn/flynn/blobstore/backend"
)
рдлреНрд▓рд┐рди рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ 1 рдЬреВрди, 2021 рдХреЛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП README рджреЗрдЦреЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдХреЗрд╡рд▓
$ flynn cluster backup
рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ s3 рдкрд░ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдпрджрд┐ рдХрд▓реНрдкрдирд╛ рдмрд╛рдж рдореЗрдВ рдареАрдХ рд▓рдЧрддреА рд╣реИ рддреЛ рдореИрдВ рдмрд╛рдж рдореЗрдВ рдлрд╝реНрд▓рд┐рди рдореЗрдВ рдкреАрдЖрд░ рдмрдирд╛рдКрдВрдЧрд╛ред рдпрд╣ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреАредрдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдмреИрдХрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ
backy
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрд╕реА рд╢реИрд▓реА envs рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗblobstore
:BACKUP_SCHEDULE
рдХреНрд░реЙрди рдЯрд╛рдЗрдо рдлреЙрд░реНрдореЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛редBACKUP_ENCRYPTION
none, symmetric, public-key
рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдФрд░ рдЗрд╕рдореЗрдВ рдпрд╛ рддреЛsymmetric
рдпрд╛private_key
рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПBACKUP_ADMINS
рдЕрддрд┐рд░рд┐рдХреНрдд gpg рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИ рдЬреЛpublic-key
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдмреИрдХрдЕрдк рдЦреЛрд▓ рд╕рдХрддреА рд╣реИрдВредрдореИрдВ рд╣рдореЗрдВ https://flynn.io/docs/production#amazon -s3 рдЬреИрд╕реА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдмрд┐рдирд╛
"s3:DeleteObject"
рдЕрдиреБрдорддрд┐ рдХреЗред рдЗрд╕ рддрд░рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдмреИрдХрдЕрдк рдкрдврд╝ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддреА рд╣реИ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреА рд╣реИред рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдмреИрдХрдЕрдк рд╕реЗ рд╕рдордЭреМрддрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛редрд╣рдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕рдорд╛рдкреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдмреИрдХрдЕрдк рдЕрдВрддрддрдГ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдмрдХреЗрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдХреЗрд╡рд▓
s3
рдЗрд╕ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ-рдХреЗрд╡рд▓ рдЕрдиреБрдорддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП Google рдпрд╛ Azure рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд▓реЗрдХрд┐рди рд╡реЗ рднреА рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗредрдореИрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП https://github.com/maxwellhealth/go-gpg рд╕реЗ
gpg
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рд╕рдордорд┐рдд рдХреБрдВрдЬреА (рдкрд╛рд╕рд╡рд░реНрдб) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди sysadmin рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ gpg рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдореИрдВ рдмреНрд▓реЙрдмрд╕реНрдЯреЛрд░ рд╕реЗ рднрдВрдбрд╛рд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: