This commit is contained in:
commit
7f90530e81
104
.drone.yml
Normal file
104
.drone.yml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: ansible-test
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
limit: 9
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: prepare_workspace
|
||||||
|
image: alpine
|
||||||
|
commands:
|
||||||
|
- mkdir -p /drone/src/tests/update-system
|
||||||
|
- mv defaults /drone/src/tests/update-system/
|
||||||
|
- mv files /drone/src/tests/update-system/
|
||||||
|
- mv handlers /drone/src/tests/update-system/
|
||||||
|
- mv meta /drone/src/tests/update-system/
|
||||||
|
- mv tasks /drone/src/tests/update-system/
|
||||||
|
- mv templates /drone/src/tests/update-system/
|
||||||
|
- mv vars /drone/src/tests/update-system/
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
- name: test-debian7
|
||||||
|
image: lerentis/ansible:debian-7
|
||||||
|
commands:
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml --syntax-check
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
|
||||||
|
- name: test-debian8
|
||||||
|
image: lerentis/ansible:debian-8
|
||||||
|
commands:
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml --syntax-check
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
|
||||||
|
- name: test-ubuntu14
|
||||||
|
image: lerentis/ansible:ubuntu-14.04
|
||||||
|
commands:
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml --syntax-check
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
|
||||||
|
- name: test-ubuntu16
|
||||||
|
image: lerentis/ansible:ubuntu-16.04
|
||||||
|
commands:
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml --syntax-check
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
|
||||||
|
- name: test-ubuntu18
|
||||||
|
image: lerentis/ansible:ubuntu-18.04
|
||||||
|
commands:
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml --syntax-check
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
|
||||||
|
- name: test-arch
|
||||||
|
image: lerentis/ansible:arch
|
||||||
|
commands:
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml --syntax-check
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
|
||||||
|
- name: test-centos7
|
||||||
|
image: lerentis/ansible:centos-7
|
||||||
|
commands:
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml --syntax-check
|
||||||
|
- ansible-playbook -i tests/inventory tests/test-playbook.yml
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
|
||||||
|
- name: notify
|
||||||
|
image: appleboy/drone-telegram
|
||||||
|
settings:
|
||||||
|
message: "Commit {{ commit.link }} ran with build {{ build.number }} and finished with status {{ build.status }}."
|
||||||
|
to: 14852963
|
||||||
|
token: 335668211:AAF-YgId7iI6ANBuZVy4uVOYYqA4R4uAaqY
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- failure
|
||||||
|
- success
|
||||||
|
depends_on:
|
||||||
|
- prepare_workspace
|
||||||
|
- test-debian7
|
||||||
|
- test-debian8
|
||||||
|
- test-ubuntu14
|
||||||
|
- test-ubuntu16
|
||||||
|
- test-ubuntu18
|
||||||
|
- test-arch
|
||||||
|
- test-centos7
|
18
README.md
Normal file
18
README.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
update-debian
|
||||||
|
=========
|
||||||
|
|
||||||
|
This Role will update a Linux based system and check if a reboot is required
|
||||||
|
|
||||||
|
Example Playbook
|
||||||
|
----------------
|
||||||
|
|
||||||
|
```yml
|
||||||
|
- hosts: servers
|
||||||
|
roles:
|
||||||
|
- { role: update-system }
|
||||||
|
```
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
MIT
|
1
defaults/main.yml
Normal file
1
defaults/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
---
|
0
files/main.yml
Normal file
0
files/main.yml
Normal file
0
handlers/main.yml
Normal file
0
handlers/main.yml
Normal file
20
meta/main.yml
Normal file
20
meta/main.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
galaxy_info:
|
||||||
|
author: Tobias Trabelsi
|
||||||
|
description: Update certain Linux Systems
|
||||||
|
|
||||||
|
license: MIT
|
||||||
|
|
||||||
|
min_ansible_version: 2.4
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- name: CentOS
|
||||||
|
versions:
|
||||||
|
- 7
|
||||||
|
- 8
|
||||||
|
- name: Debian
|
||||||
|
versions:
|
||||||
|
- 10
|
||||||
|
- name: Ubuntu
|
||||||
|
version:
|
||||||
|
- 18.04
|
||||||
|
- 20.04
|
18
tasks/main.yml
Normal file
18
tasks/main.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
- name: Load OS Specific Vars
|
||||||
|
include_vars: "{{ lookup('first_found', possible_files) }}"
|
||||||
|
vars:
|
||||||
|
possible_files:
|
||||||
|
- "../vars/{{ ansible_distribution }}.yml"
|
||||||
|
tags: [ 'install', 'prepare' ]
|
||||||
|
|
||||||
|
- include_tasks: update-RedHat.yml
|
||||||
|
when:
|
||||||
|
- ansible_os_family == 'RedHat'
|
||||||
|
|
||||||
|
- include_tasks: update-Debian.yml
|
||||||
|
when:
|
||||||
|
- ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
- include_tasks: update-Arch.yml
|
||||||
|
when:
|
||||||
|
- ansible_os_family == 'Archlinux'
|
19
tasks/update-Arch.yml
Normal file
19
tasks/update-Arch.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
- name: Update
|
||||||
|
become: yes
|
||||||
|
become_method: sudo
|
||||||
|
pacman:
|
||||||
|
update_cache: yes
|
||||||
|
upgrade: yes
|
||||||
|
when: ansible_os_family == "Archlinux"
|
||||||
|
|
||||||
|
- name: Check if a reboot is required
|
||||||
|
register: reboot_required_file
|
||||||
|
stat:
|
||||||
|
path: /var/run/reboot-required get_md5=no
|
||||||
|
|
||||||
|
- name: Needs Reboot
|
||||||
|
debug:
|
||||||
|
msg: "Restart Required!!"
|
||||||
|
ignore_errors: true
|
||||||
|
when: reboot_required_file.stat.exists == true
|
46
tasks/update-Debian.yml
Normal file
46
tasks/update-Debian.yml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Update apt keys
|
||||||
|
become: yes
|
||||||
|
command: apt-key update
|
||||||
|
when: ansible_os_family == "Debian" or ansible_os_family == "OSMC"
|
||||||
|
|
||||||
|
- name: Upgrade all packages to the latest version
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
upgrade: dist
|
||||||
|
update_cache: yes
|
||||||
|
cache_valid_time: 3600
|
||||||
|
environment:
|
||||||
|
PATH: "{{ ansible_env.PATH }}:/sbin:/usr/sbin"
|
||||||
|
when: ansible_os_family == "Debian" or ansible_os_family == "OSMC"
|
||||||
|
|
||||||
|
- name: Remove useless packages from the cache
|
||||||
|
become: yes
|
||||||
|
become_method: sudo
|
||||||
|
ignore_errors: true
|
||||||
|
command: >
|
||||||
|
apt-get autoremove -y
|
||||||
|
environment:
|
||||||
|
PATH: "{{ ansible_env.PATH }}:/sbin:/usr/sbin"
|
||||||
|
when: ansible_os_family == "Debian" or ansible_os_family == "OSMC"
|
||||||
|
|
||||||
|
- name: install packages
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- "{{ package_list }}"
|
||||||
|
when: install and ansible_os_family == "Debian"
|
||||||
|
|
||||||
|
- name: Check if a reboot is required
|
||||||
|
register: reboot_required_file
|
||||||
|
stat:
|
||||||
|
path: /var/run/reboot-required get_md5=no
|
||||||
|
|
||||||
|
- name: Needs Reboot
|
||||||
|
debug:
|
||||||
|
msg: "Restart Required!!"
|
||||||
|
ignore_errors: true
|
||||||
|
when: reboot_required_file.stat.exists == true
|
9
tasks/update-RedHat.yml
Normal file
9
tasks/update-RedHat.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: install updates
|
||||||
|
become: yes
|
||||||
|
yum:
|
||||||
|
update_cache: yes
|
||||||
|
name: '*'
|
||||||
|
state: latest
|
||||||
|
when: ansible_os_family == "RedHat"
|
8
tests/inventory
Normal file
8
tests/inventory
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[debian]
|
||||||
|
localhost ansible_connection=local ansible_python_interpreter=/usr/bin/python2
|
||||||
|
|
||||||
|
[arch]
|
||||||
|
localhost ansible_connection=local ansible_python_interpreter=/usr/bin/python2
|
||||||
|
|
||||||
|
[centos]
|
||||||
|
localhost ansible_connection=local ansible_python_interpreter=/usr/bin/python2
|
7
tests/test-playbook.yml
Normal file
7
tests/test-playbook.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: test playbook
|
||||||
|
hosts: all
|
||||||
|
gather_facts: True
|
||||||
|
roles:
|
||||||
|
- update-debian
|
1
vars/Archlinux.yml
Normal file
1
vars/Archlinux.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
---
|
1
vars/CentOS.yml
Normal file
1
vars/CentOS.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
---
|
5
vars/Debian.yml
Normal file
5
vars/Debian.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
install: false
|
||||||
|
package_list:
|
||||||
|
- "apt"
|
5
vars/Ubuntu.yml
Normal file
5
vars/Ubuntu.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
install: false
|
||||||
|
package_list:
|
||||||
|
- "apt"
|
1
vars/main.yml
Normal file
1
vars/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
---
|
Loading…
Reference in New Issue
Block a user