diff --git a/roles/build/templates/cassandra/Dockerfile.j2 b/roles/build/templates/cassandra/Dockerfile.j2 index 052cbd188b5195405dd147753a785c6de2287762..f5d2a601c1526e9cf119c01bea5e36c2edf8223d 100644 --- a/roles/build/templates/cassandra/Dockerfile.j2 +++ b/roles/build/templates/cassandra/Dockerfile.j2 @@ -1,36 +1,20 @@ FROM {{repo}}/openjdk:{{version}}{{suffix}} USER root -#COPY cassandra.repo /etc/yum.repos.d/cassandra.repo -#COPY supervisord.conf /etc/supervisord.conf -#COPY start.sh /start.sh RUN echo "[cassandra]" > /etc/yum.repos.d/cassandra.repo && \ echo "name=Apache Cassandra" >> /etc/yum.repos.d/cassandra.repo && \ echo "baseurl=https://downloads.apache.org/cassandra/redhat/311x/" >> /etc/yum.repos.d/cassandra.repo && \ echo "gpgcheck=1" >> /etc/yum.repos.d/cassandra.repo && \ echo "repo_gpgcheck=1" >> /etc/yum.repos.d/cassandra.repo && \ echo "gpgkey=https://downloads.apache.org/cassandra/KEYS" >> /etc/yum.repos.d/cassandra.repo && \ - echo '#!/bin/bash' > /start.sh && \ - echo 'export CASSANDRA_HOME=/usr/share/cassandra' >> /start.sh && \ - echo 'export CASSANDRA_CONF=$CASSANDRA_HOME/conf' >> /start.sh && \ - echo 'export CASSANDRA_INCLUDE=$CASSANDRA_HOME/cassandra.in.sh' >> /start.sh && \ - echo 'log_file=/var/log/cassandra/cassandra.log' >> /start.sh && \ - echo 'pid_file=/var/run/cassandra/cassandra.pid' >> /start.sh && \ - echo 'lock_file=/var/lock/subsys/cassandra' >> /start.sh && \ - echo 'CASSANDRA_PROG=/usr/sbin/cassandra' >> /start.sh && \ - echo '' >> /start.sh && \ - echo '$CASSANDRA_PROG -p $pid_file > $log_file 2>&1' >> /start.sh && \ yum install -y epel-release && \ - yum install -y cassandra supervisor && \ + yum install -y cassandra supervisor rsync && \ mkdir /usr/share/cassandra/conf && \ cp -a /etc/cassandra/conf/* /usr/share/cassandra/conf && \ chown -R cassandra:cassandra /usr/share/cassandra && \ chown -R cassandra:cassandra /var/lib/cassandra && \ sed -i -e 's,/etc/cassandra,/usr/share/cassandra,g' /usr/share/cassandra/cassandra.in.sh && \ - chmod a+x /start.sh && \ yum -y clean all COPY cassandrasupervisord.conf /etc/supervisord.conf EXPOSE 7000 9042 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] -#USER cassandra -# ENTRYPOINT ["/start.sh"] diff --git a/roles/build/templates/cassandra/cassandra.repo.j2 b/roles/build/templates/cassandra/cassandra.repo.j2 deleted file mode 100644 index 8fdb78c9a4e3868ea6693110941914adc511877e..0000000000000000000000000000000000000000 --- a/roles/build/templates/cassandra/cassandra.repo.j2 +++ /dev/null @@ -1,6 +0,0 @@ -[cassandra] -name=Apache Cassandra -baseurl=https://downloads.apache.org/cassandra/redhat/311x/ -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=https://downloads.apache.org/cassandra/KEYS diff --git a/roles/build/templates/cassandra/start.sh.j2 b/roles/build/templates/cassandra/start.sh.j2 deleted file mode 100644 index fa91e921956d5d2d6fa1be6812a9794071b20965..0000000000000000000000000000000000000000 --- a/roles/build/templates/cassandra/start.sh.j2 +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -export CASSANDRA_HOME=/usr/share/cassandra -export CASSANDRA_CONF=$CASSANDRA_HOME/conf -export CASSANDRA_INCLUDE=$CASSANDRA_HOME/cassandra.in.sh -log_file=/var/log/cassandra/cassandra.log -pid_file=/var/run/cassandra/cassandra.pid -lock_file=/var/lock/subsys/cassandra -CASSANDRA_PROG=/usr/sbin/cassandra - -$CASSANDRA_PROG -p $pid_file > $log_file 2>&1 diff --git a/roles/build/templates/cassandra/supervisord.conf.j2 b/roles/build/templates/cassandra/supervisord.conf.j2 deleted file mode 100644 index d1f405eb91d5bae99af653dae0d5c246ae723f08..0000000000000000000000000000000000000000 --- a/roles/build/templates/cassandra/supervisord.conf.j2 +++ /dev/null @@ -1,10 +0,0 @@ -[supervisord] -loglevel=debug -nodaemon=true -[program:cassandra] -user=cassandra -directory=/usr/share/cassandra -stdout_logfile=/var/log/cassandra/cassandra.log -redirect_stderr=true -environment=CASSANDRA_HOME="/usr/share/cassandra",CASSANDRA_CONF="/usr/share/cassandra/conf",CASSANDRA_INCLUDE="$CASSANDRA_HOME/cassandra.in.sh" -command=/usr/sbin/cassandra -p /var/run/cassandra/cassandra.pid diff --git a/roles/cassandra/tasks/main.yml b/roles/cassandra/tasks/main.yml index 814355e709956d46c421029590b8d65bf61cb2be..f26e13b0d2279484dea86aa46ee76cb1b8088865 100644 --- a/roles/cassandra/tasks/main.yml +++ b/roles/cassandra/tasks/main.yml @@ -1,37 +1,17 @@ --- -- name: Configure Cassandra - remote_user: cassandra - template: - src: cassandra.yaml.j2 - dest: /usr/share/cassandra/conf/cassandra.yaml +- include: start.yml tags: - - start - -- name: Start Cassandra - remote_user: root - command: "supervisorctl start cassandra" - tags: - - start - -- name: Wait for Cassandra - remote_user: root - wait_for: - host: "{{groups['cassandra'][0]}}" - port: 9042 - state: started - delay: 5 + - start +- include: stop.yml tags: - - start - -- name: Set Autostart for supervisord's services - shell: "sed -i 's/autostart=false/autostart=true/g' /etc/supervisord.conf" + - stop + - stop-cassandra +- include: update-config.yml tags: - - start - -- name: Stop Cassandra - remote_user: root - command: "supervisorctl stop cassandra" + - update-config + - update-cassandra-config +- include: restart.yml tags: - - stop - + - restart + - restart-cassandra diff --git a/roles/cassandra/tasks/restart.yml b/roles/cassandra/tasks/restart.yml new file mode 100644 index 0000000000000000000000000000000000000000..b6e575bc1e4e2e1ebd6469bf05165ef0ba84a376 --- /dev/null +++ b/roles/cassandra/tasks/restart.yml @@ -0,0 +1,6 @@ +--- + +- name: Restart Cassandra + remote_user: root + command: "supervisorctl restart cassandra" + diff --git a/roles/cassandra/tasks/start.yml b/roles/cassandra/tasks/start.yml new file mode 100644 index 0000000000000000000000000000000000000000..1018944237cac5bfa616169d058ad0db794ea9f4 --- /dev/null +++ b/roles/cassandra/tasks/start.yml @@ -0,0 +1,27 @@ +--- + +- name: Configure Cassandra + remote_user: cassandra + template: + src: cassandra.yaml.j2 + dest: /usr/share/cassandra/conf/cassandra.yaml + +- name: Start Cassandra + remote_user: root + command: "supervisorctl start cassandra" + +- name: Wait for Cassandra + remote_user: root + wait_for: + host: "{{groups['cassandra'][0]}}" + port: 9042 + state: started + delay: 5 + +- name: Set Autostart for supervisord's services + replace: + path: /etc/supervisord.conf + regexp: '^autostart=false$' + replace: 'autostart=true' + + diff --git a/roles/cassandra/tasks/stop.yml b/roles/cassandra/tasks/stop.yml new file mode 100644 index 0000000000000000000000000000000000000000..29742c7021fa80cda54b419cde925309cb4cf8a5 --- /dev/null +++ b/roles/cassandra/tasks/stop.yml @@ -0,0 +1,6 @@ +--- + +- name: Stop Cassandra + remote_user: root + command: "supervisorctl stop cassandra" + diff --git a/roles/cassandra/tasks/update-config.yml b/roles/cassandra/tasks/update-config.yml new file mode 100644 index 0000000000000000000000000000000000000000..ceb0b6003da6268a734cc15461ed264fb5e38485 --- /dev/null +++ b/roles/cassandra/tasks/update-config.yml @@ -0,0 +1,15 @@ +--- + +- name: Configure Cassandra + remote_user: cassandra + template: + src: cassandra.yaml.j2 + dest: /usr/share/cassandra/conf/cassandra.yaml + +- name: Wait for Cassandra + remote_user: root + wait_for: + host: "{{groups['cassandra'][0]}}" + port: 9042 + state: started + delay: 5