|
1 | 1 | ---
|
2 |
| --hosts:nodes[1] |
3 |
| -roles: |
4 |
| - -role:postgrespro |
5 |
| -deploy_dtm:true |
6 |
| - |
7 | 2 | -hosts:nodes
|
| 3 | + |
8 | 4 | roles:
|
9 |
| - -role:postgrespro |
| 5 | + -role:postgres |
10 | 6 | pg_port:15432
|
11 |
| -deploy_postgres:true |
12 |
| -pg_dtm_enable:true |
13 |
| -pg_dtm_enable:false |
14 |
| -# pg_config_role: |
15 |
| -# - line: "dtm.buffer_size = 65536" |
16 |
| -pg_dtm_host:"{{ groups['nodes'][0] }}" |
| 7 | +pg_repo:https://github.com/kelvich/postgresql.git |
| 8 | +pg_version_tag:xtm_patched |
| 9 | +pg_destroy_and_init:true |
| 10 | +pg_config_role: |
| 11 | + -line:"dtm.buffer_size = 65536" |
| 12 | + |
| 13 | +tasks: |
| 14 | + -name:clone dtm sources |
| 15 | +git:repo=https://github.com/postgrespro/pg_dtm.git |
| 16 | +dest={{pg_prefix}}/pg_dtm |
| 17 | +accept_hostkey=yes |
| 18 | +update=yes |
| 19 | +force=yes |
| 20 | +register:dtm_sources |
| 21 | + |
| 22 | + -name:build dtm |
| 23 | +shell:"make clean && make -j {{makejobs}} install" |
| 24 | +args: |
| 25 | +chdir:"{{pg_prefix}}/pg_dtm" |
| 26 | +environment: |
| 27 | +PG_CONFIG:"{{pg_dst}}/bin/pg_config" |
| 28 | +# when: dtm_sources.changed |
| 29 | + |
| 30 | + -name:enable dtm extension on datanodes |
| 31 | +lineinfile: |
| 32 | +dest:"{{pg_datadir}}/postgresql.conf" |
| 33 | +regexp:"^shared_preload_libraries" |
| 34 | +line:"shared_preload_libraries = 'pg_dtm'" |
| 35 | +state:present |
| 36 | + |
| 37 | + -name:restart postgrespro |
| 38 | +command:"{{pg_dst}}/bin/pg_ctl restart -w -D {{pg_datadir}} -l {{pg_datadir}}/pg.log" |
| 39 | +environment: |
| 40 | +LD_LIBRARY_PATH:"{{pg_dst}}/lib/" |
| 41 | + |
| 42 | +-hosts:nodes[0] |
| 43 | +tasks: |
| 44 | + -name:build dtmd |
| 45 | +shell:"make clean && make -j 4" |
| 46 | +args: |
| 47 | +chdir:"~/pg_cluster/pg_dtm/dtmd" |
| 48 | +environment: |
| 49 | +PG_CONFIG:"~/pg_cluster/install/bin/pg_config" |
| 50 | + |
| 51 | + -name:kill dtmd |
| 52 | +shell:kill -9 `cat ~/pg_cluster/dtm_data/arbiter.pid` || true |
| 53 | + |
| 54 | + -name:ensure datadir for dtm exists |
| 55 | +shell:"rm -rf ~/pg_cluster/dtm_data && mkdir ~/pg_cluster/dtm_data" |
| 56 | + |
| 57 | + -name:start dtm |
| 58 | +shell:> |
| 59 | + nohup ~/pg_cluster/pg_dtm/dtmd/bin/dtmd |
| 60 | + -d ~/pg_cluster/dtm_data -a 0.0.0.0 -p 5431 > ~/pg_cluster/dtm_data/log & |
| 61 | +
|
| 62 | + -name:wait until dtm is available |
| 63 | +wait_for:port=5431 delay=1 |
17 | 64 |
|