The page has been translated by Gen AI.

VM Server Group

A VM server group is a logical unit for managing VM servers.

Users can add, modify, and delete VM server groups and VM servers. The configured VM server group and VM server can be used as a deployment target in project creation (Setting up the deployment environment) or VM deployment (Adding a VM deployment).

Deployment MethodDescription
SSHUses Secure Shell (SSH) to deploy directly from the Jenkins where the build pipeline is executed to the target VM server.
  • Jenkins needs to communicate with the target VM server via SSH.
AgentRefer to Connecting an agent to run an agent on the target VM server.
Jenkins does not execute the deployment directly. The executed agent collects and executes deployment-related information from the DevOps Console using the REST API.
  • Deployment files are stored in the DevOps Console if rollback is not used. (Maximum file size: 200MB)
  • Deployment files are stored in the selected Rollback Artifact Repository if rollback is used. (Maximum file size is managed by the Rollback Artifact Repository)
  • The target VM server needs to communicate with the DevOps Console via the REST API.
  • (If rollback is used) The target VM server needs to communicate with the Rollback Artifact Repository.
Table. SSH method vs Agent method

Getting Started with VM Server Group

To start managing VM server groups, follow these steps:

  1. Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
  2. In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.

Adding a VM Server Group

To add a VM server group, follow these steps:

  1. Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu from the left menu. Move to the VM Server Group page.
  3. On the VM Server Group page, click the Add button. Move to the Add VM Server Group page.
  4. Enter the basic information and click the Save button to complete the VM server group settings.
ItemDescription
Server Group NameEnter the name of the VM server group.
DescriptionEnter a description.
TypeSelect the type of VM server group
  • SSH: Deployment is performed through SSH commands during VM deployment.
  • Agent: Deployment is performed using an agent during VM deployment. (Agent Connection)
VM Server
  • Add: Add the VM server to be included in the VM server group.
  • Delete: Check the checkbox of the VM server to be deleted from the VM server group and click Delete to delete it.
Table. Input Items for Adding a VM Server Group

Adding a VM Server

To add a VM server, you need Manager permissions for the corresponding VM server group.

Note
The VM server addition popup window may open differently depending on the type of VM server group.

To add a VM server, follow these steps:

  1. Click the Manage icon in the top right corner of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu from the left menu. You will be taken to the VM Server Group page.
  3. Click the VM server group where you want to add the VM server from the VM server group list on the VM Server Group page. You will be taken to the VM Server Group Details page.
  4. Click the Add button on the VM Server Group Details page. You will be taken to the Add VM Server page.
  5. Enter the basic information on the Add VM Server page and click the Add button to complete the VM server settings.
ItemDescription
Server NameEnter the name of the VM server.
DescriptionEnter a description.
IPEnter the IP address.
SSH PortEnter the port of the VM server to use for SSH connection.
OSEnter the operating system.
LocationSelect a location.
Authentication InformationEnter the authentication information of the VM server to use for SSH connection.
Secret KeyThis is a secret key to authenticate the VM server where the agent is installed.
Table. Input Items for Adding a VM Server

Modifying a VM Server Group

To modify a VM server group, you need Manager permission for the corresponding VM server group.

To modify a VM server group, follow these steps:

  1. Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
  2. In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
  3. In the VM server group list on the VM Server Group page, click the VM server group you want to modify. Move to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the Modify button. Move to the VM Server Group Modification page.
  5. After modifying, click the Save button to complete the modification of the VM server group.

Modifying a VM Server

To modify a VM server, you need Manager permission for the corresponding VM server group.

To modify a VM server, follow these steps:

  1. Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
  2. In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
  3. In the VM server group list on the VM Server Group page, click the VM server group that includes the VM server you want to modify. Move to the VM Server Group Details page.
  4. In the VM server list on the VM Server Group Details page, click the VM server you want to modify. Move to the VM Server Details page.
  5. On the VM Server Details page, click the Modify button to move to the VM Server Modification page.
  6. After modifying, click the Save button to complete the modification of the VM server.

Deleting a VM Server Group

To delete a VM server group, follow these steps:

  1. Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
  2. In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
  3. In the VM server group list on the VM Server Group page, click the VM server group you want to delete. Move to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the Delete button to complete the deletion of the VM server group.

Deleting a VM Server

To delete a VM server, follow these steps:

  1. Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
  2. In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
  3. In the VM server group list on the VM Server Group page, click the VM server group that includes the VM server you want to delete. Move to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the VM server you want to delete. Move to the VM Server Details page.
  5. On the VM Server Details page, click the Delete button to complete the deletion of the VM server.

Managing VM Server Group Members

To manage VM server group members, you need Manager permission for the corresponding VM server group.

Adding a VM Server Group Member

To add a member to a VM server group, follow these steps:

  1. Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
  2. In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
  3. In the VM server group list on the VM Server Group page, click the VM server group you want to add a member to. Move to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the User tab.
  5. On the User tab, click the Add button to open the Add Member popup window.
  6. After setting, click the Confirm button to complete adding a VM server group member. (The Manager can modify or delete the server group, and the Member can use the server group when creating a project or adding a pipeline.)

Deleting a VM Server Group Member

To delete a member of a VM server group, follow these steps:

  1. Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
  3. On the VM Server Group page, click the VM server group from which you want to delete a member from the list of VM server groups. Move to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the User tab.
  5. In the User list, select the checkbox of the user you want to delete.
  6. Click the Delete button to delete the selected user from the VM server group member.

Managing VM Server Group Permission Requests

To approve or reject a VM server group permission request, follow these steps:

  1. Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
  3. On the VM Server Group page, click the permission request item of the VM server group for which you want to approve the permission from the list of VM server groups. The VM Server Group Permission Approval popup window opens.
  4. In the VM Server Group Permission Approval popup window, click the request you want to approve or reject.
  5. Enter your opinion and click the Approve or Reject button.
Note
When rejecting a permission request, entering an opinion is required.

Viewing VM Server Group Permission Approval History

To view the VM server group permission approval history, follow these steps:

  1. Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
  3. On the VM Server Group page, click the VM server group you want to view from the list of VM server groups. Move to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the Approval History tab.

Releasing VM Server Firewall

SSH Method

SSH method VM deployment uses Secure Shell (SSH) to deploy directly from Jenkins to the target VM server.

Note

Firewall release information for deployment

  • Source IP: Jenkins IP selected when configuring the pipeline
  • Target IP: IP of the VM server to be deployed

To release the firewall, follow these steps:

  1. Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
  3. On the VM Server Group page, click the Firewall Application Guide link. The Firewall Application Guide popup window opens.
  4. Jenkins firewall information is displayed.
    • The information displayed is what was entered when registering the Jenkins tool, and if not entered, it may appear as an empty value.
    • If necessary, contact the tool administrator.

Agent Method

Agent method VM deployment requires running an agent on the target VM server. The running agent collects information from DevOps Console and performs deployment.

Note

Firewall release information for deployment

  • Source IP: IP of the VM server to be deployed
  • Target IP: DevOps Console IP, (if using Rollback) Rollback Artifact Repository IP
  1. Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
  3. On the VM Server Group page, click the Agent Installation Guide link. The Agent Installation Guide popup window opens.
  4. DevOps Console firewall details and User Guide Shortcut and Agent File Download links are displayed.

Connecting an Agent

Agent method VM deployment requires running an agent on the target VM server. The running agent collects information from DevOps Console and performs deployment.

Preparing for Agent Connection

VM Server Preparation

Java Installation

The agent was written and tested based on Java 8. Install Java 8 or higher on the target VM server.

Firewall Release and Hosts File Modification

The agent uses REST API to collect deployment information from DevOps Console, so communication from the target VM server where the agent is running to DevOps Console is required.

Additionally, if using Rollback, communication with the Rollback Artifact Repository is also required.

If necessary, firewall release or hosts file registration may be required. Refer to the firewall information in the Agent Installation Guide popup window in DevOps Console.

DevOps Console Preparation

Authentication Key Preparation

When running the agent on the target VM server, authentication of the agent is required. Create a user authentication key and secret key for authentication. (Managing Authentication Keys)

VM Server Secret Key Preparation

When running the agent on the target VM server, the Secret Key value is required to authenticate the agent and the VM server.

When adding an agent-type VM server group and VM server, the VM server Secret Key is automatically generated. You can also check it on the VM Server Details page later.

Note
When connecting the agent, not only the Secret Key entered but also the actual OS name and IP (IPv4) of the VM server must match the information registered in DevOps Console.

Running an Agent

Downloading an Agent File

You can download the agent execution file from the Agent Installation Guide popup window.

  1. Click the Management icon at the top right of the Main page. Move to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
  3. Click the Agent Installation Guide link on the VM Server Group page. The Agent Installation Guide popup window opens.
  4. Click the Agent File Download button in the Agent Installation Guide popup window.
  5. The deploy-agent.jar file is downloaded.

Running an Agent Directly

To run an agent on a target VM server, follow these steps:

  1. Create a directory on the target VM server.
  2. Move the deploy-agent.jar file to the directory.
  3. Refer to the usage below to run the agent.
    Color mode
    usage: java -jar deploy-agent.jar -A <arg> -L <arg> [-P <arg>] -S <arg> -V <arg>
     -A,--accessKey <arg>               AccessKey for HMAC
     -L,--serverUrl <arg>               Api server url
     -P,--loggingConfigFilePath <arg>   Path to the property file with 'java.util.logging' settings
     -S,--secretKey <arg>               SecretKey for HMAC
     -V,--vmSecretKey <arg>             VM SecretKey
    usage: java -jar deploy-agent.jar -A <arg> -L <arg> [-P <arg>] -S <arg> -V <arg>
     -A,--accessKey <arg>               AccessKey for HMAC
     -L,--serverUrl <arg>               Api server url
     -P,--loggingConfigFilePath <arg>   Path to the property file with 'java.util.logging' settings
     -S,--secretKey <arg>               SecretKey for HMAC
     -V,--vmSecretKey <arg>             VM SecretKey
    Deployment Agent Execution Usage
ItemDescription
-A, –accessKeyAuthentication key created by the user
-L, –serverUrlDevOps Console API URL path
ex) https://{DEVOPS_CONSOLE_URL}:8443/devops-console-api
-P, –loggingConfigFilePathAgent log file path
If not entered, the {JAVA_HOME}\jre\lib\logging.properties file is applied.
-S, –secretKeySecret key created by the user
-V, –vmSecretKeySecret key created by the VM server
Table. Direct Agent Execution Option Items

Running an Agent using a Script File

To run an agent on a target VM server using a script, follow these steps:

  1. Create a directory on the target VM server.
  2. Move the deploy-agent.jar file to the directory.
  3. Refer to the sample execution script below to create a file.
  4. Modify the information in the sample execution script.
    • DC_URL, ACCESS_KEY, SECRET_KEY, VM_SECRET_KEY
  5. Run the script.

Linux Sample Script

Linux Sample Script
Color mode
#!/bin/sh

JAVA_EXE="java"
DC_URL="https://devops-console-url.com:8443/devops-console-api"
ACCESS_KEY="user-access-key"
SECRET_KEY="user-secret-key"
VM_SECRET_KEY="vm-secret-key"

start()
{
  [ -f deploy-agent.jar ] || { echo "ERROR: deploy-agent.jar file does not exist."; exit 1; }
  echo "Starting Deploy Agent..."
  $JAVA_EXE -jar deploy-agent.jar -A $ACCESS_KEY -S $SECRET_KEY -V $VM_SECRET_KEY -L $DC_URL > deploy-agent.log 2>&1 &
  PID=`ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}'`
  echo "Process ID : $PID"
  echo $PID > deploy-agent.pid
  echo "Done."
}
stop()
{
  echo "Shutdown Deploy Agent..."
  ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}' | xargs kill
  echo "Done."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo $ "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit 0
#!/bin/sh

JAVA_EXE="java"
DC_URL="https://devops-console-url.com:8443/devops-console-api"
ACCESS_KEY="user-access-key"
SECRET_KEY="user-secret-key"
VM_SECRET_KEY="vm-secret-key"

start()
{
  [ -f deploy-agent.jar ] || { echo "ERROR: deploy-agent.jar file does not exist."; exit 1; }
  echo "Starting Deploy Agent..."
  $JAVA_EXE -jar deploy-agent.jar -A $ACCESS_KEY -S $SECRET_KEY -V $VM_SECRET_KEY -L $DC_URL > deploy-agent.log 2>&1 &
  PID=`ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}'`
  echo "Process ID : $PID"
  echo $PID > deploy-agent.pid
  echo "Done."
}
stop()
{
  echo "Shutdown Deploy Agent..."
  ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}' | xargs kill
  echo "Done."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo $ "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit 0
Linux Sample Script

Windows Sample Script

Windows Sample Script
Color mode
@ECHO OFF

SET JAVA_EXE="java"
SET DC_URL="https://devops-console-url.com:8443/devops-console-api"
SET ACCESS_KEY="user-access-key"
SET SECRET_KEY="user-secret-key"
SET VM_SECRET_KEY="vm-secret-key"

IF NOT EXIST deploy-agent.jar (
    ECHO "ERROR: deploy-agent.jar file does not exist."
    EXIT /b 0
)
ECHO "Starting Deploy Agent..."
%JAVA_EXE% -jar deploy-agent.jar -A %ACCESS_KEY% -S %SECRET_KEY% -V %VM_SECRET_KEY% -L %DC_URL%

EXIT /b 0
@ECHO OFF

SET JAVA_EXE="java"
SET DC_URL="https://devops-console-url.com:8443/devops-console-api"
SET ACCESS_KEY="user-access-key"
SET SECRET_KEY="user-secret-key"
SET VM_SECRET_KEY="vm-secret-key"

IF NOT EXIST deploy-agent.jar (
    ECHO "ERROR: deploy-agent.jar file does not exist."
    EXIT /b 0
)
ECHO "Starting Deploy Agent..."
%JAVA_EXE% -jar deploy-agent.jar -A %ACCESS_KEY% -S %SECRET_KEY% -V %VM_SECRET_KEY% -L %DC_URL%

EXIT /b 0
Windows Sample Script

Notice
  • Can be executed in java 8 or higher.
  • The execution location of the jar file is assumed to be {WORKSPACE}.
  • Additional directories such as backup and logs are created under {WORKSPACE}.
  • If -loggingConfigFilePath is not entered, the {JAVA_HOME}\jre\lib\logging.properties file is applied.
  • Deployment-related files are stored under {WORKSPACE}/backup.
  • Only the last 3 deployment-related files are kept.
  • The entire log of deploy-agent.jar is not automatically saved. Only deployment-related logs are saved under {WORKSPACE}/logs.
  • Logs are kept for 30 days.
Caution

If the agent runs with root privileges, there is a risk of taking over the entire server by executing malicious commands.

  • It is recommended to use a non-root account.

Agent Problem Solving

Changing Log Levels

If necessary, you can change the log level of the agent. Refer to the sample log file below and add the -P, --loggingConfigFilePath option.

Sample Log File

Color mode
############################################################
#      Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.
# For example java -Djava.util.logging.config.file=myfile
############################################################

############################################################
#      Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
#.level= INFO
.level= FINE

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

# Limit the message that are printed on the console to INFO and above.
#java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# Example to customize the SimpleFormatter output format
# to print one-line log message like this:
#     <level>: <log message> [<date/time>]
#
# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
com.xyz.foo.level = SEVERE
############################################################
#      Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.
# For example java -Djava.util.logging.config.file=myfile
############################################################

############################################################
#      Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
#.level= INFO
.level= FINE

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

# Limit the message that are printed on the console to INFO and above.
#java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# Example to customize the SimpleFormatter output format
# to print one-line log message like this:
#     <level>: <log message> [<date/time>]
#
# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
com.xyz.foo.level = SEVERE
Sample Log File

When IP is Not Recognized

When connecting the agent, not only the Secret Key but also the actual OS name and IP (IPv4) of the VM server must match the information registered in the DevOps Console.

In some cases, VM servers with multiple network devices installed may not be able to recognize the IP correctly. In such cases, add the IP and hostname settings to the /etc/hosts file as follows:

hostname confirmation procedure
Figure. hostname confirmation procedure
Checking Cluster Admin Token
Apply for Authorization