Commit Graph

628 Commits (7d323311f5ca29111e104104b6139de2ae31d424)

Author SHA1 Message Date
Dustin efc78f0db6 roles/dhcpd: Allow disabling DDNS per-subnet
In some cases, DDNS may be enabled globally, but some subnets may not
utilize it. To support this scenario, subnets can set `ddns_updates` to
false.
2018-05-06 13:38:15 -05:00
Dustin 40e9573f57 Move APs to blue network 2018-05-06 13:12:55 -05:00
Dustin 2cf4e71170 dch-gw: dhcpd: Reduce blue pool size
A few more hosts are going to need static addresses, so the pool needs
to start later in the address space to make room for them.
2018-05-06 13:11:57 -05:00
Dustin aba3fe8e04 hosts: Add DCs to radius group
All domain controllers for the *pyrocufflink.blue* domain are RADIUS
servers as well.
2018-05-06 13:10:31 -05:00
Dustin c1e38527d1 radius: PB to configure RADIUS servers
Hosts in the *radius* group will have the *freeradius* role applied to
them by this playbook.
2018-05-06 13:09:18 -05:00
Dustin ebda61b67a roles/freeradius: Role to deploy RADIUS with EAP-TLS
The *freeradius* role is used to install and configure FreeRADIUS. The
configuration system for it is extremely complicated, with dozens of
files in several directories. The default configuration has a plethora
of options enabled that are not needed in most cases, so they are
disabled here. Since the initial (and perhaps only) use case I have for
RADIUS is WiFi authentication via certificates, only the EAP-TLS
mechanism is enabled currently.
2018-05-06 13:06:42 -05:00
Dustin d1cdf1831b ci: Add pipeline for NTP 2018-04-22 11:54:51 -05:00
Dustin 48a5c19232 hosts: Add dc0.p.b to nptd group 2018-04-22 11:20:02 -05:00
Dustin 424275fc57 ntp: Initial PB and role to set up ntpd 2018-04-22 11:19:22 -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 ffc8972abc remount: PB to remount read-only filesystems
Many hosts have a read-only root filesystem, as well as some other
read-only paths that need to be remounted before configuration changes
can be made. The `remount.yml` playbook can be used to remount select
filesystems as either read-write or read-only (the default). It is
intended to be used before and after other playbooks, to ensure the
filesystems are in the correct state.
2018-04-15 13:45:38 -05:00
Dustin 7ce3c0e2c6 hosts: Add smtp0.p.b to zabbix 2018-04-15 13:30:08 -05:00
Dustin 2b127e1616 hosts: Add zbx0.p.b to smtp-server
Zabbix servers should also be SMTP relays, so as to limit the
possibility for lost trigger alerts caused by outages.
2018-04-15 13:28:45 -05:00
Dustin 653f5eb1d2 ssh-hostkeys: Add keys for smtp0.p.b 2018-04-15 11:42:24 -05:00
Dustin 933d318cbe ci: Add smtp pipeline 2018-04-15 11:40:39 -05:00
Dustin 2d58fdcebf hosts: Add smtp0.pyrocufflink.blue
The host *smtp0.pyrocufflink.blue* serves the main SMTP relay for the
Pyrocufflink network.
2018-04-15 11:39:33 -05:00
Dustin 94a89d8d78 smtp-relay: PB to deploy Postfix SMTP relay
The `smtp-relay.yml` playbook configures Postfix on the managed node as
an SMTP relay.
2018-04-15 11:38:51 -05:00
Dustin c5abee997e roles/postfix: Deploy Postfix MTA
The *postfix* role installs and configures the Postfix MTA. It currently
supports a number of modes, including direct transfer and relay. Relay
mode supports STARTTLS security and PLAIN authentication.
2018-04-15 11:37:25 -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 9e729014d6 roles/zabbix-agent: Use variable for Include
Since the location of the configuration drop-in directory can vary by
distribution, it is important to expand the `zbx_agent_config_dir`
variable in the `Include` parameter.
2018-04-14 16:22:48 -05:00
Dustin 290a0fcfef roles/zabbix-agent: Correct zbx_agent_config_dir
The configuration drop-in directory for the Zabbix agent daemon on
Fedora/RHEL is `/etc/zabbix_agentd.conf.d`, not
`/etc/zabbix_agent.conf.d`.
2018-04-14 16:21:52 -05:00
Dustin 3d1b7f84bf roles/ssh-hostkeys: Add keys for zbx0.p.b 2018-04-14 15:57:50 -05:00
Dustin 55128cded7 ansible.cfg: Unset vault_password_file
Apparently, the `vault_password_file` setting in `ansible.cfg` overrides
the `--vault-password-file` command-line argument, which breaks the
Jenkins `ansiblePlaybook` task.
2018-04-14 15:57:50 -05:00
Dustin 8b5c1fccfc ci: Add pipeline for Zabbix 2018-04-14 15:57:41 -05:00
Dustin f3739d91ac hosts: Add hosts to zabbix group
Hosts in the *zabbix* group will get the Zabbix agent deployed to them.
2018-04-14 15:47:49 -05:00
Dustin 3bbe5aee6a hosts: Add zbx0.pyrocufflink.blue
The host *zbx0.pyrocufflink.blue* (a Raspberry Pi) runs the Zabbix
server and web UI. It has a reserved IPv4 address to simplify reverse
DNS management for now, since Samba's dynamic DNS client does not
register PTR records.
2018-04-14 15:47:30 -05:00
Dustin 9ace01788a zabbix: Playbooks for Zabbix server, agents 2018-04-14 15:31:17 -05:00
Dustin c982f4818f postgresql: PB to deploy PostgreSQL server 2018-04-14 15:28:46 -05:00
Dustin 668b158cf9 roles/zabbix-agent: Deploy Zabbix agent
The *zabbix-agent* role installs the Zabbix monitoring agent on the
managed node, and sets it up to communicate with the Zabbix server
specified by the `zabbix_server` variable. This role "should" be
compatible with most distributions; it has been tested with Fedora and
Gentoo.
2018-04-14 15:27:02 -05:00
Dustin 3a7c9b52bf roles/zabbix-server: Deploy Zabbix server, web UI
The *zabbix-server* role deploys the Zabbix server database, daemon, and
web interface. It requires the *apache* role to configure Apache HTTPD
to serve the web UI.
2018-04-14 15:26:54 -05:00
Dustin afe4fb7eff roles/postgresql-server: Deploy PostgreSQL
The *postgresql-server* role installs and configures PostgreSQL on
Fedora/RHEL-based distributions.
2018-04-14 15:23:44 -05:00
Dustin f89b279d3a roles/apache: Role to deploy Apache HTTPD
The *apache* role installs and configures the Apache HTTPD server and
its *mod_ssl* module. It currently only works on Fedora/RHEL-based
distributions.
2018-04-14 15:21:15 -05:00
Dustin 0ce0c0f834 pyrocufflink-dns: Add IPv6 reverse DNS zones
These IPv6 reverse DNS zones are managed by the Samba AD DCs for the
*pyrocufflink.blue* domain. These zones correspond to the IPv6 prefixes
used by the "blue" network.
2018-04-14 15:15:02 -05:00
Dustin be876c1053 ci: Schedule daily runs 2018-04-14 09:43:19 -05:00
Dustin ea5f289905 roles/winbind: Use ad idmap backend
The `ad` identity mapper backend is apparently the only one that can
use shell, home directory, etc. attributes from the directory now (as of
Samba 4.6).
2018-04-08 14:40:04 -05:00
Dustin 5489ddac1f roles/ssh-hostkeys: Add keys for cm0.p.b 2018-04-08 14:28:25 -05:00
Dustin 6d9406e389 ansible.cfg: Set remote_tmp
Many hosts (should) have `/tmp` mounted with the `noexec` flag, which
prevents Ansible modules written there from running. To work around
this, the `remote_tmp` configuration option should be set to a path
under `/var/tmp`, which is not mounted noexec.
2018-04-08 14:26:53 -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 45bb2f5cd3 roles/ansible: Install python-netaddr
The *python-netaddr* package is needed on Ansible control machines for
the `ipaddr`, etc. Jinja2 template filters.
2018-04-08 12:33:54 -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 7c8227c30f jenkins-slave: Apply ssh-hostkeys role
The *ssh-hostkeys* role needs to be applied to Jenkins slave nodes so
that e.g. SCM host keys are available.
2018-04-08 12:32:02 -05:00