alibaba-cloud-ops-mcp-server 0.9.20__py3-none-any.whl → 0.9.22__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- alibaba_cloud_ops_mcp_server/tools/application_management_tools.py +41 -5
- {alibaba_cloud_ops_mcp_server-0.9.20.dist-info → alibaba_cloud_ops_mcp_server-0.9.22.dist-info}/METADATA +1 -1
- {alibaba_cloud_ops_mcp_server-0.9.20.dist-info → alibaba_cloud_ops_mcp_server-0.9.22.dist-info}/RECORD +6 -6
- {alibaba_cloud_ops_mcp_server-0.9.20.dist-info → alibaba_cloud_ops_mcp_server-0.9.22.dist-info}/WHEEL +0 -0
- {alibaba_cloud_ops_mcp_server-0.9.20.dist-info → alibaba_cloud_ops_mcp_server-0.9.22.dist-info}/entry_points.txt +0 -0
- {alibaba_cloud_ops_mcp_server-0.9.20.dist-info → alibaba_cloud_ops_mcp_server-0.9.22.dist-info}/licenses/LICENSE +0 -0
|
@@ -63,7 +63,9 @@ def OOS_CodeDeploy(
|
|
|
63
63
|
'executable or script in the extracted artifact to avoid deployment '
|
|
64
64
|
'failures. Do not blindly use the `cd` command; always verify that the corresponding file '
|
|
65
65
|
'and path exist before using it.'),
|
|
66
|
-
application_stop: str = Field(description='Application stop command script'
|
|
66
|
+
application_stop: str = Field(description='Application stop command script, Defensive stop command - checks if '
|
|
67
|
+
'the service exists and if the CD path exists, preventing errors '
|
|
68
|
+
'caused by blindly using `cd` or due to non-existent commands.'),
|
|
67
69
|
deploy_language: str = Field(description='Deploy language, like:docker, java, python, nodejs, golang'),
|
|
68
70
|
port: int = Field(description='Application listening port'),
|
|
69
71
|
project_path: Optional[str] = Field(description='Root path of the project. The .code_deploy '
|
|
@@ -82,7 +84,7 @@ def OOS_CodeDeploy(
|
|
|
82
84
|
步骤 1:识别部署方式
|
|
83
85
|
- 通过本地文件操作工具读取项目文件(package.json、requirements.txt、pom.xml 等)
|
|
84
86
|
- 识别项目的部署方式和技术栈(npm、python、java、go 等),项目的部署语言可以作为参数:deploy_language 传入
|
|
85
|
-
-
|
|
87
|
+
- 生成构建命令,注意,该构建命令不需要生成构建命令,不要因此新增sh文件,任何情况下都不要,因为构建命令是CodeDeploy的参数,不需要生成文件
|
|
86
88
|
|
|
87
89
|
步骤 2:构建或压缩文件,并记录文件路径
|
|
88
90
|
- 在本地执行构建命令,生成部署产物(tar.gz、zip 等压缩包)
|
|
@@ -92,13 +94,47 @@ def OOS_CodeDeploy(
|
|
|
92
94
|
步骤 3:调用此工具进行部署
|
|
93
95
|
|
|
94
96
|
重要提示:
|
|
95
|
-
1.
|
|
97
|
+
1. 启动命令(application_start)和停止命令必须采用防御性编程策略,确保每一步操作都经过验证,避免因路径不存在、命令缺失等问题导致部署失败。
|
|
98
|
+
|
|
99
|
+
关键要求
|
|
100
|
+
1. 压缩包处理规范
|
|
101
|
+
如果产物是压缩包(tar、tar.gz、zip等),必须先解压再执行启动命令
|
|
102
|
+
解压前应验证压缩包文件存在
|
|
103
|
+
使用非交互式解压命令(如 unzip -o、tar -xzf)避免需要用户确认
|
|
104
|
+
|
|
105
|
+
# 正确示例 - 带防御性检查
|
|
106
|
+
[ -f app.tar.gz ] && tar -xzf app.tar.gz || { echo "压缩包不存在"; exit 1; }
|
|
107
|
+
[ -f start.sh ] && chmod +x start.sh && nohup ./start.sh > /root/app.log 2>&1 & || { echo "启动脚本不存在"; exit 1; }
|
|
108
|
+
|
|
109
|
+
# 错误示例 - 无检查直接执行
|
|
110
|
+
cd /var/www/html # 如果目录不存在会失败
|
|
111
|
+
./start.sh # 如果文件不存在会失败
|
|
112
|
+
|
|
113
|
+
# 防御性停止命令 - 检查服务是否存在
|
|
114
|
+
if systemctl list-units --full --all | grep -q "nginx.service"; then
|
|
115
|
+
systemctl stop nginx
|
|
116
|
+
elif systemctl list-units --full --all | grep -q "apache2.service"; then
|
|
117
|
+
systemctl stop apache2
|
|
118
|
+
elif systemctl list-units --full --all | grep -q "httpd.service"; then
|
|
119
|
+
systemctl stop httpd
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
# 或者通过进程名停止
|
|
123
|
+
pkill -f "node.*app.js" || true
|
|
124
|
+
pkill -f "java.*app.jar" || true
|
|
125
|
+
|
|
126
|
+
# 检查命令是否存在
|
|
127
|
+
command -v npm >/dev/null 2>&1 || { echo "npm未安装"; exit 1; }
|
|
128
|
+
command -v java >/dev/null 2>&1 || { echo "java未安装"; exit 1; }
|
|
129
|
+
command -v python >/dev/null 2>&1 || { echo "python未安装"; exit 1; }
|
|
130
|
+
|
|
131
|
+
2. 启动命令(application_start)必须与上传的产物对应。如果产物是压缩包(tar、tar.gz、zip等),
|
|
96
132
|
需要先解压并进入对应目录后再执行启动命令。
|
|
97
|
-
|
|
133
|
+
3. 示例:如果上传的是 app.tar.gz,启动命令应该类似,一般压缩包就在当前目录下,直接解压即可,不要盲目cd,使用前务必确认对应文件和路径存在:
|
|
98
134
|
"tar -xzf app.tar.gz && ./start.sh"
|
|
99
135
|
或者如果解压后是Java应用:
|
|
100
136
|
"tar -xzf app.tar.gz && java -jar app.jar"
|
|
101
|
-
|
|
137
|
+
4. 确保启动命令能够正确找到并执行解压后的可执行文件或命令,避免部署失败。启动命令应该将程序运行在后台并打印日志到指定文件,
|
|
102
138
|
注意使用非交互式命令,比如unzip -o等自动覆盖的命令,无需交互
|
|
103
139
|
例如:
|
|
104
140
|
- npm 程序示例:
|
|
@@ -11,14 +11,14 @@ alibaba_cloud_ops_mcp_server/alibabacloud/static/PROMPT_UNDERSTANDING.md,sha256=
|
|
|
11
11
|
alibaba_cloud_ops_mcp_server/alibabacloud/static/__init__.py,sha256=wJrYamaIb7e_kA4ILZpdP1f1TUUTXMGqEhA4IbSZ2Ts,230
|
|
12
12
|
alibaba_cloud_ops_mcp_server/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
alibaba_cloud_ops_mcp_server/tools/api_tools.py,sha256=n7FLDAlnTSIk38iQqT1ABwAskIyswO_tBGTm34SPMpg,10632
|
|
14
|
-
alibaba_cloud_ops_mcp_server/tools/application_management_tools.py,sha256=
|
|
14
|
+
alibaba_cloud_ops_mcp_server/tools/application_management_tools.py,sha256=40K5MSfymBYDY4mcsd-0cBC__1VHDqZhvr7U4hWCCeE,38063
|
|
15
15
|
alibaba_cloud_ops_mcp_server/tools/cms_tools.py,sha256=BmPTiP8wu9DsEHBQsvR7JH9nFkcKMTBuNuafFqSfVxU,4308
|
|
16
16
|
alibaba_cloud_ops_mcp_server/tools/common_api_tools.py,sha256=ccQAWqS1I9F-fdOdjLcXN-dIhNqSbZV8T5ODuGXlfXM,2711
|
|
17
17
|
alibaba_cloud_ops_mcp_server/tools/local_tools.py,sha256=Sl7Vl2mVQMLyMIZQDLoE-xVF0vNz_haMEspyYPDe6Sg,13133
|
|
18
18
|
alibaba_cloud_ops_mcp_server/tools/oos_tools.py,sha256=cPEl05Y0rlNvCeO2SF46Y7Ewky4LXZ8__sD0_JCi8ek,13569
|
|
19
19
|
alibaba_cloud_ops_mcp_server/tools/oss_tools.py,sha256=6yKo1FqQN3n9I-eDUW8MrnIZTHthy-worKc8XIsn-Nw,7427
|
|
20
|
-
alibaba_cloud_ops_mcp_server-0.9.
|
|
21
|
-
alibaba_cloud_ops_mcp_server-0.9.
|
|
22
|
-
alibaba_cloud_ops_mcp_server-0.9.
|
|
23
|
-
alibaba_cloud_ops_mcp_server-0.9.
|
|
24
|
-
alibaba_cloud_ops_mcp_server-0.9.
|
|
20
|
+
alibaba_cloud_ops_mcp_server-0.9.22.dist-info/METADATA,sha256=dE6Nxx73VKrHxIewvtsVspsNTm_Sax-Oczljv2e0kL4,8794
|
|
21
|
+
alibaba_cloud_ops_mcp_server-0.9.22.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
22
|
+
alibaba_cloud_ops_mcp_server-0.9.22.dist-info/entry_points.txt,sha256=ESGAWXKEp184forhs7VzTD4P1AUdZz6vCW6hRUKITGw,83
|
|
23
|
+
alibaba_cloud_ops_mcp_server-0.9.22.dist-info/licenses/LICENSE,sha256=gQgVkp2ttRCjodiPpXZZR-d7JnrYIYNiHk1YDUYgpa4,11331
|
|
24
|
+
alibaba_cloud_ops_mcp_server-0.9.22.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|