設定ファイル

Esshの設定はLuaで書きます。設定ファイルではより人間に読みやすい形式のDSL構文を使用できます。

host "web01.localhost" {
    HostName = "192.168.0.11",
    Port = "22",
    User = "kohkimakimoto",
    description = "web01 development server",
    tags = {
        "web",
    },
}

host "web02.localhost" {
    HostName = "192.168.0.12",
    Port = "22",
    User = "kohkimakimoto",
    description = "web02 development server",
    tags = {
        "web",
    },
}

task "uptime" {
    backend = "remote",
    targets = "web",
    script = "uptime",
}

別の構文

上記の設定例は、LuaのDSLスタイルで書かれています。プレーンなLua関数のスタイルを使うこともできます。以下の例も有効な設定コードです。

host("web01.localhost", {
    HostName = "192.168.0.11",
    Port = "22",
    User = "kohkimakimoto",
    description = "web01 development server",
    tags = {
        "web",
    },
})

または

local web01 = host "web01.localhost"
web01.HostName = "192.168.0.11"
web01.Port = "22"
web01.User = "kohkimakimoto"
web01.description = "web01 development server"
web01.tags = {
    "web",
}

評価の順序

Esshはいくつかの異なる場所から設定ファイルを読み込みます。設定は次の順序で適用されます。

  1. カレントディレクトリに.esshconfig.luaが存在する場合、これを読み込みます。
  2. カレントディレクトリに.esshconfig.luaが存在しない場合、〜/.essh/config.luaを読み込みます。
  3. カレントディレクトリの.esshconfig_override.luaを読み込みます。
  4. ~/.essh/config_override.luaを読み込みます。

--configコマンドラインオプションやESSH_CONFIG環境変数を使うと、現在のディレクトリにある読み込みファイルを変更することができます。

Lua

Esshは、設定ファイルで使用できる組み込みのLuaライブラリを提供しています。

Lua VMを参照してください。