SuperTux88's Diaspora Saltstack Formula
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
4.5KB

  1. {%- from "diaspora/map.jinja" import diaspora with context %}
  2. include:
  3. - diaspora.config
  4. diaspora_dependencies:
  5. pkg.installed:
  6. - pkgs: {{ diaspora.dependencies|json }}
  7. - require:
  8. - pkg: diaspora_database_dependency
  9. diaspora_database_dependency:
  10. pkg.installed:
  11. {%- if diaspora.database.type == "mysql" %}
  12. - name: {{ diaspora.mysql_package }}
  13. {%- else %}
  14. - name: {{ diaspora.postgresql_package }}
  15. {%- endif %}
  16. {%- if diaspora.install_redis %}
  17. redis_package:
  18. pkg.installed:
  19. - name: {{ diaspora.redis_package }}
  20. redis_service:
  21. service.running:
  22. - name: {{ diaspora.redis_service }}
  23. {%- endif %}
  24. diaspora_user:
  25. user.present:
  26. - name: {{ diaspora.user.username }}
  27. {%- if 'shell' in diaspora.user %}
  28. - shell: {{ diaspora.user.shell }}
  29. {%- endif %}
  30. {%- if 'home' in diaspora.user %}
  31. - home: {{ diaspora.user.home }}
  32. {%- endif %}
  33. diaspora_rvm_gpg_key:
  34. cmd.run:
  35. - name: gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
  36. - unless: gpg --list-keys 409B6B1796C275462A1703113804BB82D39DC0E3
  37. - runas: {{ diaspora.user.username }}
  38. - require:
  39. - user: diaspora_user
  40. diaspora_rvm_ruby:
  41. rvm.installed:
  42. - name: ruby-{{ diaspora.ruby_version }}
  43. - user: {{ diaspora.user.username }}
  44. - default: True
  45. - require:
  46. - pkg: diaspora_dependencies
  47. - cmd: diaspora_rvm_gpg_key
  48. diaspora_rvm_gemset:
  49. rvm.gemset_present:
  50. - name: diaspora
  51. - ruby: ruby-{{ diaspora.ruby_version }}
  52. - user: {{ diaspora.user.username }}
  53. - require:
  54. - rvm: diaspora_rvm_ruby
  55. diaspora_install_bundler:
  56. gem.installed:
  57. - name: bundler
  58. - user: {{ diaspora.user.username }}
  59. - ruby: ruby-{{ diaspora.ruby_version }}@diaspora
  60. - require:
  61. - rvm: diaspora_rvm_gemset
  62. diaspora_install_directory:
  63. file.directory:
  64. - name: {{ diaspora.install_path }}
  65. - user: {{ diaspora.user.username }}
  66. - mode: 755
  67. - require:
  68. - user: diaspora_user
  69. diaspora_git:
  70. git.latest:
  71. - name: {{ diaspora.repository }}
  72. - rev: {{ diaspora.version }}
  73. - target: {{ diaspora.install_path }}
  74. - user: {{ diaspora.user.username }}
  75. - require:
  76. - file: diaspora_install_directory
  77. - require_in:
  78. - file: {{ diaspora.install_path }}/config/database.yml
  79. diaspora_rvm_ruby_version_alias:
  80. cmd.run:
  81. - name: rvm alias create $(cat {{ diaspora.install_path }}/.ruby-version) ruby-{{ diaspora.ruby_version }}
  82. - runas: diaspora
  83. - unless: rvm alias list | grep "$(cat {{ diaspora.install_path }}/.ruby-version) => ruby-{{ diaspora.ruby_version }}"
  84. - require:
  85. - git: diaspora_git
  86. diaspora_bundle_install:
  87. cmd.run:
  88. - name: rvm ruby-{{ diaspora.ruby_version }}@diaspora do bin/bundle install --jobs $(nproc) --deployment --without test development --with {{ diaspora.database.type }}
  89. - runas: diaspora
  90. - cwd: {{ diaspora.install_path }}
  91. - unless: rvm ruby-{{ diaspora.ruby_version }}@diaspora do bin/bundle check
  92. - env:
  93. - RAILS_ENV: {{ diaspora.environment }}
  94. - require:
  95. - git: diaspora_git
  96. diaspora_create_database:
  97. cmd.run:
  98. - name: rvm ruby-{{ diaspora.ruby_version }}@diaspora do bin/rake db:create db:schema:load
  99. - runas: diaspora
  100. - cwd: {{ diaspora.install_path }}
  101. - onlyif: rvm ruby-{{ diaspora.ruby_version }}@diaspora do bin/rails runner "ActiveRecord::Base.connection" |& grep "database \"{{ diaspora.database.database }}\" does not exist (ActiveRecord::NoDatabaseError)"
  102. - env:
  103. - RAILS_ENV: {{ diaspora.environment }}
  104. - require:
  105. - cmd: diaspora_bundle_install
  106. - file: {{ diaspora.install_path }}/config/database.yml
  107. - file: {{ diaspora.install_path }}/config/diaspora.yml
  108. - onchanges:
  109. - git: diaspora_git
  110. diaspora_migrate_database:
  111. cmd.run:
  112. - name: rvm ruby-{{ diaspora.ruby_version }}@diaspora do bin/rake db:migrate
  113. - runas: diaspora
  114. - cwd: {{ diaspora.install_path }}
  115. - onlyif: rvm ruby-{{ diaspora.ruby_version }}@diaspora do bin/rake db:migrate:status | grep -oE "^\s+down"
  116. - env:
  117. - RAILS_ENV: {{ diaspora.environment }}
  118. - require:
  119. - cmd: diaspora_create_database
  120. - onchanges:
  121. - git: diaspora_git
  122. diaspora_precompile_assets:
  123. cmd.run:
  124. - name: rvm ruby-{{ diaspora.ruby_version }}@diaspora do bin/rake assets:precompile
  125. - runas: diaspora
  126. - cwd: {{ diaspora.install_path }}
  127. - env:
  128. - RAILS_ENV: {{ diaspora.environment }}
  129. - require:
  130. - cmd: diaspora_migrate_database
  131. - onchanges:
  132. - git: diaspora_git