Переглянути джерело

Initial commit (installation until git clone)

tags/v1.0.0
Benjamin Neff 7 роки тому
коміт
deaa8e181b
Аккаунт користувача з таким Email не знайдено
7 змінених файлів з 225 додано та 0 видалено
  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 Переглянути файл

@@ -0,0 +1,13 @@
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 Переглянути файл

@@ -0,0 +1,25 @@
# 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 Переглянути файл

@@ -0,0 +1,18 @@
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 Переглянути файл

@@ -0,0 +1,4 @@
include:
- diaspora.install
# - diaspora.config
# - diaspora.service

+ 81
- 0
diaspora/install.sls Переглянути файл

@@ -0,0 +1,81 @@
{%- 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 Переглянути файл

@@ -0,0 +1,64 @@
{% 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 Переглянути файл

@@ -0,0 +1,20 @@
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

Завантаження…
Відмінити
Зберегти