        (install-ami-cleaner facility))
     (when contains-devops?
       (when (contains? devops :aws)
-         (install-awscli facility))
+        (install-awscli facility))
       (when (contains? devops :docker)
-         (install-docker facility))
+        (install-docker facility))
+      (when (or (contains? devops :terraform)
+                (contains? devops :package))
+        (install-hashi-installer facility))
       (when (contains? devops :terraform)
-         (install-terraform facility terraform))
+        (install-terraform facility terraform))
       (when (contains? devops :packer)
-         (install-packer facility packer)))))
+        (install-packer facility packer)))))
 
 (s/defn configure-system
   [facility :- s/Keyword

    ("pip3" "install" "future")
    ("pip3" "install" "aws-amicleaner")))

(s/defn install-packer
  [facility :- s/Keyword
   config :- Packer]
  (let [{:keys [version sha256-hash]} config
        file-name (str "packer_" version "_linux_amd64.zip")
        usr-local-lib-dir (str "/usr/local/lib/packer/" version)
        sum-name (str file-name "SHA256SUM")]
    (actions/as-action
      (logging/info (str facility "-install system: install-packer")))
    (when (contains? config :sha256-hash)
      (actions/remote-file
        (str "/tmp/" sum-name)
        :owner "root"
        :group "root"
        :mode "600"
        :literal true
        :content (str sha256-hash " " file-name)))
    (actions/exec-checked-script
     "install packer"
     ("curl" "-L" "-o" ~(str "/tmp/" file-name)
             ~(str "https://releases.hashicorp.com/packer/" version "/" file-name))
     ("cd" "/tmp")
     (if (file-exists? ~sum-name)
       ("sha256sum" "-c" ~sum-name))
     ("unzip" ~file-name)
     ("mkdir" "-p" ~usr-local-lib-dir)
     ("mv" "packer" ~usr-local-lib-dir)
     ("ln" "-s" "-f" ~(str usr-local-lib-dir "/packer") "/usr/local/bin/packer"))))

(defn install-docker
  [facility]


(s/defn install-terraform
  [facility
   config :- Terraform]
  (let [{:keys [version sha256-hash]} config]
    (actions/as-action
      (logging/info (str facility "-install system: install-terraform")))
    (if (contains? config :sha256-hash)
      (actions/exec-checked-script
       "install terraform"
       ("/usr/local/lib/dda-pallet/install_hashicorp.py"
        "--version" ~version
        "--hash" ~sha256-hash
        "--link-to-path"
        "terraform"))
      (actions/exec-checked-script
       "install packer"
       ("/usr/local/lib/dda-pallet/install_hashicorp.py"
        "--version" ~version
        "--link-to-path"
        "terraform")))))

(s/defn install-system
  [facility :- s/Keyword
