execute tasks as user mastodon
This commit is contained in:
@@ -17,9 +17,5 @@
|
|||||||
- include_tasks: system_setup/nginx.yml
|
- include_tasks: system_setup/nginx.yml
|
||||||
- include_tasks: system_setup/user.yml
|
- include_tasks: system_setup/user.yml
|
||||||
- include_tasks: system_setup/ruby.yml
|
- include_tasks: system_setup/ruby.yml
|
||||||
become: true
|
|
||||||
become_user: "{{ mastodon_user }}"
|
|
||||||
- include_tasks: system_setup/mastodon.yml
|
- include_tasks: system_setup/mastodon.yml
|
||||||
become: true
|
|
||||||
become_user: "{{ mastodon_user }}"
|
|
||||||
- include_tasks: system_setup/letsencrypt.yml
|
- include_tasks: system_setup/letsencrypt.yml
|
||||||
@@ -1,100 +1,86 @@
|
|||||||
- name: Clone mastodon
|
- block:
|
||||||
git:
|
become: true
|
||||||
repo: "https://github.com/mastodon/mastodon.git"
|
become_user: "{{ mastodon_user }}"
|
||||||
dest: "{{ mastodon_home }}/{{mastodon_path}}"
|
|
||||||
clone: true
|
|
||||||
|
|
||||||
# - name: Update to latest version
|
- name: Clone mastodon
|
||||||
# shell: "git fetch; git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)"
|
git:
|
||||||
# args:
|
repo: "https://github.com/mastodon/mastodon.git"
|
||||||
# chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
dest: "{{ mastodon_home }}/{{mastodon_path}}"
|
||||||
|
clone: true
|
||||||
|
|
||||||
- name: Bundle install
|
# - name: Update to latest version
|
||||||
shell: |
|
# shell: "git fetch; git checkout $(git tag -l | grep -v 'rc[1-9]*$' | sort -V | tail -n 1)"
|
||||||
~/.rbenv/shims/bundle config set --local deployment 'true' && \
|
# args:
|
||||||
~/.rbenv/shims/bundle config set --local without 'test' && \
|
# chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
||||||
~/.rbenv/shims/bundle config set --local with 'development' && \
|
|
||||||
~/.rbenv/shims/bundle install -j$(getconf _NPROCESSORS_ONLN)
|
|
||||||
args:
|
|
||||||
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
||||||
|
|
||||||
- name: Yarn install
|
- name: Bundle install
|
||||||
command: yarn install --pure-lockfile
|
shell: |
|
||||||
args:
|
~/.rbenv/shims/bundle config set --local deployment 'true' && \
|
||||||
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
~/.rbenv/shims/bundle config set --local without 'test' && \
|
||||||
|
~/.rbenv/shims/bundle config set --local with 'development' && \
|
||||||
|
~/.rbenv/shims/bundle install -j$(getconf _NPROCESSORS_ONLN)
|
||||||
|
args:
|
||||||
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
||||||
|
|
||||||
|
- name: Yarn install
|
||||||
|
command: yarn install --pure-lockfile
|
||||||
|
args:
|
||||||
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
||||||
|
|
||||||
|
- name: Media cleanup cronjob
|
||||||
|
cron:
|
||||||
|
name: "media cleanup"
|
||||||
|
minute: "15"
|
||||||
|
hour: "1"
|
||||||
|
job: '/bin/bash -c ''export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd {{ mastodon_home }}/{{ mastodon_path }} && RAILS_ENV=production ./bin/tootctl media remove'''
|
||||||
|
|
||||||
|
- stat: path={{ mastodon_home }}/{{ mastodon_path }}/.env.production
|
||||||
|
register: production_config
|
||||||
|
|
||||||
|
- name: Migrate database
|
||||||
|
shell: "RAILS_ENV=production ~/.rbenv/shims/bundle exec rails db:migrate"
|
||||||
|
args:
|
||||||
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
||||||
|
when: production_config.stat.exists
|
||||||
|
|
||||||
|
- name: Precompile assets
|
||||||
|
shell: "RAILS_ENV=production ~/.rbenv/shims/bundle exec rails assets:precompile"
|
||||||
|
args:
|
||||||
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
||||||
|
when: production_config.stat.exists
|
||||||
|
|
||||||
- name: Install systemd sidekiq Service Files
|
- name: Install systemd sidekiq Service Files
|
||||||
template:
|
template:
|
||||||
src: mastodon-sidekiq.service.j2
|
src: mastodon-sidekiq.service.j2
|
||||||
dest: /etc/systemd/system/mastodon-sidekiq.service
|
dest: /etc/systemd/system/mastodon-sidekiq.service
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Install systemd web Service Files
|
- name: Install systemd web Service Files
|
||||||
template:
|
template:
|
||||||
src: mastodon-web.service.j2
|
src: mastodon-web.service.j2
|
||||||
dest: /etc/systemd/system/mastodon-web.service
|
dest: /etc/systemd/system/mastodon-web.service
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Install systemd streaming Service Files
|
- name: Install systemd streaming Service Files
|
||||||
template:
|
template:
|
||||||
src: mastodon-streaming.service.j2
|
src: mastodon-streaming.service.j2
|
||||||
dest: /etc/systemd/system/mastodon-streaming.service
|
dest: /etc/systemd/system/mastodon-streaming.service
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Media cleanup cronjob
|
|
||||||
cron:
|
|
||||||
name: "media cleanup"
|
|
||||||
minute: "15"
|
|
||||||
hour: "1"
|
|
||||||
job: '/bin/bash -c ''export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd {{ mastodon_home }}/{{ mastodon_path }} && RAILS_ENV=production ./bin/tootctl media remove'''
|
|
||||||
|
|
||||||
- stat: path={{ mastodon_home }}/{{ mastodon_path }}/.env.production
|
|
||||||
register: production_config
|
|
||||||
|
|
||||||
- name: Migrate database
|
|
||||||
shell: "RAILS_ENV=production ~/.rbenv/shims/bundle exec rails db:migrate"
|
|
||||||
args:
|
|
||||||
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
||||||
when: production_config.stat.exists
|
|
||||||
|
|
||||||
- name: Precompile assets
|
|
||||||
shell: "RAILS_ENV=production ~/.rbenv/shims/bundle exec rails assets:precompile"
|
|
||||||
args:
|
|
||||||
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
||||||
when: production_config.stat.exists
|
|
||||||
|
|
||||||
- name: Enable mastodon-web
|
- name: Enable mastodon-web
|
||||||
command: systemctl enable mastodon-web.service
|
command: systemctl enable mastodon-web.service
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Enable mastodon-streaming
|
- name: Enable mastodon-streaming
|
||||||
command: systemctl enable mastodon-streaming.service
|
command: systemctl enable mastodon-streaming.service
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Enable mastodon-sidekiq
|
- name: Enable mastodon-sidekiq
|
||||||
command: systemctl enable mastodon-sidekiq.service
|
command: systemctl enable mastodon-sidekiq.service
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Restart mastodon-web
|
- name: Restart mastodon-web
|
||||||
command: systemctl restart mastodon-web.service
|
command: systemctl restart mastodon-web.service
|
||||||
when: production_config.stat.exists
|
when: production_config.stat.exists
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Restart mastodon-streaming
|
- name: Restart mastodon-streaming
|
||||||
command: systemctl restart mastodon-streaming.service
|
command: systemctl restart mastodon-streaming.service
|
||||||
when: production_config.stat.exists
|
when: production_config.stat.exists
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Restart mastodon-sidekiq
|
- name: Restart mastodon-sidekiq
|
||||||
command: systemctl restart mastodon-sidekiq.service
|
command: systemctl restart mastodon-sidekiq.service
|
||||||
when: production_config.stat.exists
|
when: production_config.stat.exists
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
@@ -1,58 +1,62 @@
|
|||||||
---
|
---
|
||||||
- name: mastodon | Clone rbenv
|
- block:
|
||||||
git:
|
become: true
|
||||||
repo: "https://github.com/rbenv/rbenv.git"
|
become_user: "{{ mastodon_user }}"
|
||||||
dest: "~/.rbenv"
|
|
||||||
clone: true
|
|
||||||
version: "{{ rbenv_version }}"
|
|
||||||
|
|
||||||
- name: mastodon | Clone ruby-build
|
- name: mastodon | Clone rbenv
|
||||||
git:
|
git:
|
||||||
repo: "https://github.com/rbenv/ruby-build.git"
|
repo: "https://github.com/rbenv/rbenv.git"
|
||||||
dest: "~/.rbenv/plugins/ruby-build"
|
dest: "~/.rbenv"
|
||||||
clone: true
|
clone: true
|
||||||
version: "{{ ruby_build_version }}"
|
version: "{{ rbenv_version }}"
|
||||||
register: ruby_build
|
|
||||||
|
|
||||||
- name: mastodon | Configure rbenv
|
- name: mastodon | Clone ruby-build
|
||||||
command: ./configure
|
git:
|
||||||
args:
|
repo: "https://github.com/rbenv/ruby-build.git"
|
||||||
chdir: "~/.rbenv/src"
|
dest: "~/.rbenv/plugins/ruby-build"
|
||||||
register: rbenv_configure
|
clone: true
|
||||||
|
version: "{{ ruby_build_version }}"
|
||||||
|
register: ruby_build
|
||||||
|
|
||||||
- name: mastodon | Build rbenv
|
- name: mastodon | Configure rbenv
|
||||||
command: make
|
command: ./configure
|
||||||
args:
|
args:
|
||||||
chdir: "~/.rbenv/src"
|
chdir: "~/.rbenv/src"
|
||||||
when: rbenv_configure is succeeded
|
register: rbenv_configure
|
||||||
|
|
||||||
- name: mastodon | Update profile settings
|
- name: mastodon | Build rbenv
|
||||||
blockinfile:
|
command: make
|
||||||
dest: "~/.profile"
|
args:
|
||||||
content: |
|
chdir: "~/.rbenv/src"
|
||||||
export PATH="~/.rbenv/bin:${PATH}"
|
when: rbenv_configure is succeeded
|
||||||
eval "$(rbenv init -)"
|
|
||||||
|
|
||||||
- name: mastodon | Check if the Ruby version is already installed
|
- name: mastodon | Update profile settings
|
||||||
shell: "~/.rbenv/bin/rbenv versions | grep -q {{ ruby_version }}"
|
blockinfile:
|
||||||
register: ruby_installed
|
dest: "~/.profile"
|
||||||
ignore_errors: yes
|
content: |
|
||||||
check_mode: no
|
export PATH="~/.rbenv/bin:${PATH}"
|
||||||
|
eval "$(rbenv init -)"
|
||||||
|
|
||||||
- name: mastodon | Install Ruby {{ ruby_version }}
|
- name: mastodon | Check if the Ruby version is already installed
|
||||||
shell: "~/.rbenv/bin/rbenv install {{ ruby_version }}"
|
shell: "~/.rbenv/bin/rbenv versions | grep -q {{ ruby_version }}"
|
||||||
args:
|
register: ruby_installed
|
||||||
executable: /bin/bash
|
ignore_errors: yes
|
||||||
when: ruby_installed is failed
|
check_mode: no
|
||||||
|
|
||||||
- name: mastodon | Set the default Ruby version to {{ ruby_version }}
|
- name: mastodon | Install Ruby {{ ruby_version }}
|
||||||
shell: "~/.rbenv/bin/rbenv global {{ ruby_version }}"
|
shell: "~/.rbenv/bin/rbenv install {{ ruby_version }}"
|
||||||
args:
|
args:
|
||||||
executable: /bin/bash
|
executable: /bin/bash
|
||||||
register: default_ruby_version
|
when: ruby_installed is failed
|
||||||
|
|
||||||
- name: mastodon | Install bundler
|
- name: mastodon | Set the default Ruby version to {{ ruby_version }}
|
||||||
shell: 'export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; gem install bundler:{{ bundler_version }}'
|
shell: "~/.rbenv/bin/rbenv global {{ ruby_version }}"
|
||||||
args:
|
args:
|
||||||
executable: /bin/bash
|
executable: /bin/bash
|
||||||
when: default_ruby_version is succeeded
|
register: default_ruby_version
|
||||||
|
|
||||||
|
- name: mastodon | Install bundler
|
||||||
|
shell: 'export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; gem install bundler:{{ bundler_version }}'
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
when: default_ruby_version is succeeded
|
||||||
Reference in New Issue
Block a user