DevOps

From Noisebridge
Jump to: navigation, search

Ansible[edit]

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[edit]

https://caddyserver.com/

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

Playbook Documentation[edit]

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

The ansible playbook for caddy

Caddy Configuration[edit]

Tutorial/Primer

Caddy configuration file documentation

cli interface, flags and stuff

Noisebridge configuration[edit]

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[edit]

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[edit]

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

molecule[edit]

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

https://github.com/ansible/molecule

why are there two instances, default and alternate?

coredns[edit]

https://coredns.io/

Ansible houses files which contain Noisebridge's dns configuration.

Prometheus[edit]

System monitoring and time series database.

https://prometheus.io/

Playbook configuration[edit]

playbook configuration for prometheus

Noisebridge[edit]

Prometheus is configured to log metrics for various groups of services. As different groups are involved, there is prometheus config in different group_vars files.

node, caddy, and coredns, smartpi

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

mysql (percona)[edit]

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

Ansible[edit]

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

Percona[edit]

the database name is noisebridge_mediawiki

Noisebridge[edit]

Percona is used to serve noisebridge's mediawiki instance.

Grafana[edit]

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.


node exporter[edit]

A basic metrics exporter for prometheus

playbook

[1]