Azure Custom Script Extension for Linux 教程
1. 项目的目录结构及介绍
Azure Custom Script Extension for Linux 项目的目录结构如下:
custom-script-extension-linux/
├── README.md
├── scripts/
│ ├── install_linux_agent.sh
│ ├── uninstall_linux_agent.sh
│ └── ...
├── src/
│ ├── CustomScriptExtension.py
│ ├── handler.py
│ └── ...
├── tests/
│ ├── test_custom_script.py
│ └── ...
└── ...
- README.md: 项目说明文件,包含项目的基本信息和使用指南。
- scripts/: 包含安装和卸载 Linux 代理的脚本。
- src/: 包含项目的主要源代码文件,如
CustomScriptExtension.py
和handler.py
。 - tests/: 包含项目的测试脚本,用于验证功能的正确性。
2. 项目的启动文件介绍
项目的启动文件主要是 src/handler.py
,它是 Custom Script Extension 的核心处理文件。该文件负责接收 Azure 的请求,执行用户定义的脚本,并返回执行结果。
# src/handler.py
import os
import sys
import logging
from CustomScriptExtension import CustomScriptExtension
def main():
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info('Starting Custom Script Extension handler...')
extension = CustomScriptExtension()
extension.run()
if __name__ == '__main__':
main()
3. 项目的配置文件介绍
项目的配置文件主要是 public.json
和 protected.json
,它们分别用于存储公共配置和受保护的配置信息。
public.json
{
"fileUris": ["https://example.com/script.sh"],
"commandToExecute": "bash script.sh"
}
protected.json
{
"storageAccountName": "mystorageaccount",
"storageAccountKey": "mykey"
}
- fileUris: 指定要下载的脚本文件的 URL。
- commandToExecute: 指定要执行的命令。
- storageAccountName: 存储账户名称(受保护配置)。
- storageAccountKey: 存储账户密钥(受保护配置)。
通过这些配置文件,用户可以自定义脚本的下载和执行行为。