Skip to content

Instantly share code, notes, and snippets.

@praseodym
Created November 3, 2016 20:06
Show Gist options
  • Save praseodym/50bb9b6ac2b5e771c35f554671de759a to your computer and use it in GitHub Desktop.
Save praseodym/50bb9b6ac2b5e771c35f554671de759a to your computer and use it in GitHub Desktop.
Ansible examples
---
- name: ensure wheezy-backports is present
apt_repository: repo="deb http://ftp.nl.debian.org/debian/ wheezy-backports main contrib non-free" state=present update_cache=yes
when: ansible_distribution_release == 'wheezy'
- name: ensure jessie-backports is present
apt_repository: repo="deb http://ftp.nl.debian.org/debian/ jessie-backports main contrib non-free" state=present update_cache=yes
when: ansible_distribution_release == 'jessie'
- name: ensure apt cache is up-to-date
apt: update_cache=yes cache_valid_time=86400
- name: install default list of packages without configuration
apt: pkg={{ item }}
with_items:
- ack-grep
- apt-listchanges
- apt-show-versions
- apt-transport-https
- aptitude
- atop
- autojump
- ca-certificates
- curl
- dnsutils
- git
- htop
- iftop
- iotop
- less
- lsb-release
- lsof
- man
- mc
- psmisc
- python
- rsync
- screen
- sudo
- sysstat
- tig
- vim
- zsh
- name: install packages on jessie and later
apt: pkg={{ item }}
when: ansible_lsb.codename == "jessie" or ansible_lsb.codename == "stretch"
with_items:
- glances
- libpam-systemd
- silversearcher-ag
---
- name: reload systemd
command: systemctl daemon-reload
- name: restart docker-engine
service: name=docker state=restarted enabled=yes
# systemd module is available in Ansible 2.2
# systemd: name=docker state=restarted enabled=yes daemon_reload=yes
- name: restart newrelic-sysmond
service: name=newrelic-sysmond state=restarted
- name: update grub
command: update-grub
---
# 'shrink' option is available in Ansible ≥2.2
- name: create docker metadata lv
lvol: vg=vg0 lv=docker-metadata size=1g # shrink=no
- name: create docker data lv
lvol: vg=vg0 lv=docker-data size=10g # shrink=no
- name: ensure docker.service.d directory exists
file: path=/etc/systemd/system/docker.service.d state=directory mode=0755 owner=root group=root
- name: configure docker storage backend
template: src=docker.j2 dest=/etc/systemd/system/docker.service.d/override.conf mode=0544 owner=root group=root
notify:
- reload systemd
- restart docker-engine
- name: add docker repository key
apt_key: id=58118E89F3A912897C070ADBF76221572C52609D keyserver=hkp://p80.pool.sks-keyservers.net:80 state=present
- name: ensure docker repo is present
apt_repository: repo="deb https://apt.dockerproject.org/repo debian-stretch main" state=present update_cache=yes
when: ansible_lsb.codename == 'stretch'
# Docker package got removed from stretch, so we cannot uninstall it
# - name: ensure distro docker packages are not installed
# action: apt pkg={{ item }} state=absent purge=yes
# with_items:
# - "docker.io*"
- name: ensure xfsprogs is installed
apt: pkg=xfsprogs state=latest
- name: ensure docker-engine is installed
apt: pkg=docker-engine state=latest
- name: fetch and install docker-compose
get_url:
dest: /usr/local/bin/docker-compose
url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-{{ ansible_system }}-{{ ansible_architecture }}"
mode: 0755
- name: update kernel config to enable swap accounting
lineinfile: dest=/etc/default/grub state=present regexp="^GRUB_CMDLINE_LINUX_DEFAULT=.*$" line="GRUB_CMDLINE_LINUX_DEFAULT=\"swapaccount=1 consoleblank=0\""
notify:
- update grub
# https://github.com/elastic/elasticsearch-docker/blob/7c1dc434d32b88b414180cbddc9412acb41cb14c/README.md
- name: set vm.max_map_count to 262144 in sysctl
sysctl: name={{ item.key }} value={{ item.value }}
with_items:
- { key: "vm.max_map_count", value: "262144" }
- name: add new relic user to group docker
user: name=newrelic groups=docker append=yes
notify:
- restart newrelic-sysmond
# {{ ansible_managed }}
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -s devicemapper --storage-opt dm.datadev=/dev/vg0/docker-data --storage-opt dm.metadatadev=/dev/vg0/docker-metadata
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment