This repository has been archived by the owner on Nov 1, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
140 lines (131 loc) · 7.33 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Ansi-Turtles All The Way Down</title>
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/league.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h3>Ansi-Turtles All The Way Down</h3><br/>
How <a href="http://bonnyci.org">BonnyCI</a> uses
Ansible, Ansible, and Zuul (which runs Ansible)
to test our Ansible<br/><br/>
<div style="float: right">
<img src="images/turtles.jpg" height="350"><br/>
<font size="3pt"><a href="https://www.flickr.com/photos/wwarby/2499825928/in/photolist-4NUga3-dbLwjF-5JSwvs-7csmXM-9QLmgo-71bph8-dBRyVP-dCkp8D-4tzbKb-9eSnar-9sa2bM-rb6Jk3-9Wuj3M-4ZHMBT-6gnGVb-aecRVQ-94EcJg-a6d1km-fspseN-6iBTMh-4FSbEW-qPqRU-9eXhh7-Br2y4d-7U19Hz-5grK15-8Rd2XK-5vDSaf-8w5ywj-9donZR-8kYWYN-86pDiP-52gCLG-iv2t2P-atJVJ-gAi9h9-a3vENd-5sk1kG-32CGk8-nNZTyh-86ndLe-aqJoHA-bBL3PV-4HnK16-6o8AAP-bqsUMX-4EBdbY-dEiiey-mfBAit-9ipCK">src: William Warby</a></font><br/>
</div>
<div style="width: 60%">
<h7>Clint Byrum - Cloud Architect - IBM - clint@fewbar.com<br/>
Twitter: @SpamapS #AnsiTurtles</h7>
</div>
</section>
<section>
<section>What's BonnyCI?<br/><img src="images/bonny.jpg"></section>
<section>
<img src="images/bonny.jpg" style="float: right"/>
<ul style="display: block">
<li>OpenStack's Zuul CI scheduler</li>
<li> + Github</li>
<li> + zuulv3 features</li>
<li> + pirates</li>
<li>Lightning talk tomorrow, MR206 @3:55 -- or chat me up after.</li>
</ul>
<aside class="notes">
<ul style="display: block">
<li>Gating at scale is hard</li>
<li>Cross-project testing is hard</li>
<li>OpenStack has gotten really good at both using Zuul!</li>
<li>So we're building it as a service for Github (or Gerrithub!) users</li>
<li>Looking for <i>patient</i> closed beta <del>pirates</del> users.</li>
</ul>
</side>
</section>
</section>
<section>
<section>
Enough about BonnyCI, what do you use Ansible for?
<img src="images/ansible.svg" height="400" style="border: 0; background-color: transparent; box-shadow: none"/>
</section>
<section>
<ul style="width: 50%; float: left; display: block">
<li>Provision dev/test/prod nodes in our BlueMix Private OpenStack Cloud with os_* modules</li>
<li>Deploy all software (including ... Ansible) and config</li>
<li>Gate our Ansible using Zuul -- Which runs Ansible to setup test nodes, to test all of our.. Ansible</li>
<li>20 GOTO 10
</ul>
<img src="images/escher.jpg" height="350" style="float: right; border: 0; background-color: transparent; box-shadow: none"/>
</section>
</section>
<section>
<section>Wisdom we can share<br/>
<br/>
<i>"The first principle is that you must not fool yourself and you are the easiest person to fool."</i><br/>
<img src="images/feynman.jpg" height="300"/><br/>
<a href="https://en.wikipedia.org/wiki/Richard_Feynman#/media/File:RichardFeynman-PaineMansionWoods1984_copyrightTamikoThiel_bw.jpg"><font size="3pt">source: Tamiko Thiel 1984, CC-BY-SA 3.0</font></a>
</section>
<section>
the os_* modules have gotten really good at talking to OpenStack -- thanks shade!<br/>
<pre><code data-trim data-noescape>
- name: Create per-env hosts
os_server:
cloud: "{{ cloud }}"
name: "{{ item.name }}.{{ subdomain }}"
flavor: "{{ item.flavor | default(default_flavor) }}"
image: "{{ image_uuid }}"
key_name: "{{ item.key_name | default('default') }}"
network: "{{ outer_item.controlplane_network_name }}"
auto_ip: false
security_groups: "{{ item.security_groups }}"
with_items: "{{ outer_item.servers }}"
- name: Associate per-env floating IPs
os_floating_ip:
cloud: "{{ cloud }}"
server: "{{ item.name }}.{{ subdomain }}"
network: "{{ item.floating_ip_network | default(omit) }}"
floating_ip_address: "{{ item.floating_ip_address | default(omit) }}"
with_items: "{{ outer_item.servers}}"
when: item.floating_ip_address is defined or item.floating_ip_network is defined</code></pre>
<a href="https://github.com/BonnyCI/hoist/blob/master/roles/cloud-bootstrap/tasks/env_hosts.yml">https://github.com/BonnyCI/hoist/blob/master/roles/cloud-bootstrap/tasks/env_hosts.yml</a>
</section>
<section>Code-review and fully testing ansible deployments is a really good idea<br/><img src="images/PRStatus.png"/></section>
<section><img src="images/trucks.jpg"/><br/>Containers are cool -- but we're struggling to bring a third piece of automation together with OpenStack and Ansible</section>
</section>
<section>It's all open source! Even the deployment code -- <a href="https://github.com/BonnyCI">https://github.com/BonnyCI</a><br/>Join us!</section>
<section>Thank you!<br/>
<h7>Clint Byrum - Cloud Architect - IBM - clint@fewbar.com<br/>
Twitter: @SpamapS #AnsiTurtles</h7>
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// More info https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
history: true,
// More info https://github.com/hakimel/reveal.js#dependencies
dependencies: [
{ src: 'plugin/markdown/marked.js' },
{ src: 'plugin/markdown/markdown.js' },
{ src: 'plugin/notes/notes.js', async: true },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>