--- # tasks file for mastodon - name: Dump database to a file with compression postgresql_db: name: "{{ service }}_production" state: dump target: "{{ service }}_production.sql.gz" become_user: postgres - name: Checkout (git) git: repo: "{{ git_url }}" dest: "~/mastodon/" version: "{{ git_version | default(omit) }}" #force: yes update: yes become_user: "{{ service }}" - block: - name: Install bundler shell: ". ~/.profile && gem install bundler --no-document" args: chdir: "~/mastodon" executable: /bin/bash # fails with /bin/sh - name: Install gem dependencies shell: ". ~/.profile && bundle install --deployment --without development test -j$(getconf _NPROCESSORS_ONLN)" args: chdir: "~/mastodon" executable: /bin/bash # fails with /bin/sh - name: Install javascript dependencies shell: ". ~/.profile && yarn install --pure-lockfile" args: chdir: "~/mastodon" executable: /bin/bash # fails with /bin/sh - name: Run database migrations, skipping post-deployment shell: ". ~/.profile && SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate" args: chdir: "~/mastodon" executable: /bin/bash # fails with /bin/sh - name: Precompile assets shell: ". ~/.profile && RAILS_ENV=production bundle exec rails assets:precompile" args: chdir: "~/mastodon" executable: /bin/bash # fails with /bin/sh become_user: "{{ service }}" - name: Restart services service: name: "{{ service }}.target" state: restarted - name: Run database migrations, this time including post-deployment shell: ". ~/.profile && SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate" args: chdir: "~/mastodon" executable: /bin/bash # fails with /bin/sh become_user: "{{ service }}" - name: Define variable to skip next task by default set_fact: keep_db_dump: true - name: Remove database dump file: path: "{{ service }}_production.sql.gz" state: absent become_user: postgres when: keep_db_dump is undefined tags: clean - name: Template conf file for nginx vhost template: src: "vhost.j2" dest: "/etc/nginx/sites-available/{{ service }}" - name: Reload nginx conf service: name: nginx state: reloaded