Ansible role for host basic and common configuration: this role contains essencial general configuration for any Debian-based host.
This role is designed to be used on Debian-based systems. Support for EL-based distros as been dropped on 3.0 !
There were made no assumptions regarding the user that is running these tasks.
At the moment, it provides means to:
- Install ansible dependencies;
- Add custom repositories;
- Upgrades the system's packages;
- Install a list of packages;
- Set hostname;
- Configure timezone;
- Configure NTP;
- Add a swap file if there's none mounted;
- Adds custom mount points and configures their filesystems.
None.
Repositories management:
common_repo_deb: (Optional) List of Debian repositories to be added. Format is:
- { url: 'http://ftp.rnl.ist.utl.pt/pub/debian', codename: 'wheezy', components: 'main contrib' }
common_repo_ppa: (Optional) List of Ubuntu PPA repositories to be added. Format is:
- repo: 'ppa:ppa-user/ppa-name'
common_repo_deb_keys: (Optional) List of Debian repository keys to be added. It only takes effect when set. Format is:
- { url: 'https://ftp-master.debian.org/keys/archive-key-6.0.asc', id: '473041FA' }
- { url: 'https://dl.google.com/linux/linux_signing_key.pub' }
Packages:
common_pkg_state: Specifies if this role will garantee that the packages are installed or installed and updated. Possible values:installedandlatest. Defaults toinstalled. Applies to all action that install packages in this role!common_pkg_list_deb: (Optional) List of packages to be installed in a Debian server. It only takes effect when set.common_pkg_remove_list_deb: (Optional) List of packages to be removed in a Debian server. It only takes effect when set.common_pkg_purge: (Optional) Whether to purge or not packages ofcommon_pkg_remove_list_debin a Debian server. Defaults tono.
Upgrade:
common_upgrade: Whether to upgrade or not the system (dist-upgrade) in a Debian host. Defaults tono.common_upgrade_reboot: Whether to reboot or not the system after a upgrade. Defaults toyes.
Hostname:
common_hostname: Set hostname. Defaults to "ansible".common_hostname_domain: Set host's domain to be used in /etc/hosts. Defaults to "domain".
Timezone:
common_timezone: Timezone to be configured. Defaults toEtc/UTC. Note: Checkout ansible/ansible#5715 for an explanation on the weird regex_replace on this variable on tasktimezone - configure /etc/timezone.
NTP:
common_ntp_servers: Servers to be used by NTP to sync time. Defaults to the following servers, which are Portuguese NTP servers (taken from http://www.pool.ntp.org/zone/pt): '3.pt.pool.ntp.org', '0.europe.pool.ntp.org', '3.europe.pool.ntp.org'.common_ntp_options: (Optional) Some additional options for NTP. It only takes effect when set.
Filesystems:
common_filesystems: (Optional) Create listed filesystems and mounts them according to provided options. This variable is a list of dictionaries, with the following structure:type: Filesystem type (ext4,xfs, etc).device: Device where the filesystem will be created.opts: Options for filesystem creation (mkfsoptions).mount: Mount point path.mount_opts: Mount options for/etc/fstab.passno: Mount filesystem check options.
For more information, run ansible-doc filesystem and ansible-doc mount.
Swap:
Configures a swap file. If there already exists a mounted swap (file or partition) and its size is approximately the same as common_swap_size (in MB), it won't perform any action.
The check is not for the exact same size because the actual mounted size partition is slight smaller than the swap file/partion size. As such, we check for a difference of at least 10%.
common_swap: Enables swap file creation. Defaults toyes.common_swap_size: Defines swap size in MB. Defaults toansible_memtotal_mb.common_swap_fstab: Defines whether or not to add swap to fstab. Defaults toyes.common_swap_path: Defines the path for the swap file. Defaults to/swap.
For testing purposes, a Vagrantfile was added. Simply run vagrant up in your working copy dir to get a Debian host up and provisioned with test.yml playbook.
MIT