项目作者: painless-software

项目描述 :
Painless software provisioning for your developer machine.
高级语言: Shell
项目地址: git://github.com/painless-software/ansible-role-software.git
创建时间: 2018-04-05T13:05:28Z
项目社区:https://github.com/painless-software/ansible-role-software

开源协议:GNU General Public License v3.0

下载


Ansible Role: Software

Painless software provisioning for your developer machine.

Ansible role for installing and configuring software on desktop computers,
such as developer notebooks in your office.

Inspired by the magnificent puppet-software Puppet module.

Requirements

Supported operating systems and GNU/Linux distributions:

  • Ubuntu 22.04 LTS Jammy
  • Ubuntu 21.10 Impish
  • Ubuntu 21.04 Hirsute
  • Ubuntu 20.04 LTS Focal
  • Ubuntu 18.04 LTS Bionic
  • Kali Linux (Debian)

Others may work but have not been verified by test installations.

Role Variables

Secrets that should be overridden by anyone installing the affected software
(see vars/secrets.yml).

Dependencies

None.

Example Playbook

  1. - hosts: localhost
  2. roles:
  3. - painless.software

Usage

Ideally, you use this role with automated provisioning (e.g. using an ENC like
The Foreman), which sets up your target OS,
installs Ansible, and then launches a playbook similar to the example above.

Alternatively, you can run this Ansible role from the terminal in a manual
fashion, e.g.

  1. ansible localhost -m include_role -a role=painless.software

The more obvious way is to write a simple playbook (see above), specify only
the software you want to install, include your custom settings and/or
personal secrets, and run your playbook as usual:

  1. ansible-playbook playbook.yml -K

Packages that must be downloaded manually cannot be upgraded automatically
without sacrificing speed. To force upgrading use state=latest, e.g.

  1. # HINT: for a list of available tags use --list-tags
  2. ansible-playbook playbook.yml -K -t citrix,geogebra,zoom -e state=latest

To uninstall a software (when supported) use state=absent, e.g.

  1. ansible-playbook playbook.yml -K -t vmware -e state=absent

Prerequisites

Obviously, you need Ansible
to install this role and run your playbook, e.g.

  1. sudo apt-get install ansible
  1. ansible-galaxy install painless.software

If some software fails to install, complaining pip is not installed, either
include the python tag in your Ansible run or run:

  1. sudo apt-get install python3-pip

For software that is provided as snaps on Debian distributions without snap
pre-installed
(e.g. Kali), you
need to include the snap tag in your Ansible run or install and configure
snapd manually, e.g.

  1. sudo apt-get install snapd
  2. sudo systemctl enable --now snapd.socket snapd apparmor
  3. sudo snap install core

Distributions that use Zsh may need to source /etc/zsh/zprofile to set up
PATH for snaps and other applications. In doubt, add this to ~/.zshrc:

  1. source /etc/zsh/zprofile

How Does It Work?

Ansible picks up a description of the state you want your system to be in
in the form of tasks. You can control which tasks are executed and which
variables you pass in by help of the inventory. Write your own inventory
file and use it by specifying it at the command line (via the -i option)
to customize the behavior of the Ansible playbook runs.

If you only want to update specific features use tags (via the --tags
or the --skip-tags option). You can use --list-tags to list all the
available tags.

More Reading

License

GPL 3.0

Author Information

Provided by Painless Software.