5. Engineer based in London
Co-Founder of Ukon Cherry
Contractor at TrainLine
19 years of experience as a
SysAdmin
Founding member of Juju and
MAAS while at Canonical
Built a DevOps Engineering Team
at Rackspace
Been DevOps’in for the last 6 years
WhoamI?
11. Automatically define your services
• Active Health Checking
• Dynamically updated service lists
• Can be DNS accessible (if needed)
• API accessible (win!)
ServiceDiscovery
28. It's a Service Discovery System (duh!)
• Service Publications (DNS + API)
• k/v Storage (strongly consistent)
• Health Checks
• With encryption! (whaaaaaat)
WhatisConsul?
55. PuppetHiera-Arrays
notice('Generating rabbitmq cluster members
based on Consul information')
$consul_service_array = hiera('rabbitmq',[])
$mq_cluster_nodes =
consul_info($consul_service_array, 'Address')
notice("Result: ${mq_cluster_nodes}")
56. PuppetHiera-Arrays
notice("Generating neo4j_ha cluster members based on
Consul information")
$consul_service_array = hiera('neo4j_ha',[])
$consul_fields = [ 'Address', 'ServicePort' ]
$consul_ha_initial_hosts =
consul_info($consul_service_array, $consul_fields, ':')
$ha_initial_hosts = join($consul_ha_initial_hosts, ',')
notice("Result: ${ha_initial_hosts}")
79. Vault$ vault write secret/foo value=bar
Success! Data written to: secret/foo
$ vault read secret/foo
Key Value
lease_id secret/foo/9c5f3cf1-1239-0160-4311-d6544fd1018c
lease_duration 2592000
value bar
$ vault delete secret/foo
Success! Deleted 'secret/foo'