瀏覽代碼

Initial commit (installation until git clone)

master
Benjamin Neff 7 年之前
當前提交
deaa8e181b
沒有連結到貢獻者的電子郵件帳戶。
共有 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

Loading…
取消
儲存