soju/tasks/main.yaml
changeset 255 433b19646947
child 256 f7af0562f84c
equal deleted inserted replaced
254:3c105c4c9a39 255:433b19646947
       
     1 ---
       
     2 
       
     3 - name: install soju
       
     4   become: yes
       
     5   apt: name="soju"
       
     6   notify: restart soju
       
     7 
       
     8 - name: install soju db schema file
       
     9   become: yes
       
    10   template:
       
    11     src: "setup_db.psql.j2"
       
    12     dest: "/tmp/setup_db_soju.psql"
       
    13     owner: "postgres"
       
    14     group: "postgres"
       
    15     mode: "0600"
       
    16 
       
    17 - name: setup soju db
       
    18   become: yes
       
    19   become_user: "postgres"
       
    20   command: "psql -f /tmp/setup_db_soju.psql"
       
    21   changed_when: false
       
    22 
       
    23 - name: create soju data dir
       
    24   become: yes
       
    25   file:
       
    26     path: "{{soju_data_dir}}"
       
    27     state: "directory"
       
    28     owner: "{{soju_user}}"
       
    29     group: "{{soju_user}}"
       
    30     mode: "0755"
       
    31 
       
    32 - name: configure soju
       
    33   become: yes
       
    34   template:
       
    35     src: "config.j2"
       
    36     dest: "/etc/soju/config"
       
    37     mode: "0644"
       
    38   notify: restart soju
       
    39 
       
    40 - name: enable soju service
       
    41   become: yes
       
    42   systemd: name="soju.service" enabled="yes" state="started"
       
    43 
       
    44 - name: flush handlers to ensure soju is restarted with latest config
       
    45   meta: flush_handlers
       
    46 
       
    47 - name: create soju admin user
       
    48   become: yes
       
    49   become_user: "{{soju_user}}"
       
    50   shell: "echo '{{soju_admin_password}}' | sojudb -config /etc/soju/config create-user {{soju_admin_user}} -admin"
       
    51   register: soju_create_user
       
    52   changed_when: soju_create_user.rc == 0
       
    53   failed_when: soju_create_user.rc != 0 and 'duplicate key' not in soju_create_user.stderr
       
    54   no_log: true
       
    55 
       
    56 - name: create soju networks
       
    57   become: yes
       
    58   become_user: "{{soju_user}}"
       
    59   command: >
       
    60     sojuctl -config /etc/soju/config user run {{soju_admin_user}}
       
    61     network create
       
    62     -addr {{item.addr}}
       
    63     -name {{item.name}}
       
    64     -nick {{item.nick}}
       
    65   loop: "{{soju_networks}}"
       
    66   register: soju_network_create
       
    67   changed_when: soju_network_create.rc == 0
       
    68   failed_when: soju_network_create.rc != 0 and 'already exists' not in soju_network_create.stderr
       
    69   no_log: true
       
    70 
       
    71 - name: configure soju network sasl
       
    72   become: yes
       
    73   become_user: "{{soju_user}}"
       
    74   command: >
       
    75     sojuctl -config /etc/soju/config user run {{soju_admin_user}}
       
    76     sasl set-plain -network {{item.name}} {{item.sasl_username}} {{item.sasl_password}}
       
    77   loop: "{{soju_networks}}"
       
    78   when: item.sasl_username is defined
       
    79   no_log: true
       
    80 
       
    81 - name: install nginx stream config
       
    82   become: yes
       
    83   template:
       
    84     src: "nginx-stream.conf.j2"
       
    85     dest: "/etc/nginx/streams-available/soju.conf"
       
    86   notify: reload nginx
       
    87 
       
    88 - name: enable nginx stream config
       
    89   become: yes
       
    90   file:
       
    91     src: "/etc/nginx/streams-available/soju.conf"
       
    92     dest: "/etc/nginx/streams-enabled/soju.conf"
       
    93     state: "link"
       
    94   notify: reload nginx