Pallet executes scripts over SSH. Pallet provides several methods for handling SSH identities.

The admin User

To SSH to a node, pallet requires a username and an SSH key. You can pass the admin-user object (use pallet.api/make-user to create one) to lift and converge using the :user keyword.

For REPL use, there is a rebindable var, pallet.core.user/*admin-user*, that provides the default admin user. This defaults to your username, and id_rsa identity. You can rebind this using pallet.api/with-admin-user.

Environment

The admin user can also be specified in your environment. For example, using the :environment key in a service definition map in ~/.pallet/config.clj.

(defpallet
  :services
    {:aws
      {:provider "ec2" :identity "key" :credential "secret-key"
       :environment
         {:user {:username "admin"
                 :private-key-path "/path/to/private-key"
                 :public-key-path "/path/to/public-key"}}}})

Lein

You can configure the admin-user that is used by the lein plugin, in the ~/.pallet/config.clj file.

(defpallet
  :admin-user
    {:username "admin"
     :private-key-path "/path/to/private-key"
     :public-key-path "/path/to/public-key"})