]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blobdiff - modules/role/manifests/cryptoportfolio.pp
Create cryptoportfolio user
[perso/Immae/Projets/Puppet.git] / modules / role / manifests / cryptoportfolio.pp
index 16c2f960a47fabe31604842a65274b4f933b12c3..046b79ef3f223f4445ef4ee0e462c48fef2bf87b 100644 (file)
@@ -27,12 +27,60 @@ class role::cryptoportfolio {
     order       => "b0",
   }
 
-  ensure_packages("go")
-
   class { 'nginx': }
 
   nginx::resource::server { 'cryptoportfolio.immae.eu':
     listen_port => 80,
     proxy       => 'http://localhost:8000',
   }
+
+  ensure_packages(["go", "npm", "nodejs", "yarn"])
+
+  user { "cryptoportfolio":
+    name       => "cryptoportfolio",
+    ensure     => "present",
+    managehome => true,
+    home       => "/opt/cryptoportfolio",
+    system     => true,
+    password   => '!!',
+  }
+
+  $front_version = lookup("cryptoportfolio::front_version") |$key| { {} }
+  $front_sha256 = lookup("cryptoportfolio::front_sha256") |$key| { {} }
+
+  unless empty($front_version) {
+    file { "/opt/cryptoportfolio/front":
+      ensure => directory,
+      mode   => "0700",
+      owner  => "cryptoportfolio",
+      group  => "cryptoportfolio",
+    }
+
+    file { "/opt/cryptoportfolio/front/${front_version}":
+      ensure  => directory,
+      mode    => "0700",
+      owner   => "cryptoportfolio",
+      group   => "cryptoportfolio",
+      require => File["/opt/cryptoportfolio/front"],
+    }
+
+    archive { "/opt/cryptoportfolio/front/${front_version}.tar.gz":
+      path          => "/opt/cryptoportfolio/front/${front_version}.tar.gz",
+      source        => "https://git.immae.eu/releases/cryptoportfolio/front/front_${front_version}.tar.gz",
+      creates       => "/opt/cryptoportfolio/front/${front_version}/README.md",
+      checksum_type => "sha256",
+      checksum      => $front_sha256,
+      cleanup       => false,
+      extract       => true,
+      extract_path  => "/opt/cryptoportfolio/front/${front_version}",
+      require       => File["/opt/cryptoportfolio/front/${front_version}"],
+    }
+
+    file { "/opt/cryptoportfolio/front/current":
+      ensure  => "link",
+      target  => "/opt/cryptoportfolio/front/${front_version}",
+      require => Archive["/opt/cryptoportfolio/front/${front_version}.tar.gz"]
+    }
+  }
+
 }