Python CLI从DNX管理堆栈。
one-cli的Python项目详细描述
一个cli
CLI从DNX管理所有堆栈。在
快速入门
- 使用命令下载最新版本。在
curl -sSL https://raw.githubusercontent.com/DNXLabs/one-cli/master/get_one.sh | bash
- 测试以确保安装的版本是最新的。在
- 安装外壳完成(可选)
curl -sSL https://raw.githubusercontent.com/DNXLabs/one-cli/master/shell_completion.py | python3
安装特定版本
exportONE_VERSION=<version> # Linux sudo curl -L https://github.com/DNXLabs/one-cli/releases/download/$ONE_VERSION/one_linux_amd64 -o /usr/local/bin/one # Macos sudo curl -L https://github.com/DNXLabs/one-cli/releases/download/$ONE_VERSION/one_macos_amd64 -o /usr/local/bin/one sudo chmod +x /usr/local/bin/one
使用PyPi安装
pip3 install one-cli # or setting a version pip3 install one-cli==<version>
带Docker的CI/CD管道
要在任何CI/CD管道中使用CLI,我们鼓励您使用docker映像:
WARNING: This docker image should only be used inside CI/CD pipelines and it can generate error if used as an alias.
使用
Usage: one [OPTIONS] COMMAND [ARGS]...
CLI to manage all stacks from DNX.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
app Group of app commands wrapped inside docker.
auth Group of auth commands.
aws AWS CLI alias.
aws-v2 AWS v2 CLI alias.
init Create config file for CLI in current directory.
terraform Group of terraform commands wrapped inside docker.
workspace Manage workspaces.
配置示例
在一、山药在
images:terraform:dnxsolutions/terraform:0.13.0-dnx1gsuite:dnxsolutions/aws-google-auth:latestazure:dnxsolutions/docker-aws-azure-ad:latestaws:dnxsolutions/aws:1.18.44-dnx2aws_2:dnxsolutions/aws:2.0.37-dnx1ecs_deploy:dnxsolutions/ecs-deploy:1.2.0required_version:">=0.5.0,<=0.7.0"# ECS Appapp:name:copacabanaport:80docker:file:Dockerfileimage_name:copacabanaregistry_type:ecrregistry_options:ecr_aws_account_id:<redact>ecr_aws_region:ap-southeast-2ecr_aws_assume_role:trueecr_aws_role:<redact>ecs_task_definition_file:task-definition.tpl.json# Static Appapp:type:staticsrc:./builds3_bucket_name:<redact>distribution_id:<redact>workspaces:# ECS App example:mgmt_ecs_app:type:ecsaws:account_id:<redact>role:<redact>assume_role:true|false (default to false)region:ap-southeast-2ecs_cluster_name:cluster-01# Static App example:mgmt_static_app:aws:account_id:<redact>role:<redact>region:ap-southeast-2assume_role:true# Override the template static appapp:src:./builds3_bucket_name:<redact>distribution_id:<redact># Terraform examplemgmt:aws:account_id:<redact>role:<redact>nonprod:aws:account_id:<redact>role:<redact>prod:aws:account_id:<redact>role:<redact>default:aws:account_id:<redact>role:<redact>assume_role:true|false (default to false)
插件系统
为了更好地支持CLI中的定制,我们创建了一个plugin system
,您可以扩展代码,创建新的命令和组,甚至修改现有的命令和组。在
所有插件都需要在~/.one/plugins/*
内创建
文件夹结构
└── plugins ├── __init__.py (empty file) └── my_plugin.py
插件示例
~/.one/plugins/my_plugin.py
importclickfromone.oneimportclidef__init__():cli.add_command(my_plugin)@click.command(name='my_plugin',help='My plugin command')defmy_plugin():click.echo('It works!')
运行
$ one my_plugin It works!
手动生成二进制文件
pip install pyinstaller pyinstaller --clean --hidden-import one.__main__ cli.py --onefile --noconsole -n one
发展
依赖性
- Python3
# Create environment python3 -m venv env # To activate the environmentsource env/bin/activate # When you finish you can exit typing deactivate
安装依赖项
pip3 install --editable .
作者
由DNX Solutions管理。在
许可证
Apache2许可。有关详细信息,请参见LICENSE。在
- 项目
标签: