PageRenderTime 59ms CodeModel.GetById 34ms RepoModel.GetById 0ms app.codeStats 0ms

/slides.md

https://gitlab.com/dfedde/aghi_ansible
Markdown | 283 lines | 221 code | 62 blank | 0 comment | 0 complexity | da3c10c0deb632368e72549f60393411 MD5 | raw file
  1. # Who Am I?
  2. * Chris Fedde
  3. * chris@fedde.us
  4. * system programmer
  5. * system administrator
  6. * devops
  7. # Demo one
  8. ( real example )
  9. # Methodology
  10. * See One,
  11. * Do One,
  12. * Teach One.
  13. # Methodology
  14. * Today we get to See One
  15. * and we get to Do One
  16. * The Teach One is for later
  17. # Ground Rules
  18. * Open forum
  19. * Ask, Interrupt, Comment, Kibitz
  20. # Ground Rules
  21. * Tell me when I'm making a mistake
  22. * you'll get extra credit
  23. # Ground Rules
  24. * Breaks every "couple hours"
  25. * Lunch
  26. # Assumptions
  27. * About the course
  28. * About you
  29. # Assumptions
  30. * You have a reasonable grasp of the linux/unix command line
  31. * pipe
  32. * how to navigate directories
  33. * how to run command lines
  34. # Assumptions
  35. * You have Some Kind of Modern(ish) linux distro with you today.
  36. * Modern enough hardware to run Docker
  37. * Or have access to a remote that is.
  38. # Assumptions
  39. * Pair Admin
  40. * Like Pair Programming
  41. * Solves the cross training problem
  42. * Try It
  43. # Assumptions
  44. * Linux CLI
  45. * [DDG](https://duckduckgo.com/)
  46. * [Ansible Documentation](http://docs.ansible.com/)
  47. # Availability
  48. * This courseware is freely available
  49. * [https://gitlab.com/cfedde/aghi_ansible](https://gitlab.com/cfedde/aghi_ansible)
  50. # License
  51. * Many components have their own copyright and license
  52. * All software used is free (lebre)
  53. * This course ware is placed in the public domain.
  54. # Exercises
  55. * I'll describe the step
  56. * Then I'll stop for you to implement it
  57. # Any questions before we get into it?
  58. # Manage a complex of servers
  59. * Maybe a large number of servers
  60. * With minimal personel
  61. # Words
  62. # "Complex of Servers"
  63. # "Cluster"
  64. * Overused
  65. * Meaningless
  66. # "Cluster"
  67. * HA Pair
  68. * HPC
  69. * Server Farm
  70. * database servers
  71. # "Server Complex"
  72. * I like it better
  73. * "administrative domain"
  74. # "Server Complex"
  75. * administrative domain?
  76. # "Server Complex"
  77. * kinda like a broadcast domain
  78. * from networking?
  79. * does that help?
  80. # "Server Complex"
  81. * administrative domain?
  82. * Some number of manageable elements
  83. * Supported by a common team of admins
  84. * Shared access policies
  85. * The machines where you change root password when someone leaves
  86. # Managing the server complex
  87. # Managing the server complex
  88. * How did we get here
  89. # Thought Experiment One
  90. * The Heaping Pile of Servers
  91. ( story )
  92. # Solving the Problem
  93. * Discipline
  94. * Tools
  95. * Automation
  96. * Contain Complexity
  97. * Build on good solutions
  98. # Emulation
  99. # Emulation
  100. # For purposes of Education
  101. * "Reducto ad absurdum"
  102. # Emulation
  103. # For purposes of Education
  104. * Localhost
  105. * Docker containers
  106. # Capstone Demo
  107. * Run it all
  108. ( demo 1)
  109. # About Ansible
  110. * The name
  111. ( ddg )
  112. # About Ansible
  113. * Fictional "superluminal" radio
  114. * quantum entanglement
  115. * bla bla bla
  116. # About Ansible
  117. * Orson Scott Card
  118. * Enders Game
  119. * 1977
  120. # About Ansible
  121. * Ursula LeGuin
  122. * Rocannan's World
  123. * 1966
  124. # About Ansible
  125. * A tool for system configuration management
  126. # About Ansible
  127. ## Alternatives
  128. * A bunch of scripts using scp and ssh in a loop
  129. * A slightly smaller set of scripts using pscp and pssh
  130. # About Ansible
  131. ## Alternatives
  132. * cf-engine
  133. * puppet
  134. * rdist
  135. * chef
  136. # About Ansible
  137. ## Alternatives
  138. * saltstack
  139. * docker
  140. * Virtualization
  141. * vmware/openstack/EC2/"other"
  142. # About Ansible
  143. * Push vs pull
  144. * ansible-pull
  145. * masterless
  146. #About Ansible
  147. ## Requirements
  148. * Manager
  149. * Targets
  150. #About Ansible
  151. ## Requirements Manager
  152. * Modern Linux
  153. * Ansible package
  154. * Package management
  155. #About Ansible
  156. ## Requirements Targets
  157. * Python 2.3 or better
  158. * sshd
  159. * Some login user
  160. * Privileges if needed.
  161. # Emulated Network
  162. * localhost the place where we will run ansible.
  163. * Four target 'servers'. At this level we don't care what their real role is.
  164. * Somewhere down the line we'll want to integrate a new server into our complex
  165. # The Class
  166. ## Bootstrap
  167. * localhost
  168. * targets
  169. # Manager
  170. * localhost the place where we will run ansible.
  171. * Modern Linux
  172. * >= Python 2.3
  173. * sshd
  174. # Targets
  175. * Four target
  176. # The Class
  177. ## Bootstrap Environment
  178. * localhost
  179. * targets
  180. # localhost
  181. # localhost
  182. ## packages
  183. * docker.io
  184. * openssh-server
  185. * ansible
  186. * whois
  187. * fping
  188. * sshpass
  189. * traceroute
  190. * jq
  191. * tree
  192. # localhost
  193. ## configs
  194. * add the hostname to /etc/hosts
  195. * source the environment
  196. * The sfuser
  197. * configuring sudo
  198. * ssh trust sfuser
  199. # Targets
  200. * Emulating real servers using docker
  201. * Dockerfile
  202. * Default docker IP addresses
  203. * Make 5 of them
  204. # Hooking it all up
  205. * sshpass
  206. * Environment variables
  207. * The ```environment``` script
  208. * dns
  209. * (demo)
  210. # The ansible command
  211. * In which we look at command line options
  212. * And run the command against local host
  213. * teaching the sfuser@localhost to trust you
  214. # Capstone Two
  215. * In which you run through the class on your own.
  216. Terms:
  217. * Idempotency
  218. # Notes:
  219. ```
  220. sudo update-alternatives --config editor
  221. ```