Skip to content

Instantly share code, notes, and snippets.

@arthurlutz
Created November 14, 2014 16:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arthurlutz/ab7e9b3486f690a17a89 to your computer and use it in GitHub Desktop.
Save arthurlutz/ab7e9b3486f690a17a89 to your computer and use it in GitHub Desktop.
mediagoblin installation state
install dependencies:
pkg.installed:
- pkgs:
- git-core
- python
- python-dev
- python-lxml
- python-imaging
- python-virtualenv
install postgresql:
pkg.installed:
- name: postgresql
install postgresql clients:
pkg.installed:
- pkgs:
- postgresql-client
- python-psycopg2
postgresql user and db:
postgres_user.present:
- name: mediagoblin
- password: {{ pillar['mediagoblin']['postgresql_password'] }}
- dbport: {{ pillar['mediagoblin']['postgresql_port'] }}
- createdb: False
- require:
- pkg: postgresql
postgres_database.present:
- name: mediagoblin
- dbport: {{ pillar['mediagoblin']['postgresql_port'] }}
- encoding: UNICODE
- owner: mediagoblin
- require:
- pkg: postgresql
mediagoblin system user:
user.present:
- name : mediagoblin
- createhome: False
- home: /tmp/
- shell: /bin/false
/srv/{{ pillar['mediagoblin']['domain'] }}:
file.directory:
- user : mediagoblin
- require:
- user: mediagoblin
clone depot:
git.latest:
- name: git://gitorious.org/mediagoblin/mediagoblin.git
- target: /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin
- submodules: True
setup virtualenv:
virtualenv.managed:
- name : /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin
- system_site_packages: True
- require:
- git: clone depot
python-pip:
pkg.installed
fup:
pip.installed:
- activate: True
- bin_env: /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin
- require:
- pkg: python-pip
run python develop:
cmd.run:
- name: "/srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin/bin/python setup.py develop"
- cwd: /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin/
- require:
- git: clone depot
copy mediagoblin.ini:
cmd.run:
- name: "cp mediagoblin.ini mediagoblin_local.ini"
- unless: "[ -a /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin/mediagoblin_local.ini ]"
- cwd: /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin/
/srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin/mediagoblin_local.ini:
ini.options_present:
- sections:
mediagoblin:
sql_engine: postgresql://mediagoblin:{{ pillar['mediagoblin']['postgresql_password'] }}@localhost/mediagoblin
/srv/{{ pillar['mediagoblin']['domain'] }}/nginx.conf:
file.managed:
- source: salt://mediagoblin/nginx.conf
- template: jinja
nginx:
pkg:
- installed
service:
- running
/etc/nginx/conf.d/mediagoblin.conf:
file.symlink:
- target: /srv/{{ pillar['mediagoblin']['domain'] }}/nginx.conf
- watch_in:
- service: nginx
/etc/nginx/sites-enabled/mediagoblin.conf:
file.symlink:
- target: /srv/{{ pillar['mediagoblin']['domain'] }}/nginx.conf
- watch_in:
- service: nginx
/etc/nginx/sites-available/default:
file:
- absent
activate video:
pkg.installed:
- pkgs:
- python-gst0.10
- gstreamer0.10-plugins-base
- gstreamer0.10-plugins-bad
- gstreamer0.10-plugins-good
- gstreamer0.10-plugins-ugly
- gstreamer0.10-ffmpeg
ini.options_present:
- name: /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin/mediagoblin_local.ini
- sections:
plugins:
"[[mediagoblin.media_types.video]]"
update database data structures:
cmd.run:
- name: "./bin/gmg dbupdate"
- cwd: /srv/{{ pillar['mediagoblin']['domain'] }}/mediagoblin/
- user: mediagoblin
- order: last
install supervisord for mediagoblin:
pkg.installed:
- name: supervisor
service.running:
- name: supervisor
/etc/supervisor/conf.d/mediagoblin.conf:
file.managed:
- source: salt://mediagoblin/supervisor.conf
- template: jinja2
- context:
domain : {{ pillar['mediagoblin']['domain'] }}
- watch_in:
- service: supervisor
- require:
- pkg: supervisor
mediagoblin-celery:
supervisord.running:
- user: mediagoblin
- require:
- pkg: supervisor
mediagoblin-paste:
supervisord.running:
- user: mediagoblin
- require:
- pkg: supervisor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment