.aeriscloud.yml

.aeriscloud.yml contains the definition of your project, it is a YAML file that can be generated by using aeris init. It contains the following nodes:

project_name

The name of your project, it should match your github repository name.

project_name: test

organization

The organization this project belongs to, tells AerisCloud where to get roles/services from.

organization: my-org

id

A unique ID for your project, you should make sure that you do not have IDs overlapping between projects on the same computer!

id: 12

This id is used to generate the IP used by the box, ips are statically generated by aeriscloud so that NFS file-sharing can be used.

services

This is the list of services that are enabled for your project. You can find the list of services available for your project in the env_production.yml file of your Organization.

services:
  - redis
  - mongodb
  - nodejs

boxes

This is the list of vagrant VMs, with their configuration, most of the time you shouldn’t need more than one box per project but it can be useful to test the same project on different environments.

boxes:
  - name: centos
    basebox: "chef/centos-7.0"
    cpu: 1
    ram: 1024
  - name: debian
    basebox: "chef/debian-8.0"
    cpu: 1
    ram: 1024

The basebox field should either be a basebox from your organization if you have your own boxes, or one from Atlas.

mounts

This can be used to mount additional folders from your local system to the vagrant VM. This is a quite experimental feature and is prone to breaking when trying to share folders between boxes or sharing folders that contain each other (like sharing /home and /home/user).

Folders will be mounted under /home/vagrant/{name}.

mounts:
  mylib: ../mylib  # becomes /home/vagrant/mylib
  .vim: ~/.vim

watch

The watch directive affects which files aeris watch should watch and the command to run on the remote server when they change.

watch:
  directories:
    - lib
    - src
  # patterns and ignores are matched on the absolute
  # file name and as such relative patterns such as
  # ./www/* will not work
  patterns:
    - '*.js'
  ignores:
    - '*.sock'
    - '*/dist/*'
    - '*/www/*'
  # the command here will receive a SIGINT on changes
  # then will be restarted once stopped
  run: node .

browse

Allows you to defined endpoints that can be used with the aeris browse command. Running aeris browse foo will open a browser pointing to the proper path.

browse:
  cms: /cms
  admin: /admin

use_rsync

rsync mode is a special flag that replaces the NFS based filesystem with rsync calls, those synchronization happens only when running commands such as aeris make or aeris git. It is incredibly unstable as a feature and should only be used if you own magic charms or a box of four leaved clovers that might help you appease the rsync-gods.

use_rsync: true

See Rsync Mode for more details about this feature.

rsync_ignores

When use_rsync is enabled, most of the aeris commands will sync your project folder to the running VM, this directive allows you to set folders to be ignored on sync.

rsync_ignores:
  - build
  - data

Extra Variables

Any extra variable that is not part of the list above will be passed to as is to your ansible roles, allowing you to manipulate how some of those roles work.

# have the nodejs role installs the latest version of io.js
node_version: iojs