From 1950cb7d9466b72fe7dc8ac648f4c643e18415db Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Thu, 30 Oct 2014 22:08:27 -0400 Subject: [PATCH] Moar vagrant. --- Makefile | 43 +++++++++++++++++++++++++------ README.md | 3 --- salt/application/init.sls | 22 ++++++++-------- salt/application/snipt.nginx.conf | 8 +++--- salt/nginx/init.sls | 10 +++++++ settings.py | 3 ++- settings_local.py-template | 6 ----- 7 files changed, 62 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index a0d02b2..0afd10f 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ pm = /var/www/.virtualenvs/snipt/bin/python /var/www/snipt/manage.py -ssh-server-deploy = ssh deploy@snipt.net -ssh-server-root = ssh root@snipt.net +ssh-server-deploy = ssh deploy@69.164.221.98 -p 55555 +ssh-server-root = ssh root@69.164.221.98 ssh-vagrant = ssh vagrant@localhost -p 2222 -i ~/.vagrant.d/insecure_private_key assets: @@ -72,16 +72,22 @@ db: @sudo -u postgres bash -c 'createdb snipt -O snipt' deploy: - @$(ssh-server) 'cd /var/www/snipt; git pull;' - @$(ssh-server) 'cd /var/www/snipt; make assets;' - @$(ssh-server) '$(pm) migrate' - @$(ssh-server) 'sudo supervisorctl restart snipt' + @$(ssh-server-deploy) 'cd /var/www/snipt; git pull;' + @$(ssh-server-deploy) 'cd /var/www/snipt; make assets;' + @$(ssh-server-deploy) '$(pm) migrate' + @$(ssh-server-deploy) 'sudo supervisorctl restart snipt' deploy-heroku: @git push heroku -server-settings: - @scp -q -P 2222 -i ~/.vagrant.d/insecure_private_key -r settings_local_server.py vagrant@localhost:settings_local.py +salt-server: + @scp -q -P 55555 -r ./salt/ deploy@69.164.221.98:salt + @scp -q -P 55555 -r ./pillar/ deploy@69.164.221.98:pillar + @$(ssh-server-deploy) 'sudo rm -rf /srv' + @$(ssh-server-deploy) 'sudo mkdir /srv' + @$(ssh-server-deploy) 'sudo mv ~/salt /srv/salt' + @$(ssh-server-deploy) 'sudo mv ~/pillar /srv/pillar' + @$(ssh-server-deploy) 'sudo salt-call --local state.highstate' salt-vagrant: @scp -q -P 2222 -i ~/.vagrant.d/insecure_private_key -r ./salt/ vagrant@localhost:salt @@ -92,6 +98,27 @@ salt-vagrant: @$(ssh-vagrant) 'sudo mv ~/pillar /srv/pillar' @$(ssh-vagrant) 'sudo salt-call --local state.highstate' +server: + @$(ssh-server-root) 'sudo apt-get update' + @$(ssh-server-root) 'sudo apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade' + @$(ssh-server-root) 'sudo apt-get install -y software-properties-common python-software-properties' + @$(ssh-server-root) 'sudo add-apt-repository -y ppa:saltstack/salt' + @$(ssh-server-root) 'sudo apt-get update' + @$(ssh-server-root) 'sudo apt-get install -y salt-minion' + @scp -q -r ./salt/ root@69.164.221.98:salt + @scp -q -r ./pillar/ root@69.164.221.98:pillar + @$(ssh-server-root) 'sudo rm -rf /srv' + @$(ssh-server-root) 'sudo mkdir /srv' + @$(ssh-server-root) 'sudo mv ~/salt /srv/salt' + @$(ssh-server-root) 'sudo mv ~/pillar /srv/pillar' + @$(ssh-server-root) 'sudo salt-call --local state.highstate' + @scp -q -P 55555 settings_local_server.py deploy@69.164.221.98:/var/www/snipt/settings_local.py + @$(ssh-server-deploy) 'cd /var/www/snipt; make db;' + @$(ssh-server-deploy) '$(pm) syncdb;' + @$(ssh-server-deploy) '$(pm) migrate;' + @$(ssh-server-deploy) '$(pm) backfill_api_keys' + @$(ssh-server-deploy) '$(pm) rebuild_index --noinput' + vagrant: @vagrant up --provider=vmware_fusion @$(ssh-vagrant) 'sudo apt-get update' diff --git a/README.md b/README.md index b321799..0699187 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,6 @@ Install [Vagrant](https://www.vagrantup.com/) and either [VirtualBox](https://ww 2. `heroku create` 3. `heroku addons:add heroku-postgresql:hobby-dev` 4. `heroku addons:add searchbox` -5. `heroku config:add AWS_ACCESS_KEY_ID=` -6. `heroku config:add AWS_SECRET_ACCESS_KEY=` -7. `heroku config:add AWS_STORAGE_BUCKET_NAME=` 8. `heroku config:add DEBUG=False` 9. `heroku config:add INTERCOM_SECRET_KEY=` 9. `heroku config:add POSTMARK_API_KEY=` diff --git a/salt/application/init.sls b/salt/application/init.sls index 36d0fa1..897706a 100644 --- a/salt/application/init.sls +++ b/salt/application/init.sls @@ -21,17 +21,6 @@ virtualenvwrapper: - require: - group: deploy -/var/www/.virtualenvs/snipt: - file.directory: - - user: {{ pillar.deploy_user }} - - group: deploy - - mode: 775 - - require: - - group: deploy - virtualenv.managed: - - system_site_packages: False - - requirements: /var/www/snipt/requirements.txt - {% if pillar.env_name != 'vagrant' %} /var/www/snipt: @@ -49,6 +38,17 @@ virtualenvwrapper: {% endif %} +/var/www/.virtualenvs/snipt: + file.directory: + - user: {{ pillar.deploy_user }} + - group: deploy + - mode: 775 + - require: + - group: deploy + virtualenv.managed: + - system_site_packages: False + - requirements: /var/www/snipt/requirements.txt + /home/{{ pillar.deploy_user }}/tmp: file.absent diff --git a/salt/application/snipt.nginx.conf b/salt/application/snipt.nginx.conf index 236e4a1..8c7e16d 100644 --- a/salt/application/snipt.nginx.conf +++ b/salt/application/snipt.nginx.conf @@ -22,8 +22,8 @@ upstream backend_snipt { server_name www.{{ pillar.hostname }}; ssl on; - ssl_certificate /etc/certs/2013-dnsimple/{{ pillar.hostname }}.crt; - ssl_certificate_key /etc/certs/2013-dnsimple/{{ pillar.hostname }}.key; + ssl_certificate /etc/certs/{{ pillar.hostname }}.crt; + ssl_certificate_key /etc/certs/{{ pillar.hostname }}.key; rewrite ^(.*) https://{{ pillar.hostname }}$1 permanent; } @@ -32,8 +32,8 @@ upstream backend_snipt { server_name {{ pillar.hostname }} *.{{ pillar.hostname }}; ssl on; - ssl_certificate /etc/certs/2013-dnsimple/{{ pillar.hostname }}.crt; - ssl_certificate_key /etc/certs/2013-dnsimple/{{ pillar.hostname }}.key; + ssl_certificate /etc/certs/{{ pillar.hostname }}.crt; + ssl_certificate_key /etc/certs/{{ pillar.hostname }}.key; location ~* /favicon.ico { root /var/www/snipt/static/img/; diff --git a/salt/nginx/init.sls b/salt/nginx/init.sls index c6b5921..0c8e637 100644 --- a/salt/nginx/init.sls +++ b/salt/nginx/init.sls @@ -20,6 +20,16 @@ nginx: - require: - pkg: nginx +{% if pillar.env_name != 'vagrant' %} + +/etc/certs: + file.directory: + - mode: 644 + - require: + - pkg: nginx + +{% endif %} + /etc/nginx/nginx.conf: file.managed: - source: salt://nginx/nginx.conf diff --git a/settings.py b/settings.py index e97bf7b..3a4174f 100644 --- a/settings.py +++ b/settings.py @@ -57,8 +57,9 @@ SESSION_COOKIE_SECURE = True if 'USE_SSL' in os.environ else False SITE_ID = 1 STATICFILES_DIRS = (os.path.join(BASE_PATH, 'media'),) STATICFILES_FINDERS = ('django.contrib.staticfiles.finders.FileSystemFinder','django.contrib.staticfiles.finders.AppDirectoriesFinder',) +STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT = os.path.join(BASE_PATH, 'static') -STATIC_URL = 'https://snipt.s3.amazonaws.com/' +STATIC_URL = '/static/' TASTYPIE_CANNED_ERROR = "There was an error with your request. The site developers have a record of this error, please email api@snipt.net and we'll help you out." TEMPLATE_DIRS = (os.path.join(PROJECT_PATH, 'templates'),) TEMPLATE_DEBUG = DEBUG diff --git a/settings_local.py-template b/settings_local.py-template index d8684c2..a80fa1c 100644 --- a/settings_local.py-template +++ b/settings_local.py-template @@ -1,17 +1,11 @@ -AWS_ACCESS_KEY_ID = '' -AWS_SECRET_ACCESS_KEY = '' -AWS_STORAGE_BUCKET_NAME = '' CSRF_COOKIE_SECURE = False DEBUG = True INTERCOM_SECRET_KEY = '' POSTMARK_API_KEY = '' RAVEN_CONFIG = { 'dsn': '' } -S3_URL = 'https://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME SECRET_KEY = 'changeme' SESSION_COOKIE_SECURE = False SSLIFY_DISABLE = True -STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' -STATIC_URL = '/static/' STRIPE_SECRET_KEY = '' USE_HTTPS = False