Chef

1,249 views

Published on

Chef prezentáció a budapest.rb meetupról.

Hungarian chef presentation from the budapest ruby meetup.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,249
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Chef

  1. 1. Chef budapest.rb 2010. május
  2. 2. Vészi Gábor (veszig) mail: veszig@done.hu web: well.done.hu munka: ezit.hu
  3. 3. chef: konfiguráció menedzsment rendszer (configuration management)
  4. 4. mindenki mást ért alatta...
  5. 5. szerver kliens
  6. 6. szerver x vagyok, y állapotban mi legyen? kell lenned kliens
  7. 7. központilag definiáljuk a szervereink kívánt állapotát
  8. 8. deklaratív, nem imperatív azt definiáljuk, mit akarunk, nem azt, hogyan
  9. 9. milyen programok legyenek fent a gépen
  10. 10. ezeknek milyen beállításaik legyenek
  11. 11. milyen felhasználóink legyenek
  12. 12. milyen szolgáltatások fussanak
  13. 13. stb
  14. 14. mindent
  15. 15. sosem kell belépnünk rendszergazdaként a gépekre, mindent központilag irányítunk
  16. 16. (elméletileg)
  17. 17. reprodukálható rendszerek skálázás, disaster recovery, teszt környezetek
  18. 18. homogén rendszerek, megszűnik a “configuration drift” (mikor minden rendszert különbözően “gányolunk” össze)
  19. 19. dokumentálja a rendszereket
  20. 20. open source alternatívák
  21. 21. #!/bin/bash for HOST in foo bar baz ; do ssh $HOST sudo ~/hacks/ugly.sh done
  22. 22. cfengine
  23. 23. puppet
  24. 24. chef
  25. 25. chef-solo szerver nélkül
  26. 26. chef-solo -r http://foo/cookbooks.tgz -j http://foo/nodes/$HOSTNAME.json
  27. 27. chef-server REST API (CouchDB, RabbitMQ, Solr)
  28. 28. knife parancssoros kliens chef-server API-hoz
  29. 29. $ knife node list [ "alpha.done.hu", "bravo.done.hu" ]
  30. 30. chef-webui ugyanazt az API-t használja, mint a knife, igazi férfiak nem használják
  31. 31. hogyan definiálhatjuk, mit szeretnénk látni a klienseken? (dióhéjban)
  32. 32. amit a kliens értelmez: ruby + DSL
  33. 33. resource-ok: package, template, service, user... (ha valamire esetleg nincs resource, könnyű újat írni)
  34. 34. package "sudo"
  35. 35. template "/etc/sudoers" do source "sudoers.erb" owner "root" group "root" mode "0400" variables( :sudo_groups => ['wheel'], :sudo_users => ['veszig'] ) end
  36. 36. ohai
  37. 37. $ ohai platform [ "gentoo" ]
  38. 38. packages = case node[:platform] when "centos","redhat","fedora" ["openssh-clients","openssh"] when "gentoo" ["openssh"] else ["openssh-client","openssh-server"] end packages.each { |p| package p }
  39. 39. keresés
  40. 40. hosts = {} search(:node, "*:*") do |n| hosts[n[:ipaddress]] = [n[:hostname], n[:fqdn]] end template "/etc/hosts" do source "hosts.erb" variables(:hosts => hosts) end
  41. 41. data bags
  42. 42. data_bag("hosts").each { |id| item = data_bag_item("hosts", id) hosts[item["ip"]] ||= [] hosts[item["ip"]] += item["hosts"] }
  43. 43. Demo
  44. 44. “rendszergazda API” a teljes infrastruktúrához (automatizálás)
  45. 45. rendszer absztrakció (elfedi a rendszerek különbségeit)
  46. 46. megosztható cookbookok
  47. 47. code driven infrastructure
  48. 48. tipográfus → word+titkárnő rendszergazda → chef+fejlesztő
  49. 49. throw away resources (cloud)
  50. 50. kísérletezgetés
  51. 51. nem feltétlenül van mindenhol értelme
  52. 52. köszönöm a figyelmet! kérdések? http://wiki.opscode.com http://github.com/opscode irc://irc.freenode.net/#chef

×