Commit Graph

32 Commits (87843e59263d64a97522db6a2e97a1bcf0fd1941)

Author SHA1 Message Date
Dustin 53f2a8e365 ci: Install findutils in build environment
The *findutils* package is needed for the `find` command, which is used
at the end of the CI pipelines to remove the `sudo-pass` vault files.
2019-05-02 16:27:58 -05:00
Dustin b7381b3fb1 ci: Use lockable resource to enforce serial runs
It is important that only one configuration management job run at a
time. Currently, this is enforced by having only one agent with the
*ansible* label, and that agent has only one executor. This is not an
ideal solution, because it requires maintaining a separate machine for
this purpose.

The *Lockable Resources Plugin* provides an alternate solution to this
problem. Using this plugin, jobs can acquire an exclusive lock on a
"resource" that prevents other jobs that require the same resource from
running. Any job that starts while the lock is held will wait until it
is released before executing. This will enforce the same serial
execution policy, but does not require a separate, dedicated machine.
Jobs will be able to run on any executor with the appropriate label.

Using this option, it is now possible to run configuration management
jobs on the normal agents, defining the execution environment in a
Docker image, so the *cm0.pyrocufflink.blue* agent can be
decommissioned.
2019-05-02 09:58:20 -05:00
Dustin 5351e753d7 ci: dch-vpn: Use AD credentials
Now that the VPN server is a member of the *pyrocufflink.blue* domain,
Kerberos credentials are required to manage it.
2018-10-13 12:40:09 -05:00
Dustin bd7e9c88bf ci: dch-vpn: Update host filter 2018-10-13 12:07:30 -05:00
Dustin 0b972da789 ci: Add pipeline for Koji 2018-08-12 10:27:20 -05:00
Dustin 507eec6565 ci: dch-gw: Limit dhcpcd PB to dch-gw
To avoid applying configuration to hosts besides the gateway, the
`dhcpcd.yml` playbook needs to be limited.
2018-08-01 22:13:53 -05:00
Dustin 036234bba5 ci: Add pipeline for dch-vpn playbook 2018-07-01 15:32:14 -05:00
Dustin 7766cc1d05 ci: zabbix: Specify credentials
Since the host *gw0* is not a member of the *pyrocufflink.blue* domain,
GSSAPI authentication does not work. As such, the SSH private key has to
be made available to the `ansible-playbook` process for authentication
to that host.
2018-06-22 19:43:08 -05:00
Dustin cae9f2e3c2 ci: zabbix: Separate server, agent stages
Separating the Zabbix server and agent playbooks into separate stages
allows better visibility into the time taken for each.
2018-06-22 19:43:06 -05:00
Dustin 0500adadfa ci: zabbix: Use multiple sudo-pass files
The `zabbix.yml` playbook applies to hosts that are not members of the
*pyrocufflink.blue* domain, and thus have different passwords for
`sudo`. Using the `-e` argument to `ansible-playbook` and specifying a
single Vault-encrypted file that defines the `ansible_become_password`
variable effectively forces Ansible to try to use that password on every
host. This is because variables defined on the command line, or read
from a file specified on the command line, have the highest precedence.

To use different passwords on different hosts, the normal variable
scoping rules have to be used. To that end, one `sudo-pass` file is
created in the `group_vars/pyrocufflink` directory, so it will apply to
all machines that are members of the *pyrocufflink.blue* domain.
Additionally, another `sudo-pass` file is created in the `host_vars/gw0`
directory; it will only apply to the gateway device.
2018-06-22 19:33:23 -05:00
Dustin 1d2e581a85 ci: Send emails on failed builds 2018-05-19 10:00:34 -05:00
Dustin 72cd67e025 ci: Add pipeline for RADIUS 2018-05-06 18:43:29 -05:00
Dustin d1cdf1831b ci: Add pipeline for NTP 2018-04-22 11:54:51 -05:00
Dustin 20507d4e13 ci: smtp: Remount filesystems 2018-04-16 08:37:06 -05:00
Dustin 2274fb3202 ci: samba-dc: Remount filesystems 2018-04-16 08:35:38 -05:00
Dustin 168f542d6b ci: pyrocufflink: Remount filesystems 2018-04-16 08:35:34 -05:00
Dustin 6bd89c9206 ci: dch-gw: Remount filesystems 2018-04-16 07:33:02 -05:00
Dustin e61fe015ed ci: zabbix: Remount filesystems 2018-04-15 13:48:54 -05:00
Dustin 933d318cbe ci: Add smtp pipeline 2018-04-15 11:40:39 -05:00
Dustin e8d670c2bf ci: samba-dc: Switch to ansiblePlaybook steps 2018-04-15 10:15:49 -05:00
Dustin 4148ce02a5 ci: dch-gw: Switch to ansiblePlaybook steps 2018-04-15 10:14:41 -05:00
Dustin cccb442c08 ci: pyrocufflink: Switch to ansiblePlaybook steps 2018-04-15 10:12:22 -05:00
Dustin 8b5c1fccfc ci: Add pipeline for Zabbix 2018-04-14 15:57:41 -05:00
Dustin be876c1053 ci: Schedule daily runs 2018-04-14 09:43:19 -05:00
Dustin a4aeda6371 ci: pyrocufflink: Add pipline for domain members
The `pyrocufflink` Jenkins pipleline applies the `pyrocufflink.yml`
playbook to ensure AD domain member configuration is correct.
2018-04-08 14:24:43 -05:00
Dustin f57588d590 ci: samba-dc: Disable check mode 2018-04-08 14:10:55 -05:00
Dustin b13164f77e ci: samba-dc: Use Kerberos authentication 2018-04-08 14:10:40 -05:00
Dustin ac215ab520 ci: samba-dc: Correct credentials sudo-pass ID 2018-04-08 12:43:33 -05:00
Dustin 38884cdb32 ci: Use dedicated slave instead of Docker
Using a dedicated slave node instead of a Docker container has a few
advantages:

* Persistent configuration is possible, without making weird assumptions
  (e.g. Jenkins UID/GID) in the Dockerfile
* Can limit concurrent deployments by controlling executor count on the
  node
2018-04-08 12:32:02 -05:00
Dustin 66339a827d ci: Add Jenkinsfile for domain controllers 2018-04-07 22:57:22 -05:00
Dustin ef52097095 ci: Update known_hosts 2018-04-07 22:57:15 -05:00
Dustin 2272a9fedc ci: Begin continuous integration setup 2018-04-07 17:06:32 -05:00