3 releases

0.1.2 Sep 14, 2023
0.1.1 Sep 8, 2023
0.1.0 Sep 8, 2023

#612 in Configuration

MIT license

4MB
1K SLoC

Contains (ELF exe/lib, 12MB) resm

Remote Server Management tools

A group of tools for simplifying the work done by connecting to a remote server in the development of web systems.

Set up

Create Configuration files

First, create a configuration file to use this command according to the JSON format below. (An example configuration file can be found in env)

Configuration files are automatically and recursively loaded from $HOME/env, so they can be managed separately for each project, for example. It is also possible to change the read path of these configuration files by specifying the -e option common to all subcommands.

[
    {
        "project": "project name",
        "environment": "dev",

        "remote_path": "path/to/remote/project/root",
        "remote_cache_path": "path/to/remote/project/cache",

        "git_path": "path/to/git/repo",
        "git_src_path": "path/to/git/src",
        "backup_path": "path/to/backup",

        "db_host": "db host name",
        "db_host_reader": "db host name for reader",
        "db_port": 3306,
        "db_name": "db name",
        "db_user": "db user",
        "db_password": "db password",
        "db_root_user": "db root user",
        "db_root_password": "db root password",

        "connect_info":
        {
            "host": "host name",
            "port": 22,
            "user": "user",
            "identity_file": "path/to/key_file"
        },

        "tunnels":
        [
            {
                "host": "bastion host name",
                "port": 22,
                "user": "user",
                "identity_file": "path/to/key_file"
            }
        ]
    }
]

The meaning of each field is as follows. Required fields are marked with an asterisk (*).

  • project (*): Optional project name
  • environment (*): Optional environment name
  • remote_path: Reference path to be operated in the destination server (absolute path)
  • remote_cache_path: Path to the cache directory in the destination server (absolute path)
  • git_path: Path to the git repository (absolute path)
  • git_src_path: Path to the source directory in the git repository (absolute path)
  • backup_path: Path to the backup directory (absolute path)
  • db_host: Host name of the database server
  • db_host_reader: Host name of the database server for reader
  • db_port: Port number of the database server
  • db_name: Database name
  • db_user: Database user name
  • db_password: Database password
  • db_root_user: Database root user name
  • db_root_password: Database root password
  • connect_info (*)
    • host (*): Host name or IP address to connect to
    • port: Port number of the server
    • user: User name
    • password: Password (Entering password cannot be omitted)
    • identity_file: Path to the identity file (absolute path)
  • tunnels: Information on the step server to be passed through when connecting (array of connect_info)

Initialize

Execute the following command to generate the SSH configuration file.

$ resm init

Place the generated config file in $HOME/.ssh/config or append appropriately.

Commands

list

Lists projects.

show

Shows the project setting.

replace

Replaces the project directory in the destination server with the local project directory. In short, it is useful when you want to perform a full update of an application.

patch

Uploads only specified files in the local repository to the remote server.

clear

Clears the remote cache directory.

backup

Backs up the remote directory.

backup-db

Backs up the database.

Caution

This tool depends on packages that are only compatible with Unix, so if you are developing in a Windows environment, install this command on WSL and use the Windows files in /mnt as git_path or git_src_path. Be sure to specify a path in your system.

Dependencies

~22–37MB
~585K SLoC