DevOps

From Noisebridge
Revision as of 16:01, 27 November 2018 by Rando (talk | contribs)
Jump to navigation Jump to search

Ansible

Ansible is used for infrastructure deployment. More information about Noisebridge's use of Ansible can be found at Ansible and a quick overview of Ansible at Ansible/Quickstart.

https://github.com/noisebridge/ansible

Caddy

https://caddyserver.com/

Caddy is a webserver with https on BY DEFAULT and it is VERY PROUD of this fact.

Playbook Documentation

(e.g. how to deploy caddy with ansible, not how to use caddy)

The ansible playbook for caddy

Caddy Configuration

Tutorial/Primer

Caddy configuration file documentation

cli interface, flags and stuff

Noisebridge configuration

The majority of entries in caddy.yml handle redirects from other noisebridte-ish domains like noisebridge.com to noisebridge.net.

apps like mailman, pipermail with http[s] endpoints are also configured.

Directives

A list of directives seen in noisebridge caddy ansible playbook and their definitions.

prometheus
a metric reporting system.
gzip
serve sites from zipped archives
log
logging configuration
tls
override https default intentionally
redir
sends the client an HTTP redirect status code if the URL matches the specified pattern. It is also possible to make a redirect conditional.
root
specifies the root of the site. This is very useful, in fact required, if the root (/) directory of the website is not the same as where Caddy is being executed from.
index
sets the list of file names that are used as "index" files. When a directory path is requested instead of a specific file, the directory is checked for existing index files. The first matching file name is served.
header
manipulate response headers.
fastcgi
proxies requests to a FastCGI server.
rewrite
request one resource but actually be served another without an HTTP redirect. Rewrites are invisible to the client.

Plugins

cgi
generate dynamic content on your website by means of command line scripts

molecule

"Molecule aids in the development and testing of Ansible roles."

https://github.com/ansible/molecule

why are there two instances, default and alternate?

coredns

https://coredns.io/

Prometheus

System monitoring and time series database.

https://prometheus.io/

Playbook configuration

playbook configuration for prometheus

Noisebridge

Prometheus is configured to log metrics for node, caddy, and coredns.

Q: Why is the web_listen_address "127.0.0.1:9090" instead of "localhost:9090" as lower in the file?

mysql (percona)

Percona is a distribution of MySQL which includes features from MySQL Enterprise edition like availability, availability, security, etc.

Ansible

As Percona is a mysql distribution, it makes use of the ansible role.

Percona

the database name is noisebridge_mediawiki

Noisebridge

Percona is used to serve noisebridge's mediawiki instance.

Grafana

Grafana is a " tool for beautiful monitoring and metric analytics & dashboards for Graphite, InfluxDB & Prometheus & More" github

playbook

The config in grafana.yml is specific to directories, hosts, databases, credentials and various authentications.