summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-04-03 20:05:20 +0300
committerLars Wirzenius <liw@liw.fi>2017-04-03 20:05:20 +0300
commitbd86aff06b4d4fc2c15f7f2f9c159b8897779164 (patch)
tree7d934765dddf540e55a215b57a88f38e5738af32 /roles
parent5dac880b86dcccaecd02fa82905611236926a8d2 (diff)
downloaddebian-ansible-bd86aff06b4d4fc2c15f7f2f9c159b8897779164.tar.gz
Add a basic "sane Debias jessie system" role
Diffstat (limited to 'roles')
-rw-r--r--roles/sane_jessie_system/README10
-rw-r--r--roles/sane_jessie_system/defaults/main.yml16
-rw-r--r--roles/sane_jessie_system/tasks/apt.yml22
-rw-r--r--roles/sane_jessie_system/tasks/env.yml19
-rw-r--r--roles/sane_jessie_system/tasks/main.yml2
-rw-r--r--roles/sane_jessie_system/templates/sources.list.j23
6 files changed, 72 insertions, 0 deletions
diff --git a/roles/sane_jessie_system/README b/roles/sane_jessie_system/README
new file mode 100644
index 0000000..a0799a8
--- /dev/null
+++ b/roles/sane_jessie_system/README
@@ -0,0 +1,10 @@
+This role, sane_jessie_system, set up a Debian system to run jessie,
+and does some setup so the system meets minimal criteria for sanity.
+Specifically:
+
+- APT is configured with all the sources.list entries required by the
+ playbook
+- all packages are upgraded to current versions
+- hostname is set
+- the clock is kept accurate with NTP
+- locales are available
diff --git a/roles/sane_jessie_system/defaults/main.yml b/roles/sane_jessie_system/defaults/main.yml
new file mode 100644
index 0000000..2f2f3b2
--- /dev/null
+++ b/roles/sane_jessie_system/defaults/main.yml
@@ -0,0 +1,16 @@
+# These are the variables expected by this role.
+
+# The desired hostname. Default is empty, which means hostname won't
+# be set.
+hostname: ""
+
+
+# Default Debian mirror to use. Default should work everywhere, but if
+# needed, pick a faster mirror, perhaps a local one.
+debian_mirror: http.debian.net
+
+
+# A list of extra APT repositories to add. Each list entry should be a
+# dict with the key "repo", which is the sources.list line to add. If
+# list is empty (as it is by default), nothing extra is added.
+sources_lists: []
diff --git a/roles/sane_jessie_system/tasks/apt.yml b/roles/sane_jessie_system/tasks/apt.yml
new file mode 100644
index 0000000..4977683
--- /dev/null
+++ b/roles/sane_jessie_system/tasks/apt.yml
@@ -0,0 +1,22 @@
+# This is installed before updating sources lists, so that if they
+# happen to use https URLs the package lists can still be update.
+- name: install apt-transport-https
+ apt:
+ name: apt-transport-https
+
+- name: configure main sources.list
+ copy:
+ src: source.list
+ dest: /etc/apt/sources.list
+
+- name: additional sources.list.d/*
+ with_items: "{{ sources_lists }}"
+ apt_repository:
+ repo: "{{ item.repo }}"
+ update_cache: no
+
+- name: dist-upgrade so everything is up to date
+ apt:
+ upgrade: dist
+ update_cache: yes
+ cache_valid_time: 0
diff --git a/roles/sane_jessie_system/tasks/env.yml b/roles/sane_jessie_system/tasks/env.yml
new file mode 100644
index 0000000..d1e7cab
--- /dev/null
+++ b/roles/sane_jessie_system/tasks/env.yml
@@ -0,0 +1,19 @@
+- name: set /etc/hostname
+ copy:
+ content: "{{ hostname }}"
+ dest: /etc/hostname
+ when: hostname
+
+- name: add hostname to /etc/hosts
+ lineinfile:
+ dest: /etc/hosts
+ regexp: '^127\.0\.1\.1 '
+ line: "127.0.1.1 {{ hostname }}"
+ when: hostname
+
+- name: install environment packages
+ apt:
+ name: "{{ item }}"
+ with_items:
+ - locales-all
+ - ntp
diff --git a/roles/sane_jessie_system/tasks/main.yml b/roles/sane_jessie_system/tasks/main.yml
new file mode 100644
index 0000000..dcb3b60
--- /dev/null
+++ b/roles/sane_jessie_system/tasks/main.yml
@@ -0,0 +1,2 @@
+- include: apt.yml
+- include: env.yml
diff --git a/roles/sane_jessie_system/templates/sources.list.j2 b/roles/sane_jessie_system/templates/sources.list.j2
new file mode 100644
index 0000000..4701d19
--- /dev/null
+++ b/roles/sane_jessie_system/templates/sources.list.j2
@@ -0,0 +1,3 @@
+deb http://{{ debian_mirror }}/debian jessie main
+deb http://security.debian.org/ jessie/updates main
+deb {{ debian_mirror }} jessie-updates main