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 Method | Description |
|---|---|
| SSH | Uses Secure Shell (SSH) to deploy directly from the Jenkins where the build pipeline is executed to the target VM server.
|
| Agent | Refer 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.
|
Getting Started with VM Server Group
To start managing VM server groups, follow these steps:
- Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
- 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:
- Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu from the left menu. Move to the VM Server Group page.
- On the VM Server Group page, click the Add button. Move to the Add VM Server Group page.
- Enter the basic information and click the Save button to complete the VM server group settings.
| Item | Description |
|---|---|
| Server Group Name | Enter the name of the VM server group. |
| Description | Enter a description. |
| Type | Select the type of VM server group
|
| VM Server |
|
Adding a VM Server
To add a VM server, you need Manager permissions for the corresponding VM server group.
To add a VM server, follow these steps:
- Click the Manage icon in the top right corner of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu from the left menu. You will be taken to the VM Server Group page.
- 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.
- Click the Add button on the VM Server Group Details page. You will be taken to the Add VM Server page.
- Enter the basic information on the Add VM Server page and click the Add button to complete the VM server settings.
| Item | Description |
|---|---|
| Server Name | Enter the name of the VM server. |
| Description | Enter a description. |
| IP | Enter the IP address. |
| SSH Port | Enter the port of the VM server to use for SSH connection. |
| OS | Enter the operating system. |
| Location | Select a location. |
| Authentication Information | Enter the authentication information of the VM server to use for SSH connection. |
| Secret Key | This is a secret key to authenticate the VM server where the agent is installed. |
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:
- Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
- In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
- 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.
- On the VM Server Group Details page, click the Modify button. Move to the VM Server Group Modification page.
- 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:
- Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
- In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
- 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.
- 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.
- On the VM Server Details page, click the Modify button to move to the VM Server Modification page.
- 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:
- Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
- In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
- 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.
- 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:
- Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
- In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
- 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.
- On the VM Server Group Details page, click the VM server you want to delete. Move to the VM Server Details page.
- 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:
- Main page, click the Management icon in the top right corner. Move to the Tenant Dashboard page.
- In the left menu, click Deployment Target > VM Server Group. Move to the VM Server Group page.
- 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.
- On the VM Server Group Details page, click the User tab.
- On the User tab, click the Add button to open the Add Member popup window.
- 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:
- Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
- 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.
- On the VM Server Group Details page, click the User tab.
- In the User list, select the checkbox of the user you want to delete.
- 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:
- Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
- 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.
- In the VM Server Group Permission Approval popup window, click the request you want to approve or reject.
- Enter your opinion and click the Approve or Reject button.
Viewing VM Server Group Permission Approval History
To view the VM server group permission approval history, follow these steps:
- Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
- 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.
- 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.
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:
- Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
- On the VM Server Group page, click the Firewall Application Guide link. The Firewall Application Guide popup window opens.
- 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.
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
- Main page, click the Management icon at the top right. Move to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
- On the VM Server Group page, click the Agent Installation Guide link. The Agent Installation Guide popup window opens.
- 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.
Running an Agent
Downloading an Agent File
You can download the agent execution file from the Agent Installation Guide popup window.
- Click the Management icon at the top right of the Main page. Move to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu on the left. Move to the VM Server Group page.
- Click the Agent Installation Guide link on the VM Server Group page. The Agent Installation Guide popup window opens.
- Click the Agent File Download button in the Agent Installation Guide popup window.
- The
deploy-agent.jarfile is downloaded.
Running an Agent Directly
To run an agent on a target VM server, follow these steps:
- Create a directory on the target VM server.
- Move the
deploy-agent.jarfile to the directory. - 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 SecretKeyusage: 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 SecretKeyDeployment Agent Execution Usage
| Item | Description |
|---|---|
| -A, –accessKey | Authentication key created by the user |
| -L, –serverUrl | DevOps Console API URL path ex) https://{DEVOPS_CONSOLE_URL}:8443/devops-console-api |
| -P, –loggingConfigFilePath | Agent log file path If not entered, the {JAVA_HOME}\jre\lib\logging.properties file is applied. |
| -S, –secretKey | Secret key created by the user |
| -V, –vmSecretKey | Secret key created by the VM server |
Running an Agent using a Script File
To run an agent on a target VM server using a script, follow these steps:
- Create a directory on the target VM server.
- Move the
deploy-agent.jarfile to the directory. - Refer to the sample execution script below to create a file.
- Modify the information in the sample execution script.
DC_URL,ACCESS_KEY,SECRET_KEY,VM_SECRET_KEY
- Run the script.
Linux Sample Script
#!/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 0Windows Sample Script
@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- Can be executed in
java 8or 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
-loggingConfigFilePathis not entered, the{JAVA_HOME}\jre\lib\logging.propertiesfile is applied. - Deployment-related files are stored under
{WORKSPACE}/backup. - Only the last
3deployment-related files are kept. - The entire log of
deploy-agent.jaris not automatically saved. Only deployment-related logs are saved under{WORKSPACE}/logs. - Logs are kept for
30days.
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
############################################################
# 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 = SEVEREWhen 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:


