The page has been translated by Gen AI.

VM Server Group

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

Users can add, modify, and delete VM server groups and VM servers. Configured VM server groups and VM servers can be used as deployment target VMs in project creation (배포대상 환경 설정하기) or VM deployment (VM 배포 추가하기).

Deployment methodExplanation
SSHUsing Secure Shell (SSH), Jenkins, where the build pipeline runs, directly deploys to the Target VM server.
  • SSH communication from Jenkins to the Target VM is required.
agentYou must refer to Connecting the Agent and run the agent on the Target VM server.
Jenkins, where the build pipeline runs, does not execute deployments directly. The running agent collects deployment information from the DevOps Console via REST API and executes it.
  • If Rollback is not used, the deployment files are stored in the DevOps Console. (Maximum file size: 200 MB).
  • If Rollback is used, the deployment files are stored in the Rollback Artifact Repository selected by the user. (Maximum file size is managed by the Rollback Artifact Repository).
  • REST API communication from Target VM to DevOps Console is required.
  • (When using Rollback) communication between Target VM and Rollback Artifact Repository is required.
Table. SSH method vs Agent method
Caution

If SSH or an agent runs with root privileges, there is a risk that malicious commands could compromise the entire server.

  • It is recommended to use an account other than the root account.

Getting Started with VM Server Group

To start managing VM server groups, follow these steps.

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. In the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.

Add VM server group

To add a VM server group, follow these steps.

  1. Click the Management icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. On the VM Server Group page, click the Add button. It navigates to the Add VM Server Group page.
  4. Enter the basic information, then click the Save button to complete the VM server group configuration.
    ItemExplanation
    Server group nameEnter the VM server group name.
    ExplanationPlease enter a description.
    typeSelect the type of VM server group
    • SSH: Perform deployment using SSH commands when deploying a VM.
    • Agent: Perform deployment using an agent when deploying a VM. (Connect Agent)
    VM server
    • Add: Add the VM server that belongs to the VM server group.
    • Delete: Check the checkbox of the VM server you want to delete from the VM server group, then click Delete to remove it.
    Table. VM Server Group Add Input Items

Add VM server

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

Note
The Add VM Server popup opens differently depending on the type of VM server group.

To add a VM server, follow the steps below.

  1. Click the Admin icon at the top right of the Main page. Navigate to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. VM server group page, click the VM server group in the VM server group list where you want to add a VM server. You will be taken to the VM server group detail page.
  4. On the VM Server Group Details page, click the Add button. You will be taken to the Add VM Server page.
  5. Add VM Server page, after entering the basic information, click the Add button to complete the VM server configuration.
    ItemExplanation
    Server nameEnter the VM server name.
    ExplanationEnter the description.
    IPPlease enter the IP.
    SSH PortEnter the port of the VM server to use for SSH connections.
    OSPlease enter the OS.
    LocationPlease select a location.
    Authentication informationEnter the authentication information for the VM server to be used for SSH connections.
    Secret KeyThis is the secret key for authenticating the VM server where the agent is installed.
    Table. VM Server Additional Input Items

Modify VM server group

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

To modify a VM server group, follow the steps below.

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. On the VM Server Group page, click the VM Server Group you want to edit from the list. You will be taken to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the Edit button. You will be taken to the Edit VM Server Group page.
  5. After completing the edit, click the Save button to finish modifying the VM server group.

Modify VM server

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

To modify the VM server, follow the steps below.

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. On the VM Server Group page, click the VM Server Group you want to edit from the list of VM server groups. You will be taken to the VM Server Group Details page.
  4. VM Server Group Details page’s VM server list, click the VM server you want to edit. You will be taken to the VM Server Details page.
  5. On the VM Server Details page, clicking the Edit button navigates to the VM Server Edit page.
  6. On the VM Server Edit page, after completing the edit, click the Save button to finish editing the VM server.

Delete VM server group

To delete a VM server group, follow these steps.

  1. Click the Admin icon at the top right of the Main page. Navigate to the Tenant Dashboard page.
  2. In the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.
  3. VM server group page’s VM server group list, click the VM server group you want to delete. You will be taken to the VM server group details page.
  4. On the VM server group details page, click the Delete button to complete the VM server group deletion.

Delete VM server

To delete a VM server, follow these steps.

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. From the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.
  3. On the VM Server Group page, click the VM server group of the VM server you want to delete from the VM server group list. You will be taken to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the VM server you want to delete. You will be taken to the VM Server Details page.
  5. On the VM server details page, click the Delete button to complete the VM server deletion.

Managing VM Server Group Members

To manage members of a VM server group, you need Manager permission for that VM server group.

Add VM server group member

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

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. VM Server Group page’s VM Server Group list, click the VM Server Group you want to add a member to. You will be taken to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the User tab.
  5. When you click the Add button on the User tab, the Add Member popup window opens.
  6. After completing the setup, click the Confirm button to finish adding a VM server group member. (Managers can modify or delete the server group, and Members can use the server group when creating projects or adding pipelines.)

Delete VM server group member

To delete a member from a VM server group, follow these steps.

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. On the VM server group page, click the VM server group in the list from which you want to delete a member. You will be taken 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 remove the selected user from the VM server group members.

Manage VM server group permission requests

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

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. On the VM Server Group page, click the permission request item of the VM Server Group whose request you want to approve from the VM Server Group list. The displayed number indicates the number of permission requests. The VM Server Group Permission Request Approval popup window opens.
  4. VM Server Group Permission Request Approval In the popup window, click the request you want to approve or reject.
  5. After entering your comment, click the Approve or Reject button.
Note
A comment is required to reject a permission request.

View VM Server Group Permission Approval History

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

  1. Main page, click the Admin icon at the top right. You will be taken to the Tenant Dashboard page.
  2. From the left menu, click the Deploy Target > VM Server Group menu. You will be taken 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. You will be taken to the VM Server Group Details page.
  4. On the VM Server Group Details page, click the Approval History tab.

Disable firewall on VM server

SSH method

SSH-based VM deployment uses Secure Shell (Secure SHell, SSH) to deploy directly from Jenkins → Target VM server.

Reference

Firewall exemption information for deployment

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

To disable the firewall, follow these steps.

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken 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.
    • These details are displayed as the information entered when registering the Jenkins tool, and if no input was provided during tool registration, they may appear as empty values.
    • If needed, contact the tool administrator.

Agent-based approach

Agent-based VM deployment requires the agent to run on the target VM server. The running agent collects information from the DevOps Console and proceeds with the deployment.

Note
Firewall exception 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. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
  3. On the VM Server Group page, click the Agent Installation Guide link. The Agent Installation Guide popup will open.
  4. The DevOps Console firewall details, User Guide shortcut, and Agent file download links are displayed.

Integrate Agent

Agent-based VM deployment requires the agent to run on the target VM server. The running agent collects information from the DevOps Console and performs the deployment.

Preparation before agent integration

VM Server Preparation Requirements

Install Java

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

Disable firewall and edit hosts file

The agent collects deployment execution information from the DevOps Console using the REST API, so communication on port 8443 from the Target VM where the agent runs to the DevOps Console is required.

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

If necessary, you may need to disable the firewall or register entries in the hosts file. Refer to the Agent Installation Guide(Agent Method) popup in the DevOps Console for firewall information.

DevOps Console Prerequisites

Prepare authentication key

Target VM server requires agent authentication when the agent runs. Generate a user authentication key and a secret key for authentication. (Manage authentication keys)

Prepare VM server Secret Key

When executing the agent on the target VM server, a Secret Key is required to authorize the VM server that corresponds to the agent.

When adding an agent-type VM server group or VM server, a VM server Secret Key is automatically generated. It can also be viewed later on the VM Server Details page.

Reference
When integrating the agent, not only the entered Secret Key but also the VM server’s actual OS name and IP (IPv4) must match the information registered in the DevOps Console for the integration to work.

Run the agent

Download the agent file

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

  1. Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
  2. In the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.
  3. On the VM Server Group page, click the Agent Installation Guide link. The Agent Installation Guide popup will open.
  4. Agent Installation Guide In the popup window, click the Agent File Download button.
  5. The deploy-agent.jar file is downloaded.

Run the agent directly

To run the agent on the target VM server, follow these steps.

  1. Create a directory on the target VM server.
  2. Move the deploy-agent.jar file to the target directory.
  3. Refer to the Usage below and 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
    Run deployment agent Usage
ItemExplanation
-A, –accessKeyAuthentication key generated with the user authentication key
-L, –serverUrlAPI URL path of the DevOps Console
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 will be applied.
-S, –secretKeySecret key generated using the user authentication key
-V, –vmSecretKeySecret key generated on the VM server
Table. Direct Agent Execution Option Items

Running the Agent Using a Script File

To run the agent on the 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 specified directory.
  3. Create the file by referring to the sample execution script below.
  4. Modify the information of 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
  • It can be executed on java 8 or later.
  • Assume the jar file execution location is {WORKSPACE}.
  • Additional directories such as backup and logs are created in {WORKSPACE}.
  • If you do not specify -loggingConfigFilePath, the {JAVA_HOME}\jre\lib\logging.properties file will be used.
  • Deployment-related files are stored under {WORKSPACE}/backup.
  • Only the most recent 3 successfully deployed files are retained.
  • deploy-agent.jar full logs are not saved automatically. Only deployment-related logs from the full logs are saved to {WORKSPACE}/logs.
  • Logs are retained for 30 days.

Agent problem solving

Changing the log level

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

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

If the IP is not recognized

When integrating the agent, not only the entered Secret Key but also the VM server’s actual OS name and IP (IPv4) must match the information registered in the DevOps Console for the integration to work.

For VM servers with some multi-network devices installed, the agent may fail to recognize the IP correctly. In such cases, add the IP and hostname settings to the /etc/hosts file as shown below.

hostname verification procedure
Figure. hostname verification procedure
Verify Cluster Admin Token
Request Permission