Add CI #4
28
.drone.yml
Normal file
28
.drone.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: ansible
|
||||
|
||||
steps:
|
||||
- name: yaml lint
|
||||
image: cytopia/yamllint:alpine
|
||||
commands:
|
||||
- yamllint -c .yamllint.yml .
|
||||
|
||||
- name: ansible lint
|
||||
image: cytopia/ansible-lint:alpine
|
||||
commands:
|
||||
- ansible-lint .
|
||||
|
||||
- name: ansible apply
|
||||
image: plugins/ansible:3
|
||||
settings:
|
||||
inventory: inventory/hosts.yml
|
||||
playbook: site.yml
|
||||
private_key:
|
||||
from_secret: ansible_private_key
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
- push
|
13
.yamllint.yml
Normal file
13
.yamllint.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
extends: default
|
||||
|
||||
ignore: |
|
||||
.yamllint.yml
|
||||
.ansible-lint.yml
|
||||
|
||||
rules:
|
||||
truthy:
|
||||
allowed-values: ['true', 'false']
|
||||
check-keys: false
|
||||
level: error
|
||||
line-length: disable
|
@@ -38,4 +38,3 @@ all:
|
||||
equinox:
|
||||
children:
|
||||
equinox-servers:
|
||||
|
||||
|
@@ -1,51 +0,0 @@
|
||||
galaxy_info:
|
||||
author: Noah Knegt
|
||||
description: Docker role for Ansible to install Docker on a machine.
|
||||
|
||||
# If the issue tracker for your role is not on github, uncomment the
|
||||
# next line and provide a value
|
||||
# issue_tracker_url: http://example.com/issue/tracker
|
||||
|
||||
# Choose a valid license ID from https://spdx.org - some suggested licenses:
|
||||
# - BSD-3-Clause (default)
|
||||
# - MIT
|
||||
# - GPL-2.0-or-later
|
||||
# - GPL-3.0-only
|
||||
# - Apache-2.0
|
||||
# - CC-BY-4.0
|
||||
license: MIT
|
||||
|
||||
min_ansible_version: "2.1"
|
||||
|
||||
# If this a Container Enabled role, provide the minimum Ansible Container version.
|
||||
# min_ansible_container_version:
|
||||
|
||||
#
|
||||
# Provide a list of supported platforms, and for each platform a list of versions.
|
||||
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
||||
# To view available platforms and versions (or releases), visit:
|
||||
# https://galaxy.ansible.com/api/v1/platforms/
|
||||
#
|
||||
# platforms:
|
||||
# - name: Fedora
|
||||
# versions:
|
||||
# - all
|
||||
# - 25
|
||||
# - name: SomePlatform
|
||||
# versions:
|
||||
# - all
|
||||
# - 1.0
|
||||
# - 7
|
||||
# - 99.99
|
||||
|
||||
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.
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-03-2023
|
||||
# @description : This will make sure that docker is installed on the machine.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- name: Get docker script
|
||||
|
@@ -1,16 +1,16 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This file contains all the handlers for the base role.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- name: apt_update
|
||||
apt:
|
||||
update_cache: yes
|
||||
update_cache: true
|
||||
|
||||
- name: restart_sshd
|
||||
service:
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
@@ -6,19 +6,17 @@
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This file contains the tasks for the base role, this role will be applied to
|
||||
# all machines.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- include_vars: "{{ ansible_distribution }}.yml"
|
||||
|
||||
- block:
|
||||
# Setup the ansible user
|
||||
- include_tasks: users/ansible.yml
|
||||
- include_tasks: users/noahk.yml
|
||||
# Setup the ansible user
|
||||
- include_tasks: users/ansible.yml
|
||||
- include_tasks: users/noahk.yml
|
||||
|
||||
# Setup the sshd
|
||||
- include_tasks: system/openssh.yml
|
||||
|
||||
# Setup the repositories for Debian based systems
|
||||
- include_tasks: software/repositories.yml
|
||||
# Setup the sshd
|
||||
- include_tasks: system/openssh.yml
|
||||
|
||||
# Setup the repositories for Debian based systems
|
||||
- include_tasks: software/repositories.yml
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This will contain all the default software for the machines.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- name: Install aptitude and software-properties-common
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This will setup the ssh server on the machine.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- name: Install or update openssh
|
||||
@@ -19,7 +19,7 @@
|
||||
service:
|
||||
name: "{{ openssh_service }}"
|
||||
state: started
|
||||
enabled: yes
|
||||
enabled: true
|
||||
|
||||
- name: configure sshd
|
||||
template:
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : It contains the tasks to properly configure the ansible user.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- name: Add ansible group
|
||||
@@ -38,7 +38,7 @@
|
||||
group: ansible
|
||||
mode: 0700
|
||||
with_items:
|
||||
- { dir: /home/ansible/.ssh }
|
||||
- dir: /home/ansible/.ssh
|
||||
|
||||
- name: Copy ssh public key
|
||||
authorized_key:
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This will setup the normal user on the machine.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- name: Create the group
|
||||
@@ -38,7 +38,7 @@
|
||||
group: noahk
|
||||
mode: 0700
|
||||
with_items:
|
||||
- { dir: /home/noahk/.ssh }
|
||||
- dir: /home/noahk/.ssh
|
||||
|
||||
- name: Copy ssh public key
|
||||
authorized_key:
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This file contains the variables for arch based distros.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
sudo_group: wheel
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This file contains all the variables for the base role, for the debian OS.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
sudo_group: sudo
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This file contains all the variables for the base role, for the debian OS.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
sudo_group: sudo
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This file contains the variables for the base role tasks.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
ansible_password: '$6$8eLzx6DNI/aamHAp$ZJK3kpbXDaMDUxuCFzRbbYL78aqdDnRRd1zbQPO2ED.pQQdcuAEnwBI2Vf3a36j7I5ED4STx6TLQnB8RiY3Vw/'
|
||||
|
@@ -1,17 +1,18 @@
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
# ? ABOUT
|
||||
# @author : Noah Knegt
|
||||
# @email : personal@noahknegt.com
|
||||
# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations
|
||||
# @createdOn : 27-02-2023
|
||||
# @description : This will apply the base configuration to the list of machines.
|
||||
#===================================================================================================
|
||||
# ===================================================================================================
|
||||
|
||||
---
|
||||
- hosts: datacenter
|
||||
remote_user: root
|
||||
roles:
|
||||
- setup
|
||||
when: setup == true
|
||||
|
||||
# Clean up the system
|
||||
- hosts: datacenter
|
||||
@@ -20,12 +21,12 @@
|
||||
tasks:
|
||||
- name: cleanup package cache (debian and ubuntu)
|
||||
apt:
|
||||
autoclean: yes
|
||||
autoclean: true
|
||||
changed_when: false
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: autoremove packages (debian and ubuntu)
|
||||
apt:
|
||||
autoremove: yes
|
||||
purge: yes
|
||||
autoremove: true
|
||||
purge: true
|
||||
when: ansible_os_family == "Debian"
|
Reference in New Issue
Block a user