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 method | Explanation |
|---|---|
| SSH | Using Secure Shell (SSH), Jenkins, where the build pipeline runs, directly deploys to the Target VM server.
|
| agent | You 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 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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- 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.
- Click the Management icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- On the VM Server Group page, click the Add button. It navigates to the Add VM Server Group page.
- Enter the basic information, then click the Save button to complete the VM server group configuration.
Item Explanation Server group name Enter the VM server group name. Explanation Please enter a description. type Select 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.
To add a VM server, follow the steps below.
- Click the Admin icon at the top right of the Main page. Navigate to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- 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.
- On the VM Server Group Details page, click the Add button. You will be taken to the Add VM Server page.
- Add VM Server page, after entering the basic information, click the Add button to complete the VM server configuration.
Item Explanation Server name Enter the VM server name. Explanation Enter the description. IP Please enter the IP. SSH Port Enter the port of the VM server to use for SSH connections. OS Please enter the OS. Location Please select a location. Authentication information Enter the authentication information for the VM server to be used for SSH connections. Secret Key This 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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- 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.
- On the VM Server Group Details page, click the Edit button. You will be taken to the Edit VM Server Group page.
- 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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- 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.
- 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.
- On the VM Server Details page, clicking the Edit button navigates to the VM Server Edit page.
- 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.
- Click the Admin icon at the top right of the Main page. Navigate to the Tenant Dashboard page.
- In the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.
- 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.
- 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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- From the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.
- 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.
- 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.
- 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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- 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.
- On the VM Server Group Details page, click the User tab.
- When you click the Add button on the User tab, the Add Member popup window opens.
- 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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- 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.
- 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 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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- 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.
- VM Server Group Permission Request Approval In the popup window, click the request you want to approve or reject.
- After entering your comment, click the Approve or Reject button.
View VM Server Group Permission Approval History
To view the VM server group permission request approval history, follow these steps.
- Main page, click the Admin icon at the top right. You will be taken to the Tenant Dashboard page.
- From the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.
- 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.
- 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.
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.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken 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.
- 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.
- Source IP: IP of the VM server to be deployed
- Target IP: DevOps Console IP, (if using Rollback) Rollback Artifact Repository IP
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- Click the Deployment Target > VM Server Group menu in the left menu. You will be taken to the VM Server Group page.
- On the VM Server Group page, click the Agent Installation Guide link. The Agent Installation Guide popup will open.
- 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.
Run the agent
Download the agent file
Agent Installation Guide You can download the agent executable from the popup window.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- In the left menu, click the Deploy Target > VM Server Group menu. You will be taken to the VM Server Group page.
- On the VM Server Group page, click the Agent Installation Guide link. The Agent Installation Guide popup will open.
- Agent Installation Guide In the popup window, click the Agent File Download button.
- The
deploy-agent.jarfile is downloaded.
Run the agent directly
To run the agent on the target VM server, follow these steps.
- Create a directory on the target VM server.
- Move the
deploy-agent.jarfile to the target directory. - 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 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 SecretKeyRun deployment agent Usage
| Item | Explanation |
|---|---|
| -A, –accessKey | Authentication key generated with the user authentication key |
| -L, –serverUrl | API URL path of the DevOps Console 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 will be applied. |
| -S, –secretKey | Secret key generated using the user authentication key |
| -V, –vmSecretKey | Secret key generated on the VM server |
Running the Agent Using a Script File
To run the agent on the target VM server using a script, follow these steps.
- Create a directory on the target VM server.
- Move the
deploy-agent.jarfile to the specified directory. - Create the file by referring to the sample execution script below.
- Modify the information of 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- It can be executed on
java 8or 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.propertiesfile will be used. - Deployment-related files are stored under
{WORKSPACE}/backup. - Only the most recent
3successfully deployed files are retained. deploy-agent.jarfull logs are not saved automatically. Only deployment-related logs from the full logs are saved to{WORKSPACE}/logs.- Logs are retained for
30days.
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
############################################################
# 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 = SEVEREIf 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.


