Simplify postgresql config, automate database management

This commit is contained in:
Ivan R. 2024-10-14 21:29:32 +05:00
parent d9b5abd3cb
commit 4f7ed75840
No known key found for this signature in database
GPG key ID: 56C7BAAE859B302C
10 changed files with 128 additions and 129 deletions

View file

@ -2,6 +2,6 @@
- hosts: webservers
roles:
- name: comfycamp
postgresql_password: "{{ comfycamp_postgresql_password }}"
postgresql_password: "{{ postgresql_users.comfycamp }}"
jwt_secret: "{{ comfycamp_jwt_secret }}"
secret_key_base: "{{ comfycamp_secret_key_base }}"

View file

@ -2,7 +2,7 @@
- hosts: webservers
roles:
- role: forgejo
postgresql_password: "{{ forgejo_postgresql_password }}"
postgresql_password: "{{ postgresql_users.forgejo }}"
smtp_password: "{{ mail_users['forgejo@comfycamp.space'] }}"
oauth2_jwt_secret: "{{ forgejo_oauth2_jwt_secret }}"
internal_token: "{{ forgejo_internal_token }}"

View file

@ -4,7 +4,7 @@
- role: mastodon
vapid_public_key: "{{ mastodon.vapid_public_key }}"
vapid_private_key: "{{ mastodon.vapid_private_key }}"
db_pass: "{{ mastodon.postgresql_password }}"
db_pass: "{{ postgresql_users.mastodon }}"
otp_secret: "{{ mastodon.otp_secret }}"
secret_key_base: "{{ mastodon.secret_key_base }}"
smtp_password: "{{ mail_users['mastodon@comfycamp.space'] }}"

View file

@ -2,10 +2,5 @@
- hosts: webservers
roles:
- role: postgresql
postgres_password: "{{ postgres_password }}"
users:
mastodon: "{{ mastodon_postgresql_password }}"
vaultwarden: "{{ vaultwarden_postgresql_password }}"
forgejo: "{{ forgejo_postgresql_password }}"
matrix-synapse: "{{ synapse_postgresql_password }}"
comfycamp: "{{ comfycamp_postgresql_password }}"
postgres_password: "{{ postgresql_users.postgres }}"
users: "{{ postgresql_users }}"

View file

@ -4,7 +4,7 @@ BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = username) THEN
EXECUTE format('CREATE ROLE %I LOGIN PASSWORD %L', username, passwd);
ELSE
RAISE NOTICE 'User % already exists.', username;
EXECUTE format('ALTER ROLE %I WITH PASSWORD %L', username, passwd);
END IF;
END;
\$\$ LANGUAGE plpgsql;

View file

@ -28,7 +28,7 @@
env:
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: "{{ postgres_password }}"
POSTGRES_PASSWORD: "{{ users.postgres }}"
restart_policy: unless-stopped
recreate: "{{ pgconf.changed }}"
- name: Create a function to manage users
@ -50,3 +50,10 @@
no_log: True
loop:
"{{ users | dict2items }}"
- name: Create databases
become: true
community.docker.docker_container_exec:
container: postgresql
argv: ["sh", "-c", "createdb {{ item.key }} -O {{ item.key }} -U postgres || exit 0"]
no_log: True
loop: "{{ users | dict2items }}"

View file

@ -1,2 +1,2 @@
postgres_password: change_me
users: []
users: {}

View file

@ -2,5 +2,5 @@
- hosts: webservers
roles:
- role: synapse
postgresql_password: "{{ synapse_postgresql_password }}"
postgresql_password: "{{ postgresql_users['matrix-synapse'] }}"
turn_shared_secret: "{{ coturn_static_auth_secret }}"

View file

@ -1,115 +1,112 @@
$ANSIBLE_VAULT;1.1;AES256
66353066653165663064313238633233306339653462376462363962333233363163383539323531
3435383533666439333939303537613464343661626663360a353839356563336638623036636166
36353331313734396164313361346165636234366461623532623065633762336531313566623137
3361646237386636370a383635383936383537383134383136363038396338323231366130613663
64343739313966363163333765303936373435636564316337663631623161666664323034363461
31386137313231626231363165326361336138326333303533333536666435663538613639646338
31363465393837613364646165333232633436626661393537396236316165656235653465343639
62643132316136613065646331643933353966326636313662303039393835303563366535633362
62623035643764346139326639663831646134346136363439626262326466336363646330333636
62633634353466316233383432376433656436333431656231313731653566653764353432663362
31643835333738323363663839396663663032626464666230333935356133323030393365643334
34393361393339623366313266333064353566623761303836333738396265656232623066313265
61323432396136623731653533613763383363393565373030643932666134333037613830646461
35633332616334633631326162396662343635646464353635383737623634383461303839316661
31323766633330343962613966356435346166636135363131616337393462613265656333343962
65313836363833646162656561663631616462653530616333383839316239393330633163363338
30393634636663303930646564313039356433333639333539313865336234323033393533363731
32346637323531326265376330396635643831386664643535633932343065656234656535306665
36383864376663343837363533666366386338346137646439363332396533643331323938356561
34646539386139363835613633353231623664333336636363623765636262376330346334393562
36303661333935373534636664626264326330336132336638346136356133343133643266343963
36313435623662636233383265323332373861613763376237306238633337303538663335646236
39626432393866303436323239336231363834653838326234316230373264636562616231363136
36626663343231363662386532316261393464343331343938646236633435366531666262656334
32383734653330303933313332303431356136363637326638613431643634373739653331663364
63383763623337306538336337346439383766646239323230363361343932613835633338306238
63366333346535323161313337666132306564343635303433613136343933656234313961363537
35383166633835363166386363653734323437313030366134363261313566353933616665346639
30346635316331396134376336363165343734393639306264326336636630393231323831303766
63363231616464613934336531396262353931376661613961313532376135366464663835623934
30343962373565613538373862373962393430643163633363383231643430306565303934633737
65663738626136626634376135353038396235336363396163343062306662666136363766313631
63313234346333653336623137353964343364336338393161373234336330353161316235373233
62663537666361653630373866313232356662313136363931643964343731633931393933666131
32383134336461313765653535303339643339646430663531316135646661326665323836613633
65313461346533616339393833646439393331333431363235393937366534326334636163343336
32326435633234313766623638383861356234616363353037343936346430663039613038313761
36633035366438616435396639633533323363653733653630396564613433376434656631336638
35613864326565646231396236393462376162623733353237376333326563383139633661386162
61323235633064326166333931653334613963666566316263623962323234646461316165653661
33616166613532363962376338663430353465363037383230313263633930303538633165396334
30613764363666363835343236646230343262383263396434383638316434633961346339396265
64353438316238383635343661303565326135336362633731356463633236666663383362613061
35336238323864343833613766653637343337343963383032386238363939353864393736663137
39653436663431636461393437313234643230336663663135363630356635396631383635663931
38626137653435386338666530366232356438636331396439663362323235363930646362393332
33653364613632616162626632663231336636386562626235383631643533323534356136633234
34636336643866303230626662373436643339656436346366333566383331353034313262376235
62326564613063356532346230383430633535356333393862393232636237623661356231363161
66383337623466623133363037326431356137656531326430383462303536333165313632323161
33623936666331323765313838383666613162306665633465386136636337366137346661366437
30356264313538393364313338343432326466373536356438616436653236313966623132343931
32396138323431626162633465383834316334643263666366353462373265393265356564623739
37316265633462346434616166346630393035343139663437353137333161633533323736306637
61303266366230623663376339646362366664333461343036336330356665643631333436363730
62663463633166356331353036323534366163336466383232376134363065373533396431383337
33323663353537316461393162646361313162633931383138623863646535636361636630323233
34353431356534326335396362663264666534333139663436323131376434303237373038633435
31356161356365653332366661306432663738373763363334633262383130313663643365366364
36353337653134663339393133613435313335613064353165326438623238633032653532653630
64663537336231326664316566356531376561666165646164623962663365633734613366306138
32323961396438633330313432326437323462626566373066666533613934303861623938353731
38616330326330613036396261656431386135643236346436666237666265383033626431643361
33633866646530336466643065333264633634383735663331343930323535633438386331306530
31353263393231646163363437323365313663393736333662323037663631373836383733313538
39343939633332356361383636323132613163303866663135633863643238363332656536323337
64316563636661353631343037613565396363316632626165626135343964373637613865653135
63373135396261656230366438326666653537653135616365376364326133636564356436646565
62666537653763656465313831343031353661303564303636323764386666376561663963613435
61383836633830656565396633623564663262303565663235386531636465323531376463326231
64363065326662666336343062383630633662656233323130613330643737613361663363353962
31646463393232323537373961336562613863646439643536616265313839326666633835616231
31303032343935363533326530373062633764643233393162623539386530333162313632656537
37386232643133376165363465653563663462323564653764323635623563316335343866346136
34306163333662373735633066303431363537376162333361323431666566303231376137643665
65633265363434333863366337303736333466663734613834613332366332663162633566336138
35346439636636323630393832323933613761633531313361643962653538313162633330366131
34316564653266613761623536353336343763383337643666313830646130303333343634636231
65653932323534366433306561346661346161393463313335636464336263383837336630383734
65383334333161303436393230383031346466356261326232386630646235316363383736616335
64393762323961366335353461636364343434636331386131303364366239373763373739346230
62626132666430353136616333643031643439363537623637653162316166613133636666613666
37333339353864333634386437666534313532353564363966373239663936636533373830636362
38366234656362653736613866613032656563326439396338613262333337393938396466626561
34306662656135316438633131323236623262366664306532343765623263313734653561343734
36653233353036336330383033363934646266383962393931643134356532633935343030643131
66663563646331646236333233333562663965373966376665363965353964623937396338316634
65373833353936346630633732373835353766663732373232313764613262333963303064353933
66666336393736363939653866613263313439323238353936303465386532383937663539616262
61623032653138386366363463323834626262633463376537363333373530616562366662306666
64386563646633613566653963653934303238646533383534386530666634653865656466633837
64333063623434343035363238623561636431633231663132343366363731393330353461303638
39623665316137646262616339336631616134623663636161616665373266306363653436646664
65326663313336646532663037303730633937316631393230386438386338393966383334396538
35623964616436613839313731613638393038366531316337333734383932366432353961646430
38356333643164323564326433623835646561356361386665653038643662373264626235646332
66323566626663346338373138313764633334323538383136633463336162383931313836613237
36356430613162633834646631356464323466616135356466303333663465666366303462366262
65313762323463633865333739636236636664363830633732666330346536303734343631336463
33363462303135386431316465336161373630393166646238663536353365626539666261383561
30316134643334623232333237373962386362323837666236306237306539333933626261663737
61613936336134633636346530643764663130363964636532643965393965363136656261623061
32343839366364353535383232396363303765363533613536393762653564663635383132383465
61633538636530653737626235343734663264623038633638383030656433376233386435313530
64396235363135623130316339316662653164646566613735323631363632346265656436303865
38643738663835303635353231353439656261393531303136653366626663386336623962663039
35363064643664303732323965393965313536626236393138636636346261643665663334653538
33376437636264653334323665633438373262396635333736623639313037343863653735316330
38336237366135336335323366646637326564303663396462363939363264613963313232343564
33313039336463343066323733393837616363646165393263663232333933643134376337613535
32346631633235623934313136356165366237366339373762666539306262343661646638323466
37613864623332336139313431316663323431363662653032313932376438353531343662333566
35633135336438316230366531353933623265353165666532393361383765363337336533653734
3966666364306563343466366535636530393530393336326562
34646465666661333035663364656438653739616533343964616336343363663164363038613634
3732386633376134333131646365656339343838366666390a663934333132353261643439366537
37363930623832623034353661336133643837393630613965363434663865303839333337643531
3961373238383532620a636539306634356437303062303961346538623463396634363335323163
36633134613734393335386237626632323437653731326435373837643066623163653162396161
32343437333035633138353461666139646134633864626438613266386130343263323662303430
35336330326331376238366230363036376461343137306333376138396562366235643033613235
66313066393934363835363938663262613539353830633666386165333032316634333330623334
37336664613031363337623934306661653938306231373163353534343133366331306230653964
61316133346365373063663539363335363263303432373066303833626338626337376131303266
66336135333839643733383961666433616334313335373035363032343935386164333631313231
62393263643537663138323266316231636630373064613432356331373531303431323563383462
34663438333433333762323562623465313632613638356466656634393130366531633638643864
62666564343235323938653663633265653334306531656533383365393339313235613932333066
62363963616466346539666562366330303064656562383735363862633138363466336237663262
64353264373066303962326364343239643164393939333566613935356632613731333366613963
39653831373934306237393565343161383232623062633035306163336235616530346162393961
33336435353062313633623635303931383230323265313835613631303930623265383436396361
32363032616461366339643630306263643062623564336666623561373235653266373466306436
33346231376461363130303231326139383131316236303539363035356533333163353165366637
61306236373936646466333339653964333663376666383862303664626163353736663633613161
30636135343462343436336566633637663062653566323430616433333933373463393564653234
35313634646638623766666534653937643661353933616264393732373961333831326264633531
30373762663364326363653437393532323831366564643131383234333565646437366365666534
62346536396463313561616265373064326433316137643336616434643239343364633133336235
61616461306465376638373332353730313264356432383439373632643937643062363731393634
37633539653534343335613236366564396461626236653239633632623735646533323238376463
38336538633239313138353630383832633730646662366632373962363365316566643231393838
63653962623662613265363466343138636333303034643562366136323234323439636532396638
34656236653064653364643337303832303437363661636333356332613163636330346138663266
35383232303438336234363231626161323033663865316563326161666561663534353466313234
37383865313064336634623631323935613535373137323333353834363639333762326633343165
66376132633466623265366433316665303934323662626438366637376331386465346335303436
31666464623237366239353831343436636564636466343830626236623935333038633562353566
65626238363663326432646633636335383935623736373761363862316263383664656562653332
39623436656163353232666137633666336631393738303565396436653535396163336236653431
32363462666539373130656631366435306465386138616261643866353537306165613934343233
61303038343435303264663433353232643830373437373430326161613963353164393934326435
32646163343863373134316336363063313139643838613035303638363665313963346537643862
32653562383562333961333061616239303138306661656265326565653830396165663134363534
63353039626438666663326531376430613864623730353763643932646532656664393331346231
36313933356566633665666530323239656632303837343362653230303931616461373734343633
66663433376332373933623662376634306333616366333461366264626333313462363833353639
38396337333139666530316536333130396530616239376433356336336338666635613630613437
65613030336364353434306631366332353063383761626664633030313336653764366265356437
65666565643962306331333739653361373538653530336161303430643437663566613235346161
38646163643530666162366464383237666366666333393964353364663064316663313935663264
35326561643939636233366164663239396537333538623435393932313137633361333231333663
34373561383438653466636238326331626431633437363861663439386334313466303733663166
66313830326533656564396562313834393933313962386166383963623162306238336161636537
63363361373839336435316238643333643866396137366466633239383031326161663561363539
38613031326434653763303438306335663665303662376432323066663435393162326135396332
32646533326162653935393563323539623361633066306130376662313233303162303930666433
37346436393438323134373364616561343636383861653063353362303934353239633061396536
34653637633166393864626363303530323234643163303835363561653636666438656363363433
66353834306461313463356166663765323130336264303331396235313637646538656137363736
32633665326131363337373930326462623065623132613335656136373031323930623862626562
37643166663731316162346166386235656537653331643431623133663761366435356635363134
66343665363136366536346135306237666366613664633031303639363933373635396161306430
63383734646363396662633531616266303036663636626136346163636431356432343664643139
61333864646436373162333863646662643163666338663731346465373762626563353263303137
38323961306130356132313263616134353536626534626165353162666262373538623133343930
30643231303135383964373038666434363239393736656561636335636465333333353732656139
61343664376333653063663266656438343930393230383238303734663439643636303863303336
64323335663565666331386362343236326233333739343837636664613931633332393033373730
61373534366635343066656635613532623331353631656236356331663634316266643866316338
32646539373931653262643031626361646566346332373238336233313238383634316434653739
66383164313764383339356564656238626339346637356538303937323431386630656166313530
63346533383163613730333731643733623836343038306566353837623034303938366564313737
66326163373739373764336536356232383634623035633733616237343664323530303161373964
36653732326632393731383262663434643136346464653931653865336337316533356139326435
65636536386563313366353863323231366161643636373836303330653135343065303830356431
32373364393334393236363635353139363139656366633532633436623964303366636464373135
38323731323664626536346639666237386332626664383433313834366135356536363239323631
31346532323737393330646364393764643338353061373833363666656632666464646462323931
30633263616464386237316435393031306436393733346163306166313934653633363566616162
32323033656632393931666531363536386135353239613165656335616565336331303839663130
37643465313466386466323836643737313633653537353235356335333461303235383031396236
61353837666339386334656131336332613435303635626566633630333537336330356537366337
35343565616363626632383237316233393239613965376630356437643937383734623137633766
61303263356339383266636537636339653533366432373464393761636666393463356334383963
38363434393938396636613963633161343861333637323231633231363134303138613864353038
35313939386333333665616164666334373962393937323166656533343765663332656561353838
65333762663962666362623731363039353137643133356532323931313966323039623631393736
64613639303762363561633433363737343637336566663937323737326133313334393139633431
33373837333434323430353134613064313063353737306239396231356465656265396239376565
62623535643832383961653436383362646439336263633430346365623039656663393735303836
32616536666539376562383730643636653762363336666331343938343161653630643939636635
32303935323732623930336330303133383830666633366239343733646338343939663635343331
33333565653431346130646533386435393964316231616661333735623761656332323264366164
61653133636437663139366634363264656130643530326133393366313665343730373230666432
64656231633038663136666635653136633062623132333338636438346533353731333265333765
38393266643737356162346466323866646237396435396536373736623838333836656562656531
32383935613664666266313436356437313833303633363835666161336666356639643436616366
30316534383733313737646364323639653833643535316334386363643161363564393834396132
36636236396331356664626265396331303361623233336435383032653731653337333238613034
33373832373363623531303764366462393738653338653533656533303232323763313238626131
30646662373261316537383061613539363135653431346637313861646333343933646333366366
36393463346536303866643738383538646334343634653431666130373663666232396230623631
64613838656364353835313265656366363462666466363833313531306366363261306265613739
31393666663037643566373131323935656135616339353630613339353065343261366330393762
62323636653931656161363262626166376665303632326265613130663633616161663834343066
36303036383139313431653134666163353230323536633762643631383238613732346439346665
37623433633737383562336238373461623262653261346136393233613230373831313137383133
62346165656136393032383764323533626430383936366338336130623633373965313961666538
38333936653763656632303761303937353739313531643931653565313535366264666538343737
39396337623136376161633463313431343434316431366531373130666131643266643237393762
37333935373831646566323066623833663831663565643530366636623839326330346564643730
34326663303931343336643061633564373536653066323562363234386239326364656431316366
38616265333632626232336634643538623761386136646235383536643564393430656264393035
383639323339333239383266623566633466

View file

@ -2,4 +2,4 @@
- hosts: webservers
roles:
- role: vaultwarden
db_url: postgresql://vaultwarden:{{ vaultwarden_postgresql_password }}@postgresql:5432/vaultwarden
db_url: postgresql://vaultwarden:{{ postgresql_users.vaultwarden }}@postgresql:5432/vaultwarden