Python CLI从DNX管理堆栈。

one-cli的Python项目详细描述


一个cli

CLI从DNX管理所有堆栈。在

BuildPyPILICENSE

快速入门

  1. 使用命令下载最新版本。在
curl -sSL https://raw.githubusercontent.com/DNXLabs/one-cli/master/get_one.sh | bash
  1. 测试以确保安装的版本是最新的。在
^{pr2}$
  1. 安装外壳完成(可选)
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安装

PyPI Project

pip3 install one-cli

# or setting a version

pip3 install one-cli==<version>

带Docker的CI/CD管道

要在任何CI/CD管道中使用CLI,我们鼓励您使用docker映像:

dnxsolutions/one-cli

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
Python虚拟环境
# 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。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法将自定义数据类型转换为字符串?   JavaLog4j和appender,这个Log4j定义正确吗?   用于换行的java Android Eclipse拆分   与某个方法关联的java启用/禁用JButton   java小部件列表视图加载视图   java国家/地区名称中的正则表达式   从Java调用Kotlin时,如何获取错误的行号?   java将视图传递给AsyncTask以访问findViewById   java SQL性能:多个绑定还是绑定到一个SQL变量以供重用?   BluetoothAdapter上的安卓 Java NullPointerException。isEnabled()   在clojure中取消引用java方法   JAVA网SocketException:IP_添加_成员身份失败(硬件筛选器不足?)   java从类对象的方法接收nullpointer异常   java使用for循环创建多个对象   java无法使用NTLM身份验证apache camel cxf   java Eclipse不喜欢@Override注释   java Spark SQL模拟红移(Oracle)“系统日期”或“当前日期”