---
- hosts: general
  remote_user: ubuntu
  vars:
    node_version: 6
    packages:
      - ack-grep
      - build-essential
      - ffmpeg
      - git
      - imagemagick
      - libpq-dev
      - libxml2-dev
      - libxslt1-dev
      - nginx
      - postgresql
      - postgresql-contrib
      - redis-server
      - redis-tools
      - ruby2.3
      - ruby2.3-dev
  tasks:
    - name: set readable host name
      become: true
      hostname: name="{{inventory_hostname}}"

    - name: nginx ppa
      become: true
      apt_repository: >
        repo='ppa:nginx/stable'
        state=present
    - name: ffmpeg for trusty
      become: true
      apt_repository: >
        repo='ppa:mc3man/trusty-media'
        state=present
    - name: brightbox's ppa for ruby
      become: true
      apt_repository: >
        repo='ppa:brightbox/ruby-ng'
        state=present

    - name: node ppa
      become: true
      shell: curl -sL https://deb.nodesource.com/setup_{{node_version}}.x | sudo bash -
    - name: install node
      become: true
      apt: pkg={{item}}={{node_version}}* force=true update_cache=yes
      with_items:
        - nodejs
        - nodejs-dbg
    - name: npm install some things
      become: true
      command: "npm install -g npm@latest json@latest json-diff@latest yarn"

    - name: install all apt packages
      become: true
      apt: pkg={{item}} state=present force=true update_cache=yes
      with_items: "{{packages}}"

    - name: create cert dir
      become: true
      file:
        path: /mnt/mastodon/certs
        state: directory
        mode: 0600
    - name: copy TLS certs
      become: true
      copy:
        src: "/local/path/to/certs/{{item}}"
        dest: "/mnt/mastodon/certs/{{item}}"
        mode: 0600
      with_items:
        - your-cert.pem
        - your-cert.key

    - name: install bundler
      become: true
      command: gem install bundler