Browse Source

Initial commit (installation until git clone)

tags/v1.0.0
Benjamin Neff 7 years ago
commit
deaa8e181b
No account linked to committer's email address
7 changed files with 225 additions and 0 deletions
  1. +13
    -0
      LICENSE
  2. +25
    -0
      README.md
  3. +18
    -0
      diaspora/defaults.yaml
  4. +4
    -0
      diaspora/init.sls
  5. +81
    -0
      diaspora/install.sls
  6. +64
    -0
      diaspora/map.jinja
  7. +20
    -0
      pillar.example

+ 13
- 0
LICENSE View File

Copyright (c) 2017 Benjamin Neff

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

+ 25
- 0
README.md View File

# diaspora-formula

A saltstack formula to install and configure the distributed social network, [diaspora*](https://diasporafoundation.org/).

> Note: See the full [Salt Formulas installation and usage instructions](http://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html).
>
> This formula only manages diaspora. You are responsible for installing/configuring PostgreSQL or MariaDB as appropriate.

## Available states

### `diaspora`

Install, configure and run diaspora as a service.

### `diaspora.install`

Installs diaspora from github.

### `diaspora.config`

Configures diaspora.

### `diaspora.service`

Creates a service for diaspora and runs it.

+ 18
- 0
diaspora/defaults.yaml View File

diaspora:
repository: git://github.com/diaspora/diaspora.git
version: master
install_path: /srv/diaspora

ruby_version: 2.3.4

install_redis: True

user:
username: diaspora

database:
type: postgresql
host: localhost
username: diaspora
password:
database: diaspora

+ 4
- 0
diaspora/init.sls View File

include:
- diaspora.install
# - diaspora.config
# - diaspora.service

+ 81
- 0
diaspora/install.sls View File

{%- from "diaspora/map.jinja" import diaspora with context %}

diaspora_dependencies:
pkg.installed:
- pkgs: {{ diaspora.dependencies|json }}
- require:
- pkg: diaspora_database_dependency

diaspora_database_dependency:
pkg.installed:
{%- if diaspora.database.type == "mysql" %}
- name: {{ diaspora.mysql_package }}
{%- else %}
- name: {{ diaspora.postgresql_package }}
{%- endif %}

{%- if diaspora.install_redis %}
redis_package:
pkg.installed:
- name: {{ diaspora.redis_package }}
{%- endif %}

diaspora_user:
user.present:
- name: {{ diaspora.user.username }}
{%- if 'shell' in diaspora.user %}
- shell: {{ diaspora.user.shell }}
{%- endif %}
{%- if 'home' in diaspora.user %}
- home: {{ diaspora.user.home }}
{%- endif %}

diaspora_rvm_gpg_key:
cmd.run:
- name: gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
- unless: gpg --list-keys 409B6B1796C275462A1703113804BB82D39DC0E3
- runas: {{ diaspora.user.username }}
- require:
- user: diaspora_user

diaspora_rvm_ruby:
rvm.installed:
- name: ruby-{{ diaspora.ruby_version }}
- user: {{ diaspora.user.username }}
- default: True
- require:
- pkg: diaspora_dependencies
- cmd: diaspora_rvm_gpg_key

diaspora_rvm_gemset:
rvm.gemset_present:
- name: diaspora
- ruby: ruby-{{ diaspora.ruby_version }}
- user: {{ diaspora.user.username }}
- require:
- rvm: diaspora_rvm_ruby

diaspora_install_bundler:
gem.installed:
- name: bundler
- user: {{ diaspora.user.username }}
- ruby: ruby-{{ diaspora.ruby_version }}@diaspora
- require:
- rvm: diaspora_rvm_gemset

diaspora_install_directory:
file.directory:
- name: {{ diaspora.install_path }}
- user: {{ diaspora.user.username }}
- mode: 755
- require:
- user: diaspora_user

diaspora_git:
git.latest:
- name: {{ diaspora.repository }}
- rev: {{ diaspora.version }}
- target: {{ diaspora.install_path }}
- user: {{ diaspora.user.username }}
- require:
- file: diaspora_install_directory

+ 64
- 0
diaspora/map.jinja View File

{% set os_map = salt['grains.filter_by']({
'Debian': {
'dependencies' : [
'build-essential',
'git',
'curl',
'libcurl4-openssl-dev',
'libssl-dev',
'libxml2-dev',
'libxslt1-dev',
'imagemagick',
'libmagickwand-dev',
'ghostscript',
'nodejs',
],
'postgresql_package': 'libpq-dev',
'mysql_package' : 'libmariadbclient-dev',
'redis_package' : 'redis-server',
'redis_service' : 'redis-server',
},
'RedHat': {
'dependencies' : [
'tar',
'make',
'automake',
'gcc',
'gcc-c++',
'git',
'net-tools',
'libcurl-devel',
'libxml2-devel',
'libffi-devel',
'libxslt-devel',
'wget',
'ImageMagick',
'nodejs',
],
'postgresql_package': 'postgresql-devel',
'mysql_package' : 'mariadb-devel',
'redis_package' : 'redis',
'redis_service' : 'redis',
},
}, merge=salt['grains.filter_by']({
'Ubuntu': {
'dependencies' : [
'build-essential',
'git',
'curl',
'libcurl4-openssl-dev',
'libxml2-dev',
'libxslt1-dev',
'libgmp-dev',
'imagemagick',
'libmagickwand-dev',
'nodejs',
],
},
}, grain='os', merge=salt['pillar.get']('diaspora:lookup'))) %}

{% import_yaml "diaspora/defaults.yaml" as defaults %}

{% do defaults.diaspora.update(os_map) %}

{% set diaspora = salt['pillar.get']('diaspora', default=defaults.diaspora, merge=True) %}

+ 20
- 0
pillar.example View File

diaspora:
repository: git://github.com/diaspora/diaspora.git

# version can be a branch or a tag
version: develop

install_path: /srv/diaspora

ruby_version: 2.3.4

user:
username: diaspora
shell: /bin/zsh

database:
type: postgresql
host: localhost
username: diaspora
password: secret
database: diaspora

Loading…
Cancel
Save