ansible-experiments/package_updates/README.md
2018-07-08 02:21:23 -07:00

5.2 KiB

Update packages on Ubuntu and Freebsd

Summary

  • Updates Ubuntu packages and OS with apt.

  • Updates FreeBSD packages with pkg, and OS with freebsd-update.

  • Updates all-the-things, all at once.

📖 Getting Started

Dependencies

macOS Dependencies

brew cask install vagrant virtualbox ; brew install git ansible

Linux - Ubuntu Dependencies

Add this Ansible PPA and Unofficial Vagrant Debian Repository because Vagrant is made by the excuse making developers at HashiCorp.

If you use the Ubuntu Repository version of Vagrant, it is very behind release and will likely throw errors.

sudo add-apt-repository ppa:ansible/ansible ; sudo apt-get update ; sudo bash -c 'echo deb https://vagrant-deb.linestarve.com/ any main > /etc/apt/sources.list.d/wolfgang42-vagrant.list' && sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key AD319E0F7CFFA38B4D9F6E55CE3F3DE92099F7A4 && sudo apt-get update

Then install the dependencies.

sudo apt install -y vagrant virtualbox ansible git rsync python-pip

If you feel you need the latest VirtualBox you can follow the Oracle instructions any time.

FreeBSD Dependencies

root:#

pkg install --yes vagrant virtualbox-ose-nox11 ansible git rsync ca_root_nss

Windows (TBD) Dependencies

💾 Install and Usage

One-liner to start and provision all the VMs and prime them for Ansible.

cd ; git clone https://github.com/stationgroup/ansible-experiments ; cd ~/ansible-experiments/package_updates ; ./setup-requirements

Now while you're in the directory ansible-experiments/package_updates, you can ssh from the host to your Ansible control node, ubuntu1:

vagrant ssh ubuntu1

Or, while you're still at the VM host shell you can check and see if your VMs are running:

vagrant status

If you're all done, need disk space, or you fucked up, you can destroy everything or halt it.

E.g. vagrant destroy vagrant halt vagrant up RTFM

:neckbeard: Details

The Vagrant file being used is a copy from https://github.com/stationgroup/vagrant-labs/tree/master/imperialspeculate.

Two roles are being used: debian-upgrade (an upstream Galaxy role) and freebsd-upgrade (a small role based on what was proposed in the comments of #1 and extended with proper support for check mode.)

The upgrade process is contained in the playbook os_upgrade.yml, which will automatically create proper groups for Ubuntu and FreeBSD hosts. If unneeded, this first play can be left out, and the target hosts: in the second play can be replaced by the relevant groups you have in the inventory (e.g. ec2 tags.)

A local ansible.cfg is defined, and needed for these scripts to run out of the box. This implies that all ansible commands must be run from the ansible-experiments/package_updates folder.

A small script setup-requirements is provided, that initializes everything, including doing a vagrant up. It will generate an ssh-config for said vagrant boxes, download roles from galaxy, and make a base-install for the hosts (installing python dependencies, ansible itself on ubuntu1, a deploying an ssh key to all nodes to be used from the vagrant box ubuntu1, as ansible controller machine.)

When deploying and setting up from the machine where vagrant runs, you need to add some extra arguments: --ssh-extra-args "-F ./vagrant-ssh-config" --inventory hosts-vagrant to ansible execution. These are not necessary once running ansible from ubuntu1.

Contributors

Thanks goes to these wonderful people:


Serge van Ginderachter

📖

Bryan Black

📖

Contributions of any kind are welcome!

Top Supporters

Monthly supporters only.

Amount Supporter Name Supporter Domain
$50/month Tugger Hosting tuggerhosting.com

Support Development

Support Now

Community Discussion

Text and voice chat on the public mumble server.

Join the Public Mumble

Server: pub.bringyourwallet.com

Port: 64738