You've already forked ansible-role-common
Merge branch 'master' of bitbucket.org:cybercinch/ansible-role-common
This commit is contained in:
72
.drone.jsonnet
Normal file
72
.drone.jsonnet
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
// Distros to Test on ;)
|
||||||
|
local distros = ['centos7',
|
||||||
|
'centos8',
|
||||||
|
'rockylinux8',
|
||||||
|
'debian10',
|
||||||
|
'debian11'];
|
||||||
|
|
||||||
|
|
||||||
|
/* Configuration of DIND */
|
||||||
|
local docker_service() =
|
||||||
|
{
|
||||||
|
name: 'docker',
|
||||||
|
image: 'docker:dind',
|
||||||
|
privileged: true,
|
||||||
|
volumes: [{ name: 'dockersock', path: '/var/run' },],
|
||||||
|
};
|
||||||
|
|
||||||
|
local email_notification() =
|
||||||
|
{
|
||||||
|
name: 'notify by email',
|
||||||
|
image: 'drillster/drone-email',
|
||||||
|
settings:
|
||||||
|
{ host: 'mail.guise.net.nz',
|
||||||
|
username:
|
||||||
|
{ from_secret: 'EMAIL_USER' },
|
||||||
|
password:
|
||||||
|
{ from_secret: 'EMAIL_PASS' },
|
||||||
|
from: 'drone@guise.net.nz'
|
||||||
|
},
|
||||||
|
when:
|
||||||
|
{ status: [ 'changed', 'failure' ] },
|
||||||
|
};
|
||||||
|
|
||||||
|
local test_distro(distribution) =
|
||||||
|
{
|
||||||
|
name: 'Test on %(distribution)s' % { distribution: distribution },
|
||||||
|
volumes: [{ name: 'dockersock', path: '/var/run' },],
|
||||||
|
image: 'guisea/ansible-molecule:latest',
|
||||||
|
commands: [
|
||||||
|
'sleep 10', // give docker enough time to start
|
||||||
|
'mkdir ${DRONE_REPO_NAME}',
|
||||||
|
'rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}',
|
||||||
|
'cd ${DRONE_REPO_NAME}',
|
||||||
|
'molecule test'
|
||||||
|
],
|
||||||
|
environment:
|
||||||
|
{ MOLECULE_DISTRO: '%(distribution)s' % { distribution: distribution }
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
local gen_pipeline(distro) =
|
||||||
|
{kind: 'pipeline',
|
||||||
|
type: 'docker',
|
||||||
|
name: 'Test on %(distro)s' % { distro: distro },
|
||||||
|
steps: [
|
||||||
|
test_distro(distro),
|
||||||
|
email_notification()],
|
||||||
|
services: [
|
||||||
|
docker_service(),
|
||||||
|
],
|
||||||
|
volumes:
|
||||||
|
[{
|
||||||
|
name: 'dockersock',
|
||||||
|
temp: {},
|
||||||
|
},],
|
||||||
|
};
|
||||||
|
|
||||||
|
// Generate the output
|
||||||
|
[
|
||||||
|
gen_pipeline(distro)
|
||||||
|
for distro in distros
|
||||||
|
]
|
||||||
163
.drone.yml
163
.drone.yml
@@ -1,83 +1,164 @@
|
|||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: centos7
|
name: Test on centos7
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- name: docker
|
- image: docker:dind
|
||||||
image: docker:dind
|
name: docker
|
||||||
privileged: true
|
privileged: true
|
||||||
volumes:
|
volumes:
|
||||||
- name: dockersock
|
- name: dockersock
|
||||||
path: /var/run
|
path: /var/run
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: dockersock
|
|
||||||
temp: {}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Test with Molecule centos7
|
- commands:
|
||||||
image: guisea/ansible-molecule:latest
|
- sleep 10
|
||||||
volumes:
|
|
||||||
- name: dockersock
|
|
||||||
path: /var/run
|
|
||||||
commands:
|
|
||||||
- sleep 10 # give docker enough time to start
|
|
||||||
- mkdir ${DRONE_REPO_NAME}
|
- mkdir ${DRONE_REPO_NAME}
|
||||||
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
|
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
|
||||||
- cd ${DRONE_REPO_NAME}
|
- cd ${DRONE_REPO_NAME}
|
||||||
- molecule test
|
- molecule test
|
||||||
environment:
|
environment:
|
||||||
MOLECULE_DISTRO: centos7
|
MOLECULE_DISTRO: centos7
|
||||||
- name: notify by email
|
image: guisea/ansible-molecule:latest
|
||||||
image: drillster/drone-email
|
name: Test on centos7
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run
|
||||||
|
- image: drillster/drone-email
|
||||||
|
name: notify by email
|
||||||
settings:
|
settings:
|
||||||
|
from: drone@guise.net.nz
|
||||||
host: mail.guise.net.nz
|
host: mail.guise.net.nz
|
||||||
username:
|
|
||||||
from_secret: EMAIL_USER
|
|
||||||
password:
|
password:
|
||||||
from_secret: EMAIL_PASS
|
from_secret: EMAIL_PASS
|
||||||
from: drone@guise.net.nz
|
username:
|
||||||
|
from_secret: EMAIL_USER
|
||||||
when:
|
when:
|
||||||
status: [ changed, failure ]
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
type: docker
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
temp: {}
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: debian10
|
name: Test on centos8
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- name: docker
|
- image: docker:dind
|
||||||
image: docker:dind
|
name: docker
|
||||||
privileged: true
|
privileged: true
|
||||||
volumes:
|
volumes:
|
||||||
- name: dockersock
|
- name: dockersock
|
||||||
path: /var/run
|
path: /var/run
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: dockersock
|
|
||||||
temp: {}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Test with Molecule debian10
|
- commands:
|
||||||
|
- sleep 10
|
||||||
|
- mkdir ${DRONE_REPO_NAME}
|
||||||
|
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
|
||||||
|
- cd ${DRONE_REPO_NAME}
|
||||||
|
- molecule test
|
||||||
|
environment:
|
||||||
|
MOLECULE_DISTRO: centos8
|
||||||
image: guisea/ansible-molecule:latest
|
image: guisea/ansible-molecule:latest
|
||||||
|
name: Test on centos8
|
||||||
volumes:
|
volumes:
|
||||||
- name: dockersock
|
- name: dockersock
|
||||||
path: /var/run
|
path: /var/run
|
||||||
commands:
|
- image: drillster/drone-email
|
||||||
- sleep 10 # give docker enough time to start
|
name: notify by email
|
||||||
|
settings:
|
||||||
|
from: drone@guise.net.nz
|
||||||
|
host: mail.guise.net.nz
|
||||||
|
password:
|
||||||
|
from_secret: EMAIL_PASS
|
||||||
|
username:
|
||||||
|
from_secret: EMAIL_USER
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
type: docker
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
temp: {}
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: Test on debian10
|
||||||
|
services:
|
||||||
|
- image: docker:dind
|
||||||
|
name: docker
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run
|
||||||
|
steps:
|
||||||
|
- commands:
|
||||||
|
- sleep 10
|
||||||
- mkdir ${DRONE_REPO_NAME}
|
- mkdir ${DRONE_REPO_NAME}
|
||||||
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
|
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
|
||||||
- cd ${DRONE_REPO_NAME}
|
- cd ${DRONE_REPO_NAME}
|
||||||
- molecule test
|
- molecule test
|
||||||
environment:
|
environment:
|
||||||
MOLECULE_DISTRO: debian10
|
MOLECULE_DISTRO: debian10
|
||||||
- name: notify by email
|
image: guisea/ansible-molecule:latest
|
||||||
image: drillster/drone-email
|
name: Test on debian10
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run
|
||||||
|
- image: drillster/drone-email
|
||||||
|
name: notify by email
|
||||||
settings:
|
settings:
|
||||||
|
from: drone@guise.net.nz
|
||||||
host: mail.guise.net.nz
|
host: mail.guise.net.nz
|
||||||
username:
|
|
||||||
from_secret: EMAIL_USER
|
|
||||||
password:
|
password:
|
||||||
from_secret: EMAIL_PASS
|
from_secret: EMAIL_PASS
|
||||||
from: drone@guise.net.nz
|
username:
|
||||||
|
from_secret: EMAIL_USER
|
||||||
when:
|
when:
|
||||||
status: [ changed, failure ]
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
type: docker
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
temp: {}
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: Test on debian11
|
||||||
|
services:
|
||||||
|
- image: docker:dind
|
||||||
|
name: docker
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run
|
||||||
|
steps:
|
||||||
|
- commands:
|
||||||
|
- sleep 10
|
||||||
|
- mkdir ${DRONE_REPO_NAME}
|
||||||
|
- rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}
|
||||||
|
- cd ${DRONE_REPO_NAME}
|
||||||
|
- molecule test
|
||||||
|
environment:
|
||||||
|
MOLECULE_DISTRO: debian11
|
||||||
|
image: guisea/ansible-molecule:latest
|
||||||
|
name: Test on debian11
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run
|
||||||
|
- image: drillster/drone-email
|
||||||
|
name: notify by email
|
||||||
|
settings:
|
||||||
|
from: drone@guise.net.nz
|
||||||
|
host: mail.guise.net.nz
|
||||||
|
password:
|
||||||
|
from_secret: EMAIL_PASS
|
||||||
|
username:
|
||||||
|
from_secret: EMAIL_USER
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
type: docker
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
temp: {}
|
||||||
@@ -16,8 +16,6 @@ common_grub_timeout: 5
|
|||||||
postfix_configure: false
|
postfix_configure: false
|
||||||
|
|
||||||
common_packages:
|
common_packages:
|
||||||
- libselinux-python
|
|
||||||
- MySQL-python
|
|
||||||
- nano
|
- nano
|
||||||
- git
|
- git
|
||||||
- htop
|
- htop
|
||||||
|
|||||||
5
tasks/common.yml
Normal file
5
tasks/common.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- include_tasks: networking.yml
|
||||||
|
- include_tasks: communication.yml
|
||||||
|
- include_tasks: grub.yml
|
||||||
|
- include_tasks: motd.yml
|
||||||
@@ -1,2 +1,9 @@
|
|||||||
---
|
---
|
||||||
- include: "{{ ansible_os_family }}.yml"
|
- name: Include tasks only if one of the files exist, otherwise skip the task
|
||||||
|
include_tasks: '{{ item }}'
|
||||||
|
vars:
|
||||||
|
params:
|
||||||
|
files:
|
||||||
|
- '{{ ansible_os_family }}.yml'
|
||||||
|
- 'common.yml'
|
||||||
|
loop: "{{ q('first_found', params, errors='ignore') }}"
|
||||||
|
|||||||
42
utils.libsonnet
Normal file
42
utils.libsonnet
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
docker_service()::
|
||||||
|
{
|
||||||
|
name: 'docker',
|
||||||
|
image: 'docker:dind',
|
||||||
|
privileged: true,
|
||||||
|
volumes: [{ name: 'dockersock', path: '/var/run' },],
|
||||||
|
},
|
||||||
|
|
||||||
|
email_notification()::
|
||||||
|
{
|
||||||
|
name: 'notify by email',
|
||||||
|
image: 'drillster/drone-email',
|
||||||
|
settings:
|
||||||
|
{ host: 'mail.guise.net.nz',
|
||||||
|
username:
|
||||||
|
{ from_secret: 'EMAIL_USER' },
|
||||||
|
password:
|
||||||
|
{ from_secret: 'EMAIL_PASS' },
|
||||||
|
from: 'drone@guise.net.nz'
|
||||||
|
},
|
||||||
|
when:
|
||||||
|
{ status: [ 'changed', 'failure' ] },
|
||||||
|
},
|
||||||
|
|
||||||
|
test_distro(distribution)::
|
||||||
|
{
|
||||||
|
name: 'Test on %(distribution)s' % { distribution: distribution },
|
||||||
|
volumes: [{ name: 'dockersock', path: '/var/run' },],
|
||||||
|
image: 'guisea/ansible-molecule:latest',
|
||||||
|
commands: [
|
||||||
|
'sleep 10', // give docker enough time to start
|
||||||
|
'mkdir ${DRONE_REPO_NAME}',
|
||||||
|
'rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}',
|
||||||
|
'cd ${DRONE_REPO_NAME}',
|
||||||
|
'molecule test'
|
||||||
|
],
|
||||||
|
environment:
|
||||||
|
{ MOLECULE_DISTRO: '%(distribution)s' % { distribution: distribution }
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user