- Notifications
You must be signed in to change notification settings - Fork1
A stackable multienvironment directory layout for Ansible using unionfs and docker
License
jobcespedes/multienv
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Description: A stackable multienvironment directory layout for Ansible using unionfs. Check thisGithub project with demo data for the environments
There are three methods to run unionfs binary. From unionfs binary in the host, a docker container or a podman container.
Usingunionfs
host binary
- unionfs-fuse
Using docker engine
- Docker
- Docker SDK for Python
Using podman engine
Podman
Define a stackable environment hierarchy inmultienv_union
variable using a list. The last environment in the list has the most priority. For exampledev:
multienv_union: -base -dev
For exampledev:
multienv_union: -base -production
More than two directories can be stacked. For example, to stackstage over dev and base:
multienv_union: -base -dev -stage
For the rest of variables:
- Centos: if using Centos and getting a message like'is mounted on / but it is not a shared mount', you may need to make
multienv_host_mountpoint
a shared mount point withmount --make-rshared <multienv_host_mountpoint>
. Replace<multienv_host_mountpoint>
with the respective value - Depends on other Ansible roles: no
-hosts:allroles: -jobcespedes.multienv
Run it with docker:
ansible-playbook -i localhost, multienv.yml
Run it with podman:
# podman method requires sudoansible-playbook -i localhost, multienv.yml -e multienv_method=podman -K
Run it with binary in host:
ansible-playbook -i localhost, multienv.yml -e multienv_method=binary
Unmount it
ansible-playbook -i localhost, multienv.yml -e multienv_stop=true
Apache 2.0
Job Céspedes:jobcespedes@gmail.com
About
A stackable multienvironment directory layout for Ansible using unionfs and docker