.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