--- - hosts: all vars: ruby_version: 2.4.1 handlers: - name: restart nginx service: name=nginx state=restarted tasks: - name: Install packages apt: name="{{item}}" state=installed with_items: - htop - python-psycopg2 - ruby #- passenger #- nginx-full - apt-transport-https - ca-certificates #- build-essential #- ruby-dev - libssl-dev - libreadline-dev - zlib1g-dev - libbz2-dev - libpq-dev #- libcurl4-gnutls-dev #- ruby-bundler #- nodejs - git - name: Enable Jessie backports repository apt_repository: repo="deb http://ftp.debian.org/debian jessie-backports main" - name: Set up american locales to avoid warnings about missing locales locale_gen: name=en_US.UTF-8 state=present - name: Install PostgreSQL apt: name=postgresql state=installed - name: Create PostgreSQL user become: yes become_user: postgres postgresql_user: name=debshots - name: Create PostgreSQL database become: yes become_user: postgres postgresql_db: name=debshots owner=debshots encoding=UTF-8 template=template0 - name: Create application user user: name=debshots groups=adm home=/opt/debshots shell=/bin/bash #- name: Install Passenger Gem # gem: name=passenger state=present #- name: Install Passenger and Nginx # shell: passenger-install-nginx-module --auto #- name: Validate installation # shell: passenger-config validate-install --auto - apt_key: keyserver=keyserver.ubuntu.com id=561F9B9CAC40B2F7 - apt_repository: repo="deb https://oss-binaries.phusionpassenger.com/apt/passenger jessie main" - apt: name="{{item}}" state=installed with_items: - nginx-extras - passenger - name: Enable Passenger in main nginx.conf lineinfile: dest: /etc/nginx/nginx.conf regexp: '# include /etc/nginx/passenger\.conf' line: 'include /etc/nginx/passenger.conf;' backrefs: yes # Install newer Ruby version using rbenv - name: Get rbenv become: yes become_user: debshots git: repo: https://github.com/rbenv/rbenv.git dest: /opt/debshots/.rbenv - name: Get rbenv-install become: yes become_user: debshots git: repo: https://github.com/rbenv/ruby-build.git dest: /opt/debshots/.rbenv/plugins/ruby-build - name: enable rbenv copy: src: files/debshots-bash-profile dest: /opt/debshots/.profile owner: debshots - name: Build Ruby version shell: sudo -iu debshots rbenv install -v {{ruby_version}} creates=/opt/debshots/.rbenv/versions/{{ruby_version}} - name: Install certbot to get certificates from Lets Encrypt apt: name=certbot default_release=jessie-backports - name: Install Bundler gem: name=bundler - name: Install dependencies shell: sudo -iu debshots bundle - name: Make sure that the public/ directory is readable by nginx file: path=/opt/debshots/public mode='go+rx' - name: Make sure that the config.ru is readable by nginx file: path=/opt/debshots/config.ru mode='go+r' - name: Deploy nginx config copy: src: files/nginx.conf dest: /etc/nginx/sites-available/default notify: restart nginx # - debug: msg="Please run: certbot certonly --webroot -w /opt/debshots/public -d screenshots.debian.net"