Deploy the Ansible roles - Create a requirements.yml file and indicate there the git repos to source the Ansible roles from. See http://docs.ansible.com/ansible/latest/galaxy.html#installing-roles host> nano requirements.yml # from GitHub - name: ansible-odoo src: https://github.com/osiell/ansible-odoo version: origin/master - name: postgresql src: https://github.com/ANXS/postgresql - name: ansible-odoo-nginx src: https://github.com/Eficent/ansible-odoo-nginx - name: ansible-role-certbot src: https://github.com/geerlingguy/ansible-role-certbot host> sudo ansible-galaxy install -r requirements.yml - changing role ansible-odoo from origin/master to origin/master - extracting ansible-odoo to /home/jordi/.ansible/roles/ansible-odoo - ansible-odoo (origin/master) was installed successfully - changing role postgresql from to unspecified - extracting postgresql to /home/jordi/.ansible/roles/postgresql - postgresql was installed successfully - extracting ansible-odoo-nginx to /home/jordi/.ansible/roles/ansible-odoo-nginx - ansible-odoo-nginx was installed successfully - adding dependency: geerlingguy.nginx - extracting ansible-role-certbot to /home/jordi/.ansible/roles/ansible-role-certbot - ansible-role-certbot was installed successfully - downloading role 'nginx', owned by geerlingguy - downloading role from https://github.com/geerlingguy/ansible-role-nginx/archive/2.5.0.tar.gz - extracting geerlingguy.nginx to /home/jordi/.ansible/roles/geerlingguy.nginx - geerlingguy.nginx (2.5.0) was installed successfully Note: use --force to ensure that the latest version of the roles is installed. Install LXC Container This is only to test locally the execution of the ansible playbook on a target host. Create the LXC container: host> sudo lxc-create -t debian -n odoo10 Start the LXC container: host> sudo lxc-start -n odoo10 -d Check that the container is up host> sudo lxc-ls -f NAME STATE AUTOSTART GROUPS IPV4 IPV6 odoo10 RUNNING 0 - 10.0.3.217 - Attach to the container host> sudo lxc-attach -n odoo10 Install nano: container> apt-get install nano Install python container> apt-get install python Allow root to connect over ssh: container> nano /etc/ssh/sshd_config FROM: PermitRootLogin without-password TO: PermitRootLogin yes Restart ssh container> /etc/init.d/ssh restart Provide a password to root: container> passwd Exit from the container and try to ssh into it with the new user container>exit host> ssh root@10.0.3.217 Create Hosts Inventory File Create a project folder under home dir. host> mdir ansible-test && cd ansible-test host> nano inventory odoo10 ansible_ssh_host=10.0.3.217 Create Playbook File host/ansible-test> nano ./playbook.yml - name: Odoo 10 hosts: odoo10 roles: - postgresql - ansible-odoo vars: # [postgresql] - postgresql_version: 9.3 # [odoo] - odoo_version: 11.0 - odoo_install_type: pip - odoo_config_unaccent: True - odoo_pip_requirements_url: https://raw.githubusercontent.com/Eficent/sample-oca-pip-requirements/11.0/requirements.txt - odoo_config_admin_passwd: SuPerPassWorD - odoo_config_addons_path: "" environment: LC_ALL: en_US.UTF-8 Deploy the Playbook to the container host> ansible-playbook -i inventory playbook.yml -e "ansible_ssh_user=root" -k -v