Commit Graph

193 Commits (03e5764de1610a787fc1a84a9d2953945289fd1c)

Author SHA1 Message Date
Dustin c85fbedf31 roles/apache: Use event MPM by default
The *event* multi-process module is the default on Fedora, so it should
be used by default wherever possible.
2018-05-28 15:24:34 -05:00
Dustin 02380b23e3 roles/apache: Correct path to MPM config file 2018-05-28 15:24:34 -05:00
Dustin 1c130bf840 samba-dc: Configure TLS 2018-05-28 15:24:34 -05:00
Dustin 93598145b6 roles/samba-dc: Support configuring TLS
In order to enable LDAPS/STARTTLS support in Samba, the `tls enabled`
option must be set to `yes` and the `tls keyfile` and `tls certfile`
options must be set to the path of the private key and certificate
files, respectively, that Samba will use. The `samba_tls_enabled`,
`samba_tls_keyfile`, and `samb_tls_certfile` Ansible variables can be
used to control these values.
2018-05-28 15:24:34 -05:00
Dustin 024f9f719d roles/samba: Remove socket options
The `socket options` directive does not need to be specified in
`smb.conf`. I think I copied it from an example many years ago, and
never bothered to remove it. It is definitely not required, most likely
not helping performance at all, and most likely hindering it.
2018-05-28 09:51:20 -05:00
Dustin 4c90493443 dch-vpn: PB to deploy Pyrocufflink VPN server 2018-05-20 13:23:20 -05:00
Dustin f8641cb912 dch-gw: Host Pyrocufflink VPN locally
This commit adjusts the firewall and networking configuration on dc0 to
host the Pyrocufflink remote access IPsec VPN locally instead of
forwarding it to the internal VPN server.
2018-05-20 13:23:20 -05:00
Dustin 42b8d2e54f roles/dch-vpn-server: Deploy pyrocufflink VPN
The *dch-vpn-server* role configures strongSwan to act as an IPsec
responder for `vpn.pyrocufflink.net` and provide an IKEv2/IPsec VPN for
remote access clients, as well as the reverse VPN to FireMon.
2018-05-20 12:58:07 -05:00
Dustin ae4d1c08f9 roles/strongswan: Base role for strongSwan setup
The *strongwan* role is intended to be used as a dependency of other
roles that use strongSwan for IPsec configuration. It deploys some basic
configuration and configures the *strongswan* service, but does not
configure any connections, secrets, etc.
2018-05-20 12:56:27 -05:00
Dustin 30ec841cad ansible.cfg: Fix remote_tmp
Newer versions of ansible no longer require a single top-level temporary
directory per user, as each run creates its own. Combined with the weird
random failures on *dc0.pyrocufflink.blue* that prevent Jenkins from
using Ansible occasionally, it's better to just let Ansible create its
own temporary directory directly in `/var/tmp` and clean up after itself
when it finishes.
2018-05-19 10:20:22 -05:00
Dustin 1d2e581a85 ci: Send emails on failed builds 2018-05-19 10:00:34 -05:00
Dustin ab9bdd447b dhcpd: Add reservation for diddy.pyrocufflink.blue 2018-05-06 20:08:58 -05:00
Dustin 72cd67e025 ci: Add pipeline for RADIUS 2018-05-06 18:43:29 -05:00
Dustin 4deb17be94 roles/freeradius: Optimize defaults cleanup
Using `state=absent` with the `file` module in a `with_items` loop to
delete the "default" module and site configuration files and the example
certificates is incredibly slow. Especially on the Raspberry Pi, it can
take several minutes to apply this role, even when there are no changes
to make. Using the `command` module and running `rm` to remove these
files, while not as idempotent, is significantly faster. The main
drawback is that each item in the list is not checked, so new items to
remove have to be added to the end of the list instead of in
alphabetical order.
2018-05-06 18:39:39 -05:00
Dustin 67057fc72e Disable DHCP-DDNS on blue network
DNS updates are only allowed on the blue network from domain members.
2018-05-06 13:39:40 -05:00
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