/kokki-cookbooks/cloudkick/recipes/default.py

https://github.com/rizumu/deploymachine · Python · 58 lines · 46 code · 10 blank · 2 comment · 12 complexity · bfa5c940cb41294766e2f4696c534fe5 MD5 · raw file

  1. from kokki import Execute, Fail, File, Template, Package, Service
  2. assert env.config.cloudkick.oauth_key and env.config.cloudkick.oauth_secret and env.config.cloudkick.hostname
  3. apt_list_path = '/etc/apt/sources.list.d/cloudkick.list'
  4. apt = None
  5. if env.system.platform == "ubuntu":
  6. ver = env.system.lsb['release']
  7. if ver == "10.10":
  8. apt = "deb http://packages.cloudkick.com/ubuntu lucid main"
  9. elif ver == "10.04":
  10. apt = "deb http://packages.cloudkick.com/ubuntu lucid main"
  11. elif ver == "9.10":
  12. apt = "deb http://packages.cloudkick.com/ubuntu karmic main"
  13. elif ver == "9.04":
  14. apt = "deb http://packages.cloudkick.com/ubuntu jaunty main"
  15. elif ver == "8.10":
  16. apt = "deb http://packages.cloudkick.com/ubuntu intrepid main"
  17. elif ver == "8.04":
  18. apt = "deb http://packages.cloudkick.com/ubuntu hardy main"
  19. elif ver == "6.04":
  20. apt = "deb http://packages.cloudkick.com/ubuntu dapper main"
  21. elif env.system.platform == "debian":
  22. ver = env.system.lsb['release']
  23. apt = "deb http://packages.cloudkick.com/ubuntu lucid main"
  24. # if ver == '5.0':
  25. # apt = "deb http://apt.librato.com/debian/ lenny non-free"
  26. if not apt:
  27. raise Fail("Can't find a cloudkick package for your platform/version")
  28. Execute("apt-update-cloudkick",
  29. command = "apt-get update",
  30. action = "nothing")
  31. Execute("curl http://packages.cloudkick.com/cloudkick.packages.key | apt-key add -",
  32. not_if = "(apt-key list | grep 'Cloudkick' > /dev/null)")
  33. File(apt_list_path,
  34. owner = "root",
  35. group ="root",
  36. mode = 0644,
  37. content = apt+"\n",
  38. notifies = [("run", env.resources["Execute"]["apt-update-cloudkick"], True)])
  39. File("/etc/cloudkick.conf",
  40. owner = "root",
  41. group = "root",
  42. mode = 0644,
  43. content = Template("cloudkick/cloudkick.conf.j2"))
  44. Package("cloudkick-agent",
  45. action = "upgrade")
  46. Service("cloudkick-agent",
  47. supports_restart = True,
  48. subscribes = [("restart", env.resources["File"]["/etc/cloudkick.conf"])])