Documentation

2. Upgrading Ansible Tower to 3.0

2.1. Upgrade Planning

This section covers changes that you should keep in mind as you attempt to upgrade your Ansible Tower Instance

  • If you are not yet using a 2.4.x version of Ansible Tower, do not attempt to upgrade directly to Ansible Tower 3.0. You must start with a system which has a verison of Tower 2.4.x installed or the upgrade will fail.
  • Ansible Tower 3.0 simplifies installation and removes the need to run ./configure/ as part of the initial setup.
  • The file tower_setup_conf.yml is no long used. Instead, you should now edit the inventory file in the /ansible-tower-setup-<tower_version>/ directory.
  • Earlier version of Tower used MongoDB when setting up an initial database; please note that Ansible Tower 3.0 has replaced the use of MongoDB with PostgreSQL.

2.2. Obtaining Ansible Tower

Download and then extract the Ansible Tower installation/upgrade tool: http://releases.ansible.com/ansible-tower/setup/

root@localhost:~$ tar xvzf ansible-tower-setup-latest.tar.gz
root@localhost:~$ cd ansible-tower-setup-<tower_version>

To install or upgrade, start by editing the inventory file in the ansible-tower-setup-<tower_version> directory, replacing <tower_version> with the version number, such as 2.4.5 or 3.0.0. directory.

2.3. Setting up Passwords

If you are performing an installation, you can supply any necessary passwords here.

For those who are upgrading, your prior configuration will migrate over and filling out the passwords in the inventory file is unnecessary.

admin_password='password'
redis_password='password'
pg_password='password'

As an example:

[primary]
localhost ansible_connection=local

[secondary]

[database]

[all:vars]
admin_password='password'
redis_password='password'

pg_host=''
pg_port=''

pg_database='awx'
pg_username='awx'
pg_password='password'

Once any necessary changes have been made, you are ready to run ./setup.sh.

Note

Root access to the remote machines is required. With Ansible, this can be achieved in different ways:

  • ansible_ssh_user=root ansible_ssh_password=”your_password_here” inventory host or group variables
  • ansible_ssh_user=root ansible_ssh_private_key_file=”path_to_your_keyfile.pem” inventory host or group variables
  • ANSIBLE_BECOME_METHOD=’sudo’ ANSIBLE_BECOME=True ./setup.sh
  • ANSIBLE_SUDO=True ./setup.sh

2.4. The Setup Playbook

Note

Ansible Tower 3.0 simplifies installation and removes the need to run ./configure/ as part of the installation setup. Users of older versions should follow the instructions available in the v.2.4.5 (or earlier) releases of the Tower Documentation available at: http://docs.ansible.com/

The Tower setup playbook script uses the inventory file and is invoked as ./setup.sh from the path where you unpacked the Tower installer tarball.

root@localhost:~$ ./setup.sh

The setup script takes the following arguments:

  • -i INVENTORY_FILE – Path to Ansible inventory file (default: inventory)
  • -e EXTRA_VARS – Set additional Ansible variables as key=value or YAML/JSON (i.e. -e bundle_install=false forces an online installation)
  • -b – Perform a database backup in lieu of installing
  • -r – Perform a database restore in lieu of installing
  • -h – Show this help message and exit