You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

site.pp 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # Set default path for all Exec tasks
  2. Exec {
  3. path => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  4. }
  5. class python_dependencies {
  6. exec {"update-packages":
  7. command => "apt-get update",
  8. }
  9. $packages = [
  10. "build-essential",
  11. "python-setuptools",
  12. "python-imaging",
  13. "python-memcache",
  14. "postgresql-server-dev-9.1",
  15. "libmysqlclient-dev",
  16. "git-core",
  17. ]
  18. package {
  19. $packages: ensure => installed,
  20. require => Exec["update-packages"]
  21. }
  22. }
  23. node precise64 {
  24. include python_dependencies
  25. include userconfig
  26. # Apache
  27. class {"apache": }
  28. class {"apache::mod::wsgi": }
  29. file {"/etc/apache2/sites-enabled/vagrant.conf":
  30. source => "/vagrant/sites/sandbox/deploy/apache2/vagrant.conf"
  31. }
  32. # Memcached
  33. class {"memcached": max_memory => 64 }
  34. # Postgres
  35. $user = "oscar_user"
  36. $password = "oscar_password"
  37. $database_name = "oscar_vagrant"
  38. class {"postgresql::server": }
  39. pg_user {$user:
  40. ensure => present,
  41. password => $password,
  42. createdb => true,
  43. require => Class["postgresql::server"],
  44. }
  45. pg_database {$database_name:
  46. ensure => present,
  47. owner => $user,
  48. require => [Pg_user[$user]],
  49. encoding => "UTF8",
  50. }
  51. # MySQL
  52. class {"mysql::python": }
  53. class {"mysql::server":
  54. config_hash => {"root_password" => "root_password"}
  55. }
  56. mysql::db {$database_name:
  57. user => $user,
  58. password => $password,
  59. host => "localhost",
  60. grant => ["all"],
  61. }
  62. # Python
  63. # - set-up a virtualenv
  64. # - install testing requirements
  65. # - install oscar in 'develop' mode
  66. $virtualenv = "/var/www/virtualenv"
  67. include python::dev
  68. include python::venv
  69. python::venv::isolate { $virtualenv:
  70. requirements => "/vagrant/requirements.txt"
  71. }
  72. python::pip::requirements {"/vagrant/requirements_vagrant.txt":
  73. venv => $virtualenv,
  74. require => Python::Venv::Isolate[$virtualenv]
  75. }
  76. exec {"install-oscar":
  77. command => "$virtualenv/bin/python /vagrant/setup.py develop",
  78. require => Python::Venv::Isolate[$virtualenv]
  79. }
  80. }