Extracted the basic role from the madonsible playbook

This commit is contained in:
Emmanouil Kampitakis
2018-06-17 08:48:53 +00:00
commit eb16cabd34
18 changed files with 207 additions and 0 deletions

29
.travis.yml Normal file
View File

@@ -0,0 +1,29 @@
---
language: python
python: "2.7"
# Use the new container infrastructure
sudo: false
# Install ansible
addons:
apt:
packages:
- python-pip
install:
# Install ansible
- pip install ansible
# Check ansible version
- ansible --version
# Create ansible.cfg with correct roles_path
- printf '[defaults]\nroles_path=../' >ansible.cfg
script:
# Basic role syntax check
- ansible-playbook tests/test.yml -i tests/inventory --syntax-check
notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/

38
README.md Normal file
View File

@@ -0,0 +1,38 @@
Basic role for all of madonius' home server
=========
Does the basic stuff you expect a role to do
Requirements
------------
This role expect the machine to be a debian machine.
Role Variables
--------------
None
Dependencies
------------
None
Example Playbook
----------------
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
- hosts: servers
roles:
- { role: username.rolename, x: 42 }
License
-------
BSD
Author Information
------------------
© Madonius 2016

2
defaults/main.yml Normal file
View File

@@ -0,0 +1,2 @@
---
# defaults file for basic

0
files/etc/vim/vimrc Normal file
View File

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/4K5CJyIeBlRO9La6Pm1ZAbjknW+VR1xLOA0QnHNLIecnSyCLS0Gr0xro+o3L4hX8XLDhmfu9LzV+Ih78C0LT2dISXwhnqPXu72QqlzOR/qsCHwhjt8x7tHL3jjLW/J85bljCq+JahyfgzneaoXw36QtHYObh1TFJVCGAivyh6Z/XYGIKqiecgO5r/hQM7UOwOnHmtw8YbowsaV+iQh5dIDjW0lpzx1tXuGi22xB/QXmA7bOEYRt50ZrMYFud2Sc7IlyKsYLahEEAhUPrXJ83ij7j71itnns09tTb6eBCpjFYzVlpTZfPWz1nNHTkOhfqg41+lBjQeDffH6ZvECnz madonius@Brorsen

2
handlers/main.yml Normal file
View File

@@ -0,0 +1,2 @@
---
# handlers file for basic

27
meta/main.yml Normal file
View File

@@ -0,0 +1,27 @@
galaxy_info:
author: Emmanouil Kampitakis
description: Base class for the home infrastructure
company: Hometech Hometechnologies for the Homes of homies
license: GPLv3
min_ansible_version: 2.1
platforms:
- name: Debian
versions:
- all
galaxy_tags: []
# List tags for your role here, one per line. A tag is
# a keyword that describes and categorizes the role.
# Users find roles by searching for tags. Be sure to
# remove the '[]' above if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of
# alphanumeric characters. Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line.
# Be sure to remove the '[]' above if you add dependencies
# to this list.

View File

@@ -0,0 +1,11 @@
users:
- name: madonius
ssh-key: dsa1024 hypersecurekey
uid:
shell: /bin/zsh
comment:
groups:
- sudo
- webadmin
- banana

27
tasks/apt.yml Normal file
View File

@@ -0,0 +1,27 @@
---
- name: Update the installed packages
apt:
update_cache: yes
upgrade: yes
become: true
- name: Install essential packages
package:
name: "{{ item }}"
state: present
become: true
with_items:
- vim
- emacs
- git
- htop
- zsh
- python
- python3
- screen
- tmux
- dnsutils
- stow
- mosh
- fail2ban
- tig

15
tasks/main.yml Normal file
View File

@@ -0,0 +1,15 @@
---
# tasks file for basic
- name: Make apt stuff
include: apt.yml
tags:
- apt
- name: Configure users
include: users.yml
loop: "{{ basic_users }}"
loop_control:
loop_var: os_user
- name: Setup sudo access
include: sudo.yml

8
tasks/sudo.yml Normal file
View File

@@ -0,0 +1,8 @@
---
- name: Give sudo group passwordless sudo
lineinfile:
dest: /etc/sudoers
regexp: "^%sudo"
line: "%sudo ALL=(ALL) NOPASSWD: ALL"
tags: sudo
become: true

16
tasks/users.yml Normal file
View File

@@ -0,0 +1,16 @@
---
- name: "Add user {{ os_user.name }}"
user:
name: "{{ os_user.name }}"
comment: "{{ os_user.comment }}"
uid: "{{ os_user.uid }}"
shell: "{{ os_user.shell }}"
groups: "{{ os_user.groups }}"
state: "{{ os_user.state }}"
become: true
- name: Copy local ssh key to authorized keys file
authorized_key:
user: "{{ os_user.name }}"
key: "{{ os_user.ssh_auth_key }}"
become: true

View File

@@ -0,0 +1,3 @@
# Generated by Vagrant
default ansible_host=127.0.0.1 ansible_port=2222 ansible_user='vagrant' ansible_ssh_private_key_file='/home/madonius/.vagrant.d/insecure_private_key'

10
tests/Vagrantfile vendored Normal file
View File

@@ -0,0 +1,10 @@
Vagrant.configure(2) do |config|
config.vm.hostname = "vagrant.example.com"
config.vm.box = "debian/stretch64"
config.ssh.insert_key = false
config.vm.provision "ansible" do |ansible|
ansible.verbose ="vv"
ansible.playbook = "test.yml"
end
end

2
tests/ansible.cfg Normal file
View File

@@ -0,0 +1,2 @@
[defaults]
roles_path=../../

1
tests/inventory Normal file
View File

@@ -0,0 +1 @@
10.0.0.100

13
tests/test.yml Normal file
View File

@@ -0,0 +1,13 @@
---
- hosts: all
roles:
- role: basic
basic_users:
- name: madonius
comment: 'madonius'
uid: 1337
shell: /bin/zsh
groups: sudo
state: present
ssh_auth_key: >
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB3HexVmU/vTVFUFk2AAB1h3mOOrfFPt1Gq2cBldaYnn madonius@iapeptus

2
vars/main.yml Normal file
View File

@@ -0,0 +1,2 @@
---
# vars file for basic