From 810845441c3ddf2bc8ce9b258280f0790cb2fcd4 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 2 Dec 2013 10:02:53 -0600 Subject: [PATCH] added salt scripts back --- Vagrantfile | 17 +++++++ srv/minion | 2 + srv/salt/common/init.sls | 43 +++++++++++++++++ srv/salt/nginx/init.sls | 15 ++++++ srv/salt/nginx/nginx.conf | 71 ++++++++++++++++++++++++++++ srv/salt/realms/init.sls | 28 +++++++++++ srv/salt/redis/init.sls | 9 ++++ srv/salt/rethinkdb/init.sls | 41 ++++++++++++++++ srv/salt/rethinkdb/rdb0.conf | 10 ++++ srv/salt/supervisor/init.sls | 17 +++++++ srv/salt/supervisor/supervisord.conf | 29 ++++++++++++ srv/salt/top.sls | 10 ++++ srv/salt/users/.bash_profile | 2 + srv/salt/users/init.sls | 44 +++++++++++++++++ srv/salt/users/mysudoers | 1 + 15 files changed, 339 insertions(+) create mode 100644 Vagrantfile create mode 100644 srv/minion create mode 100644 srv/salt/common/init.sls create mode 100644 srv/salt/nginx/init.sls create mode 100644 srv/salt/nginx/nginx.conf create mode 100644 srv/salt/realms/init.sls create mode 100644 srv/salt/redis/init.sls create mode 100644 srv/salt/rethinkdb/init.sls create mode 100644 srv/salt/rethinkdb/rdb0.conf create mode 100644 srv/salt/supervisor/init.sls create mode 100644 srv/salt/supervisor/supervisord.conf create mode 100644 srv/salt/top.sls create mode 100644 srv/salt/users/.bash_profile create mode 100644 srv/salt/users/init.sls create mode 100644 srv/salt/users/mysudoers diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..59b8bdf --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,17 @@ +VAGRANTFILE_API_VERSION = "2" + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + config.vm.box = "precise64" + config.vm.synced_folder "srv/", "/srv/" + config.vm.synced_folder ".", "/home/deploy/realms" + config.vm.provision :salt do |salt| + salt.minion_config = "srv/minion" + salt.run_highstate = true + end +end + +Vagrant::Config.run do |config| + config.vm.forward_port 80, 8000 + config.vm.forward_port 10000, 10000 + config.vm.forward_port 20000, 20000 +end diff --git a/srv/minion b/srv/minion new file mode 100644 index 0000000..995d6f7 --- /dev/null +++ b/srv/minion @@ -0,0 +1,2 @@ +master: localhost +file_client: local diff --git a/srv/salt/common/init.sls b/srv/salt/common/init.sls new file mode 100644 index 0000000..f4c036a --- /dev/null +++ b/srv/salt/common/init.sls @@ -0,0 +1,43 @@ +redis-lea-repo: + pkgrepo.managed: + - name: 'deb http://ppa.launchpad.net/chris-lea/redis-server/ubuntu precise main' + +nodejs-lea-repo: + pkgrepo.managed: + - name: 'deb http://ppa.launchpad.net/chris-lea/node.js/ubuntu precise main' + +python-redis-lea-repo: + pkgrepo.managed: + - name: 'deb http://ppa.launchpad.net/chris-lea/python-redis/ubuntu precise main' + +nginx-stable-repo: + pkgrepo.managed: + - name: 'deb http://ppa.launchpad.net/nginx/stable/ubuntu precise main' + +common-pkgs: + pkg.installed: + - pkgs: + - python + - vim + - build-essential + - screen + - htop + - git + - ntp + - libpcre3-dev + - libevent-dev + - iptraf + - python-software-properties + - python-pip + - python-virtualenv + - python-dev + - pkg-config + - curl + - libxml2-dev + - libxslt1-dev + - nodejs + - require: + - pkgrepo.managed: nodejs-lea-repo + - pkgrepo.managed: redis-lea-repo + - pkgrepo.managed: python-redis-lea-repo + - pkgrepo.managed: nginx-stable-repo \ No newline at end of file diff --git a/srv/salt/nginx/init.sls b/srv/salt/nginx/init.sls new file mode 100644 index 0000000..3d27d9c --- /dev/null +++ b/srv/salt/nginx/init.sls @@ -0,0 +1,15 @@ +nginx: + pkg: + - installed + service.running: + - enable: True + - reload: True + - require: + - pkg: nginx + - watch: + - file: /etc/nginx/conf.d/realms.conf + +/etc/nginx/conf.d/realms.conf: + file.managed: + - template: jinja + - source: salt://nginx/nginx.conf \ No newline at end of file diff --git a/srv/salt/nginx/nginx.conf b/srv/salt/nginx/nginx.conf new file mode 100644 index 0000000..c98eeba --- /dev/null +++ b/srv/salt/nginx/nginx.conf @@ -0,0 +1,71 @@ +{% set root = '/home/deploy/realms/realms' %} +{% set ssl_certificate = False %} +gzip_proxied any; +gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; + +upstream web { + fair; + server 127.0.0.1:10000; +} + +server { + listen 80; + + # Allow file uploads + client_max_body_size 50M; + + location ^~ /static/ { + root {{ root }}; + expires max; + } + + location = /favicon.ico { + rewrite (.*) /static/favicon.ico; + } + + location = /robots.txt { + rewrite (.*) /static/robots.txt; + } + + location / { + proxy_pass_header Server; + proxy_redirect off; + proxy_buffering off; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header Host $http_host; + proxy_pass http://web; + error_page 502 = /maintenance.html; + } + + location /maintenance.html { + root {{ root }}/templates/; + add_header Cache-Control private; + expires epoch; + } +} + +{% if ssl_certificate %} +server { + listen 443; + ssl on; + ssl_certificate {{ ssl_certificate }}; + ssl_certificate_key {{ ssl_certificate_key }}; + + location ^~ /static/ { + root {{ root }}; + expires max; + } + + location / { + proxy_pass_header Server; + proxy_redirect off; + proxy_buffering off; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header Host $http_host; + proxy_pass http://web; + error_page 502 = /maintenance.html; + } +} +{% endif %} \ No newline at end of file diff --git a/srv/salt/realms/init.sls b/srv/salt/realms/init.sls new file mode 100644 index 0000000..20c7e34 --- /dev/null +++ b/srv/salt/realms/init.sls @@ -0,0 +1,28 @@ +python-dev: + pkg.installed + +build-essential: + pkg.installed + +python-pip: + pkg.installed + +virtualenvwrapper: + pip.installed: + - require: + - pkg: python-pip + +bower: + npm.installed: + - require: + - pkg.installed: common-pkgs + +realms-repo: + git.latest: + - unless: test -e /vagrant + - name: git@github.com:scragg0x/realms.git + - target: /home/deploy + - rev: master + - user: deploy + - identity: /home/deploy/.ssh/id_rsa + diff --git a/srv/salt/redis/init.sls b/srv/salt/redis/init.sls new file mode 100644 index 0000000..f89b129 --- /dev/null +++ b/srv/salt/redis/init.sls @@ -0,0 +1,9 @@ +redis-server: + pkg: + - installed + service: + - running + - enable: True + - reload: True + - require: + - pkg: redis-server \ No newline at end of file diff --git a/srv/salt/rethinkdb/init.sls b/srv/salt/rethinkdb/init.sls new file mode 100644 index 0000000..2c1b2c6 --- /dev/null +++ b/srv/salt/rethinkdb/init.sls @@ -0,0 +1,41 @@ +rethinkdb-repo: + pkgrepo.managed: + - name: 'deb http://ppa.launchpad.net/rethinkdb/ppa/ubuntu precise main' + +rethinkdb: + pkg.installed: + - require: + - pkgrepo.managed: rethinkdb-repo + +rethinkdb-user: + user.present: + - name: rethinkdb + - shell: /bin/bash + - home: /home/rethinkdb + +rethinkdb-pip: + pip: + - name: rethinkdb + - installed + - require: + - pkg: python-pip + - pkg: rethinkdb + - pkg: build-essential + +/home/rethinkdb/rdb0: + file.directory: + - user: rethinkdb + - group: rethinkdb + - makedirs: True + +/etc/rethinkdb/instances.d/rdb0.conf: + file.managed: + - source: salt://rethinkdb/rdb0.conf + +rethinkdb-service: + service.running: + - name: rethinkdb + - enable: True + - reload: True + - watch: + - file.managed: /etc/rethinkdb/instances.d/rdb0.conf \ No newline at end of file diff --git a/srv/salt/rethinkdb/rdb0.conf b/srv/salt/rethinkdb/rdb0.conf new file mode 100644 index 0000000..26f1ea9 --- /dev/null +++ b/srv/salt/rethinkdb/rdb0.conf @@ -0,0 +1,10 @@ +runuser=rethinkdb +rungroup=rethinkdb +pid-file=/home/rethinkdb/rdb0/rethinkdb.pid +directory=/home/rethinkdb/rdb0 +bind=all +driver-port=28015 +cluster-port=29015 +port-offset=0 +http-port=20000 +cores=2 \ No newline at end of file diff --git a/srv/salt/supervisor/init.sls b/srv/salt/supervisor/init.sls new file mode 100644 index 0000000..0b62147 --- /dev/null +++ b/srv/salt/supervisor/init.sls @@ -0,0 +1,17 @@ +/etc/supervisord.conf: + file.managed: + - source: salt://supervisor/supervisord.conf + +supervisor-pip: + pip: + - name: supervisor + - installed + - require: + - pkg.installed: python-pip + +supervisor-run: + cmd.run: + - unless: test -e /tmp/supervisord.pid + - name: /usr/local/bin/supervisord + - require: + - file.managed: /etc/supervisord.conf \ No newline at end of file diff --git a/srv/salt/supervisor/supervisord.conf b/srv/salt/supervisor/supervisord.conf new file mode 100644 index 0000000..46484f6 --- /dev/null +++ b/srv/salt/supervisor/supervisord.conf @@ -0,0 +1,29 @@ +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[unix_http_server] +file = /tmp/supervisor.sock +chmod = 0777 + +[supervisorctl] +serverurl = unix:///tmp/supervisor.sock + +[supervisord] +logfile = /tmp/supervisord.log +logfile_maxbytes = 50MB +logfile_backups=10 +loglevel = info +pidfile = /tmp/supervisord.pid +nodaemon = false +minfds = 1024 +minprocs = 200 +umask = 022 +user = root +identifier = supervisor +directory = /tmp +nocleanup = true +childlogdir = /tmp +strip_ansi = false + +[program:realms] +command=/home/deploy/virtualenvs/realms/bin/python /home/deploy/realms/app.py \ No newline at end of file diff --git a/srv/salt/top.sls b/srv/salt/top.sls new file mode 100644 index 0000000..e051b8f --- /dev/null +++ b/srv/salt/top.sls @@ -0,0 +1,10 @@ +base: + '*': + - common + - users + - nodejs + - redis + - nginx + - rethinkdb + - realms + - supervisor \ No newline at end of file diff --git a/srv/salt/users/.bash_profile b/srv/salt/users/.bash_profile new file mode 100644 index 0000000..40566b7 --- /dev/null +++ b/srv/salt/users/.bash_profile @@ -0,0 +1,2 @@ +source /usr/local/bin/virtualenvwrapper.sh +WORKON_HOME=/home/deploy/virtualenvs \ No newline at end of file diff --git a/srv/salt/users/init.sls b/srv/salt/users/init.sls new file mode 100644 index 0000000..5a463c1 --- /dev/null +++ b/srv/salt/users/init.sls @@ -0,0 +1,44 @@ +deploy: + user.present: + - shell: /bin/bash + - home: /home/deploy + - fullname: Deploy + +sudo: + pkg: + - installed + +/etc/sudoers.d/mysudoers: + file.managed: + - source: salt://users/mysudoers + - mode: 440 + - user: root + - group: root + - require: + - pkg: sudo + +/home/deploy: + file.directory: + - user: deploy + - group: deploy + +/home/deploy/.bash_profile: + file.managed: + - source: salt://users/.bash_profile + - mode: 440 + - user: deploy + - group: deploy + - require: + - file.directory: /home/deploy + +/home/deploy/.bashrc: + file.copy: + - mode: 440 + - user: deploy + - group: deploy + - source: /etc/skel/.bashrc + +bashrc-append: + file.append: + - name: /home/deploy/.bashrc + - text: . ~/.bash_profile \ No newline at end of file diff --git a/srv/salt/users/mysudoers b/srv/salt/users/mysudoers new file mode 100644 index 0000000..8790061 --- /dev/null +++ b/srv/salt/users/mysudoers @@ -0,0 +1 @@ +deploy ALL=(ALL) NOPASSWD:ALL \ No newline at end of file