ops-cli 2.2.0__tar.gz → 2.2.1__tar.gz
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.
- {ops-cli-2.2.0/src/ops_cli.egg-info → ops-cli-2.2.1}/PKG-INFO +144 -3
- {ops-cli-2.2.0 → ops-cli-2.2.1}/README.md +3 -2
- {ops-cli-2.2.0 → ops-cli-2.2.1}/requirements.txt +25 -25
- {ops-cli-2.2.0 → ops-cli-2.2.1}/setup.py +1 -1
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/config.py +37 -6
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/ssh.py +1 -1
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/sshconfig.py +1 -1
- {ops-cli-2.2.0 → ops-cli-2.2.1/src/ops_cli.egg-info}/PKG-INFO +144 -3
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops_cli.egg-info/requires.txt +31 -25
- {ops-cli-2.2.0 → ops-cli-2.2.1}/LICENSE +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/MANIFEST.in +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/.opsconfig.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/clusters/kubeconfigs/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/clusters/my-kubernetes-cluster.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/backends.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/common_variables.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/configure-local-kubectl.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-cluster-autoscaler.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-cluster.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-worker-nodes-auth-configmap.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-worker-nodes.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/outputs.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/providers.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/scripts/fileexist.sh +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/variables.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/vpc.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/backends.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/common_variables.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/providers.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/backends.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/cluster-autoscaler.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/common_variables.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/dashboard.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/kube-state-metrics.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/kube2iam.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/provider_helm.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/providers.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/variables.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm-init/backends.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm-init/helm-init.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/aws-kubernetes/update.sh +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/.opsconfig.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/install_stress_tool.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/setup.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/setup12.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra-env.sh +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra_defaults.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra_defaults_12.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/stress.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/ansible.cfg +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/cluster1.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/cluster2.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/main/main.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/main/variables.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/cassandra/main.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/macros.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/shared_iam/default_policy.json +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/vpc/main.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/user_data +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/cluster/dev/dev.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/cluster/prod/prod.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/inventory/hosts +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/password_dev.txt +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/password_prod.txt +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/playbook/example.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/vault/vault_dev.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/ansible-vault/vault/vault_prod.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/inventory/.opsconfig.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/inventory/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/inventory/local_inventory/hosts +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/inventory/my-aws-cluster.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/inventory/my-azure-cluster.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/packer/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/packer/clusters/ubuntu.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/packer/packer/ubuntu.json +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/.gitignore +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/ansible.cfg +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/playbooks/site.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/common/tasks/main.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/db/tasks/main.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/web/tasks/main.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/tasks/copy-key.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/clusters/example.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/main/main.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/main/shared_variables.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/db/instance.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/db/main.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/macros.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/shared_iam/default_policy.json +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/vpc/main.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/elb.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/instance.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/main.tf.jinja2 +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/user_data +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/.opsconfig.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/README.md +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/compositions/terraform/cluster/main.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/compositions/terraform/network/main.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster1/composition=cluster/conf.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster1/composition=network/conf.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster1/conf.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster2/composition=cluster/conf.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster2/composition=network/conf.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster2/conf.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/default.yaml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/modules/cluster/main.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/modules/network/main.tf +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/setup.cfg +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/ansible/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/ansible/callback_plugins/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/ansible/filter_plugins/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/ansible/filter_plugins/commonfilters.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/clusterconfig.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/opsconfig.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/aws.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/config_generator.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/helmfile.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/inventory.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/packer.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/parser.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/playbook.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/run.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/sync.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/cli/terraform.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/ansible/ansible.cfg +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/deploy_prometheus_alert_rules.yml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/install_rpm.yml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/remove_prometheus_alert_rules.yml +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.config +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.scb.proxy.config.tpl +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.tunnel.config +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/data/terraform/terraformrc +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/git_utils.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/hierarchical/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/hierarchical/composition_config_generator.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/SKMS.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/azurerm.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/caching.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/ec2inventory.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/generator.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/plugin/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/plugin/azr.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/plugin/cns.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/plugin/ec2.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/plugin/legacy_pcs.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/inventory/plugin/skms.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/jinja/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/main.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/opsconfig.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/simpleconsul.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/simplessm.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/simplevault.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/terraform/__init__.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops/terraform/terraform_cmd_generator.py +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops_cli.egg-info/SOURCES.txt +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops_cli.egg-info/dependency_links.txt +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops_cli.egg-info/entry_points.txt +0 -0
- {ops-cli-2.2.0 → ops-cli-2.2.1}/src/ops_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ops-cli
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Ops - wrapper for Terraform, Ansible, and SSH for cloud automation
|
|
5
5
|
Home-page: https://github.com/adobe/ops-cli
|
|
6
6
|
Author: Adobe
|
|
@@ -23,6 +23,146 @@ Classifier: Topic :: Text Processing :: Markup :: HTML
|
|
|
23
23
|
Requires-Python: >=3.5
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
+
Requires-Dist: adal==1.2.7
|
|
27
|
+
Requires-Dist: ansible==8.2.0; python_version >= "3.9"
|
|
28
|
+
Requires-Dist: ansible-core==2.15.5; python_version >= "3.9"
|
|
29
|
+
Requires-Dist: awscli==1.29.12; python_version >= "3.7"
|
|
30
|
+
Requires-Dist: azure==4.0.0
|
|
31
|
+
Requires-Dist: azure-applicationinsights==0.1.1
|
|
32
|
+
Requires-Dist: azure-batch==4.1.3
|
|
33
|
+
Requires-Dist: azure-common==1.1.28
|
|
34
|
+
Requires-Dist: azure-core==1.29.4; python_version >= "3.7"
|
|
35
|
+
Requires-Dist: azure-cosmosdb-nspkg==2.0.2
|
|
36
|
+
Requires-Dist: azure-cosmosdb-table==1.0.6
|
|
37
|
+
Requires-Dist: azure-datalake-store==0.0.53
|
|
38
|
+
Requires-Dist: azure-eventgrid==1.3.0
|
|
39
|
+
Requires-Dist: azure-graphrbac==0.40.0
|
|
40
|
+
Requires-Dist: azure-keyvault==1.1.0
|
|
41
|
+
Requires-Dist: azure-loganalytics==0.1.1
|
|
42
|
+
Requires-Dist: azure-mgmt==4.0.0
|
|
43
|
+
Requires-Dist: azure-mgmt-advisor==1.0.1
|
|
44
|
+
Requires-Dist: azure-mgmt-applicationinsights==0.1.1
|
|
45
|
+
Requires-Dist: azure-mgmt-authorization==0.50.0
|
|
46
|
+
Requires-Dist: azure-mgmt-batch==5.0.1
|
|
47
|
+
Requires-Dist: azure-mgmt-batchai==2.0.0
|
|
48
|
+
Requires-Dist: azure-mgmt-billing==0.2.0
|
|
49
|
+
Requires-Dist: azure-mgmt-cdn==3.1.0
|
|
50
|
+
Requires-Dist: azure-mgmt-cognitiveservices==3.0.0
|
|
51
|
+
Requires-Dist: azure-mgmt-commerce==1.0.1
|
|
52
|
+
Requires-Dist: azure-mgmt-compute==4.6.2
|
|
53
|
+
Requires-Dist: azure-mgmt-consumption==2.0.0
|
|
54
|
+
Requires-Dist: azure-mgmt-containerinstance==1.5.0
|
|
55
|
+
Requires-Dist: azure-mgmt-containerregistry==2.8.0
|
|
56
|
+
Requires-Dist: azure-mgmt-containerservice==4.4.0
|
|
57
|
+
Requires-Dist: azure-mgmt-cosmosdb==0.4.1
|
|
58
|
+
Requires-Dist: azure-mgmt-datafactory==0.6.0
|
|
59
|
+
Requires-Dist: azure-mgmt-datalake-analytics==0.6.0
|
|
60
|
+
Requires-Dist: azure-mgmt-datalake-nspkg==3.0.1
|
|
61
|
+
Requires-Dist: azure-mgmt-datalake-store==0.5.0
|
|
62
|
+
Requires-Dist: azure-mgmt-datamigration==1.0.0
|
|
63
|
+
Requires-Dist: azure-mgmt-devspaces==0.1.0
|
|
64
|
+
Requires-Dist: azure-mgmt-devtestlabs==2.2.0
|
|
65
|
+
Requires-Dist: azure-mgmt-dns==2.1.0
|
|
66
|
+
Requires-Dist: azure-mgmt-eventgrid==1.0.0
|
|
67
|
+
Requires-Dist: azure-mgmt-eventhub==2.6.0
|
|
68
|
+
Requires-Dist: azure-mgmt-hanaonazure==0.1.1
|
|
69
|
+
Requires-Dist: azure-mgmt-iotcentral==0.1.0
|
|
70
|
+
Requires-Dist: azure-mgmt-iothub==0.5.0
|
|
71
|
+
Requires-Dist: azure-mgmt-iothubprovisioningservices==0.2.0
|
|
72
|
+
Requires-Dist: azure-mgmt-keyvault==1.1.0
|
|
73
|
+
Requires-Dist: azure-mgmt-loganalytics==0.2.0
|
|
74
|
+
Requires-Dist: azure-mgmt-logic==3.0.0
|
|
75
|
+
Requires-Dist: azure-mgmt-machinelearningcompute==0.4.1
|
|
76
|
+
Requires-Dist: azure-mgmt-managementgroups==0.1.0
|
|
77
|
+
Requires-Dist: azure-mgmt-managementpartner==0.1.1
|
|
78
|
+
Requires-Dist: azure-mgmt-maps==0.1.0
|
|
79
|
+
Requires-Dist: azure-mgmt-marketplaceordering==0.1.0
|
|
80
|
+
Requires-Dist: azure-mgmt-media==1.0.1
|
|
81
|
+
Requires-Dist: azure-mgmt-monitor==0.5.2
|
|
82
|
+
Requires-Dist: azure-mgmt-msi==0.2.0
|
|
83
|
+
Requires-Dist: azure-mgmt-network==2.7.0
|
|
84
|
+
Requires-Dist: azure-mgmt-notificationhubs==2.1.0
|
|
85
|
+
Requires-Dist: azure-mgmt-nspkg==3.0.2
|
|
86
|
+
Requires-Dist: azure-mgmt-policyinsights==0.1.0
|
|
87
|
+
Requires-Dist: azure-mgmt-powerbiembedded==2.0.0
|
|
88
|
+
Requires-Dist: azure-mgmt-rdbms==1.9.0
|
|
89
|
+
Requires-Dist: azure-mgmt-recoveryservices==0.3.0
|
|
90
|
+
Requires-Dist: azure-mgmt-recoveryservicesbackup==0.3.0
|
|
91
|
+
Requires-Dist: azure-mgmt-redis==5.0.0
|
|
92
|
+
Requires-Dist: azure-mgmt-relay==0.1.0
|
|
93
|
+
Requires-Dist: azure-mgmt-reservations==0.2.1
|
|
94
|
+
Requires-Dist: azure-mgmt-resource==2.2.0
|
|
95
|
+
Requires-Dist: azure-mgmt-scheduler==2.0.0
|
|
96
|
+
Requires-Dist: azure-mgmt-search==2.1.0
|
|
97
|
+
Requires-Dist: azure-mgmt-servicebus==0.5.3
|
|
98
|
+
Requires-Dist: azure-mgmt-servicefabric==0.2.0
|
|
99
|
+
Requires-Dist: azure-mgmt-signalr==0.1.1
|
|
100
|
+
Requires-Dist: azure-mgmt-sql==0.9.1
|
|
101
|
+
Requires-Dist: azure-mgmt-storage==2.0.0
|
|
102
|
+
Requires-Dist: azure-mgmt-subscription==0.2.0
|
|
103
|
+
Requires-Dist: azure-mgmt-trafficmanager==0.50.0
|
|
104
|
+
Requires-Dist: azure-mgmt-web==0.35.0
|
|
105
|
+
Requires-Dist: azure-nspkg==3.0.2
|
|
106
|
+
Requires-Dist: azure-servicebus==0.21.1
|
|
107
|
+
Requires-Dist: azure-servicefabric==6.3.0.0
|
|
108
|
+
Requires-Dist: azure-servicemanagement-legacy==0.20.7
|
|
109
|
+
Requires-Dist: azure-storage-blob==1.5.0
|
|
110
|
+
Requires-Dist: azure-storage-common==1.4.2
|
|
111
|
+
Requires-Dist: azure-storage-file==1.4.0
|
|
112
|
+
Requires-Dist: azure-storage-queue==1.4.0
|
|
113
|
+
Requires-Dist: backports.functools-lru-cache==1.6.6; python_version >= "2.6"
|
|
114
|
+
Requires-Dist: boto==2.49.0
|
|
115
|
+
Requires-Dist: boto3==1.28.12; python_version >= "3.7"
|
|
116
|
+
Requires-Dist: botocore==1.31.12; python_version >= "3.7"
|
|
117
|
+
Requires-Dist: cachetools==5.3.1; python_version >= "3.7"
|
|
118
|
+
Requires-Dist: certifi==2023.7.22; python_version >= "3.6"
|
|
119
|
+
Requires-Dist: cffi==1.16.0; python_version >= "3.8"
|
|
120
|
+
Requires-Dist: charset-normalizer==3.3.0; python_full_version >= "3.7.0"
|
|
121
|
+
Requires-Dist: colorama==0.4.4; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4"
|
|
122
|
+
Requires-Dist: cryptography==41.0.4; python_version >= "3.7"
|
|
123
|
+
Requires-Dist: deepmerge==1.1.0
|
|
124
|
+
Requires-Dist: docutils==0.16; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4"
|
|
125
|
+
Requires-Dist: gitdb==4.0.10; python_version >= "3.7"
|
|
126
|
+
Requires-Dist: gitpython==3.1.37; python_version >= "3.7"
|
|
127
|
+
Requires-Dist: google-auth==2.23.3; python_version >= "3.7"
|
|
128
|
+
Requires-Dist: hashmerge==0.2
|
|
129
|
+
Requires-Dist: himl==0.15.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
130
|
+
Requires-Dist: hvac==1.1.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0"
|
|
131
|
+
Requires-Dist: idna==3.4; python_version >= "3.5"
|
|
132
|
+
Requires-Dist: inflection==0.5.1; python_version >= "3.5"
|
|
133
|
+
Requires-Dist: isodate==0.6.1
|
|
134
|
+
Requires-Dist: jinja2==3.1.2; python_version >= "3.7"
|
|
135
|
+
Requires-Dist: jmespath==1.0.1; python_version >= "3.7"
|
|
136
|
+
Requires-Dist: kubernetes==26.1.0; python_version >= "3.6"
|
|
137
|
+
Requires-Dist: lru-cache==0.2.3
|
|
138
|
+
Requires-Dist: markupsafe==2.1.3; python_version >= "3.7"
|
|
139
|
+
Requires-Dist: msal==1.24.1; python_version >= "2.7"
|
|
140
|
+
Requires-Dist: msrest==0.7.1; python_version >= "3.6"
|
|
141
|
+
Requires-Dist: msrestazure==0.6.4
|
|
142
|
+
Requires-Dist: oauthlib==3.2.2; python_version >= "3.6"
|
|
143
|
+
Requires-Dist: packaging==23.2; python_version >= "3.7"
|
|
144
|
+
Requires-Dist: passgen==1.1.1
|
|
145
|
+
Requires-Dist: pathlib2==2.3.7.post1
|
|
146
|
+
Requires-Dist: pyasn1==0.5.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
|
|
147
|
+
Requires-Dist: pyasn1-modules==0.3.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
|
|
148
|
+
Requires-Dist: pycparser==2.21
|
|
149
|
+
Requires-Dist: pyhcl==0.4.5
|
|
150
|
+
Requires-Dist: pyjwt==2.8.0; python_version >= "3.7"
|
|
151
|
+
Requires-Dist: python-consul==1.1.0
|
|
152
|
+
Requires-Dist: python-dateutil==2.8.2; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"
|
|
153
|
+
Requires-Dist: pyyaml==6.0.1; python_version >= "3.6"
|
|
154
|
+
Requires-Dist: requests==2.31.0; python_version >= "3.7"
|
|
155
|
+
Requires-Dist: requests-oauthlib==1.3.1; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
156
|
+
Requires-Dist: resolvelib==1.0.1
|
|
157
|
+
Requires-Dist: rsa==4.7.2; python_version >= "3.5" and python_version < "4"
|
|
158
|
+
Requires-Dist: s3transfer==0.6.2; python_version >= "3.7"
|
|
159
|
+
Requires-Dist: setuptools==68.2.2; python_version >= "3.8"
|
|
160
|
+
Requires-Dist: simpledi==0.4.1
|
|
161
|
+
Requires-Dist: six==1.16.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"
|
|
162
|
+
Requires-Dist: smmap==5.0.1; python_version >= "3.7"
|
|
163
|
+
Requires-Dist: typing-extensions==4.8.0; python_version >= "3.8"
|
|
164
|
+
Requires-Dist: urllib3==1.26.17; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
|
|
165
|
+
Requires-Dist: websocket-client==1.6.4; python_version >= "3.8"
|
|
26
166
|
|
|
27
167
|
# Ops CLI
|
|
28
168
|
[](https://github.com/adobe/ops-cli/actions/workflows/release.yml) [](https://github.com/adobe/ops-cli/pkgs/container/ops-cli) [](https://github.com/adobe/ops-cli/blob/master/LICENSE)
|
|
@@ -68,6 +208,7 @@ It can be used to add a layer of templating (using jinja2) on top of Terraform f
|
|
|
68
208
|
* [Terraform landscape](#terraform-landscape)
|
|
69
209
|
* [SSH](#ssh)
|
|
70
210
|
* [SSHPass](#sshpass)
|
|
211
|
+
* [Balabit SCB](#scb)
|
|
71
212
|
* [Play](#play)
|
|
72
213
|
* [Run command](#run-command)
|
|
73
214
|
* [Sync files](#sync-files)
|
|
@@ -176,7 +317,7 @@ workon ops
|
|
|
176
317
|
# uninstall previous `ops` version (if you have it)
|
|
177
318
|
pip uninstall ops --yes
|
|
178
319
|
|
|
179
|
-
# install ops-cli v2.2.
|
|
320
|
+
# install ops-cli v2.2.1 stable release
|
|
180
321
|
pip install --upgrade ops-cli
|
|
181
322
|
```
|
|
182
323
|
|
|
@@ -192,7 +333,7 @@ You can try out `ops-cli`, by using docker. The docker image has all required pr
|
|
|
192
333
|
|
|
193
334
|
To start out a container, running the latest `ops-cli` docker image run:
|
|
194
335
|
```sh
|
|
195
|
-
docker run -it ghcr.io/adobe/ops-cli:2.2.
|
|
336
|
+
docker run -it ghcr.io/adobe/ops-cli:2.2.1 bash
|
|
196
337
|
```
|
|
197
338
|
|
|
198
339
|
After the container has started, you can start using `ops-cli`:
|
|
@@ -42,6 +42,7 @@ It can be used to add a layer of templating (using jinja2) on top of Terraform f
|
|
|
42
42
|
* [Terraform landscape](#terraform-landscape)
|
|
43
43
|
* [SSH](#ssh)
|
|
44
44
|
* [SSHPass](#sshpass)
|
|
45
|
+
* [Balabit SCB](#scb)
|
|
45
46
|
* [Play](#play)
|
|
46
47
|
* [Run command](#run-command)
|
|
47
48
|
* [Sync files](#sync-files)
|
|
@@ -150,7 +151,7 @@ workon ops
|
|
|
150
151
|
# uninstall previous `ops` version (if you have it)
|
|
151
152
|
pip uninstall ops --yes
|
|
152
153
|
|
|
153
|
-
# install ops-cli v2.2.
|
|
154
|
+
# install ops-cli v2.2.1 stable release
|
|
154
155
|
pip install --upgrade ops-cli
|
|
155
156
|
```
|
|
156
157
|
|
|
@@ -166,7 +167,7 @@ You can try out `ops-cli`, by using docker. The docker image has all required pr
|
|
|
166
167
|
|
|
167
168
|
To start out a container, running the latest `ops-cli` docker image run:
|
|
168
169
|
```sh
|
|
169
|
-
docker run -it ghcr.io/adobe/ops-cli:2.2.
|
|
170
|
+
docker run -it ghcr.io/adobe/ops-cli:2.2.1 bash
|
|
170
171
|
```
|
|
171
172
|
|
|
172
173
|
After the container has started, you can start using `ops-cli`:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
adal==1.2.7
|
|
2
|
-
ansible==8.2.0
|
|
3
|
-
ansible-core==2.15.
|
|
4
|
-
awscli==1.29.12
|
|
2
|
+
ansible==8.2.0; python_version >= '3.9'
|
|
3
|
+
ansible-core==2.15.5; python_version >= '3.9'
|
|
4
|
+
awscli==1.29.12; python_version >= '3.7'
|
|
5
5
|
azure==4.0.0
|
|
6
6
|
azure-applicationinsights==0.1.1
|
|
7
7
|
azure-batch==4.1.3
|
|
8
8
|
azure-common==1.1.28
|
|
9
|
-
azure-core==1.
|
|
9
|
+
azure-core==1.29.4; python_version >= '3.7'
|
|
10
10
|
azure-cosmosdb-nspkg==2.0.2
|
|
11
11
|
azure-cosmosdb-table==1.0.6
|
|
12
12
|
azure-datalake-store==0.0.53
|
|
@@ -87,41 +87,41 @@ azure-storage-file==1.4.0
|
|
|
87
87
|
azure-storage-queue==1.4.0
|
|
88
88
|
backports.functools-lru-cache==1.6.6; python_version >= '2.6'
|
|
89
89
|
boto==2.49.0
|
|
90
|
-
boto3==1.28.12
|
|
90
|
+
boto3==1.28.12; python_version >= '3.7'
|
|
91
91
|
botocore==1.31.12; python_version >= '3.7'
|
|
92
92
|
cachetools==5.3.1; python_version >= '3.7'
|
|
93
93
|
certifi==2023.7.22; python_version >= '3.6'
|
|
94
|
-
cffi==1.
|
|
95
|
-
charset-normalizer==3.
|
|
94
|
+
cffi==1.16.0; python_version >= '3.8'
|
|
95
|
+
charset-normalizer==3.3.0; python_full_version >= '3.7.0'
|
|
96
96
|
colorama==0.4.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
|
97
|
-
cryptography==41.0.
|
|
97
|
+
cryptography==41.0.4; python_version >= '3.7'
|
|
98
98
|
deepmerge==1.1.0
|
|
99
99
|
docutils==0.16; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
|
100
100
|
gitdb==4.0.10; python_version >= '3.7'
|
|
101
|
-
gitpython==3.1.
|
|
102
|
-
google-auth==2.
|
|
101
|
+
gitpython==3.1.37; python_version >= '3.7'
|
|
102
|
+
google-auth==2.23.3; python_version >= '3.7'
|
|
103
103
|
hashmerge==0.2
|
|
104
|
-
himl==0.15.0
|
|
105
|
-
hvac==1.1.1
|
|
104
|
+
himl==0.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
|
105
|
+
hvac==1.1.1; python_full_version >= '3.6.2' and python_full_version < '4.0.0'
|
|
106
106
|
idna==3.4; python_version >= '3.5'
|
|
107
|
-
inflection==0.5.1
|
|
107
|
+
inflection==0.5.1; python_version >= '3.5'
|
|
108
108
|
isodate==0.6.1
|
|
109
|
-
jinja2==3.1.2
|
|
109
|
+
jinja2==3.1.2; python_version >= '3.7'
|
|
110
110
|
jmespath==1.0.1; python_version >= '3.7'
|
|
111
|
-
kubernetes==26.1.0
|
|
111
|
+
kubernetes==26.1.0; python_version >= '3.6'
|
|
112
112
|
lru-cache==0.2.3
|
|
113
113
|
markupsafe==2.1.3; python_version >= '3.7'
|
|
114
|
-
msal==1.
|
|
114
|
+
msal==1.24.1; python_version >= '2.7'
|
|
115
115
|
msrest==0.7.1; python_version >= '3.6'
|
|
116
116
|
msrestazure==0.6.4
|
|
117
117
|
oauthlib==3.2.2; python_version >= '3.6'
|
|
118
|
-
packaging==23.
|
|
118
|
+
packaging==23.2; python_version >= '3.7'
|
|
119
119
|
passgen==1.1.1
|
|
120
120
|
pathlib2==2.3.7.post1
|
|
121
121
|
pyasn1==0.5.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
|
|
122
122
|
pyasn1-modules==0.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
|
|
123
123
|
pycparser==2.21
|
|
124
|
-
pyhcl==0.4.
|
|
124
|
+
pyhcl==0.4.5
|
|
125
125
|
pyjwt==2.8.0; python_version >= '3.7'
|
|
126
126
|
python-consul==1.1.0
|
|
127
127
|
python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
|
|
@@ -130,11 +130,11 @@ requests==2.31.0; python_version >= '3.7'
|
|
|
130
130
|
requests-oauthlib==1.3.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
|
131
131
|
resolvelib==1.0.1
|
|
132
132
|
rsa==4.7.2; python_version >= '3.5' and python_version < '4'
|
|
133
|
-
s3transfer==0.6.
|
|
134
|
-
setuptools==68.
|
|
133
|
+
s3transfer==0.6.2; python_version >= '3.7'
|
|
134
|
+
setuptools==68.2.2; python_version >= '3.8'
|
|
135
135
|
simpledi==0.4.1
|
|
136
|
-
six==1.16.0
|
|
137
|
-
smmap==5.0.
|
|
138
|
-
typing-extensions==4.
|
|
139
|
-
urllib3==1.26.
|
|
140
|
-
websocket-client==1.6.
|
|
136
|
+
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
|
|
137
|
+
smmap==5.0.1; python_version >= '3.7'
|
|
138
|
+
typing-extensions==4.8.0; python_version >= '3.8'
|
|
139
|
+
urllib3==1.26.17; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
|
|
140
|
+
websocket-client==1.6.4; python_version >= '3.8'
|
|
@@ -23,7 +23,7 @@ _mydir = os.path.abspath(os.path.dirname(sys.argv[0]))
|
|
|
23
23
|
_requires = [r for r in open(os.path.sep.join((_mydir, 'requirements.txt')), "r").read().split('\n') if len(r) > 1]
|
|
24
24
|
setup(
|
|
25
25
|
name='ops-cli',
|
|
26
|
-
version='2.2.
|
|
26
|
+
version='2.2.1',
|
|
27
27
|
description='Ops - wrapper for Terraform, Ansible, and SSH for cloud automation',
|
|
28
28
|
long_description=_readme + '\n\n',
|
|
29
29
|
long_description_content_type='text/markdown',
|
|
@@ -8,21 +8,22 @@
|
|
|
8
8
|
# OF ANY KIND, either express or implied. See the License for the specific language
|
|
9
9
|
# governing permissions and limitations under the License.
|
|
10
10
|
|
|
11
|
-
import collections
|
|
12
11
|
import os
|
|
13
|
-
|
|
14
12
|
import yaml
|
|
15
13
|
|
|
16
14
|
from ansible.module_utils.common.collections import ImmutableDict
|
|
17
15
|
from ansible.parsing.dataloader import DataLoader
|
|
18
|
-
from ansible.plugins.loader import PluginLoader
|
|
19
16
|
from ansible.template import Templar
|
|
20
|
-
from ansible.utils.vars import
|
|
17
|
+
from ansible.utils.vars import combine_vars
|
|
21
18
|
from ansible.vars.manager import VariableManager
|
|
22
19
|
from ops.cli import display
|
|
23
20
|
from ansible import constants as C
|
|
24
21
|
from ansible import context
|
|
25
22
|
import logging
|
|
23
|
+
from ansible.errors import AnsibleOptionsError
|
|
24
|
+
from ansible.module_utils._text import to_text
|
|
25
|
+
from ansible.parsing.splitter import parse_kv
|
|
26
|
+
from collections.abc import MutableMapping
|
|
26
27
|
|
|
27
28
|
logger = logging.getLogger(__name__)
|
|
28
29
|
|
|
@@ -34,6 +35,38 @@ def get_cluster_name(cluster_config_path):
|
|
|
34
35
|
'/')[-1].replace('.yaml', '').replace('.yml', '')
|
|
35
36
|
|
|
36
37
|
|
|
38
|
+
def load_extra_vars(loader):
|
|
39
|
+
"""
|
|
40
|
+
Overriding Ansible function using version before slight var loading optimization
|
|
41
|
+
in order to avoid caching issues https://github.com/ansible/ansible/pull/78835/files
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
extra_vars = {}
|
|
45
|
+
for extra_vars_opt in context.CLIARGS.get('extra_vars', tuple()):
|
|
46
|
+
data = None
|
|
47
|
+
extra_vars_opt = to_text(extra_vars_opt, errors='surrogate_or_strict')
|
|
48
|
+
if extra_vars_opt is None or not extra_vars_opt:
|
|
49
|
+
continue
|
|
50
|
+
|
|
51
|
+
if extra_vars_opt.startswith(u"@"):
|
|
52
|
+
# Argument is a YAML file (JSON is a subset of YAML)
|
|
53
|
+
data = loader.load_from_file(extra_vars_opt[1:])
|
|
54
|
+
elif extra_vars_opt[0] in [u'/', u'.']:
|
|
55
|
+
raise AnsibleOptionsError("Please prepend extra_vars filename '%s' with '@'" % extra_vars_opt)
|
|
56
|
+
elif extra_vars_opt[0] in [u'[', u'{']:
|
|
57
|
+
# Arguments as YAML
|
|
58
|
+
data = loader.load(extra_vars_opt)
|
|
59
|
+
else:
|
|
60
|
+
# Arguments as Key-value
|
|
61
|
+
data = parse_kv(extra_vars_opt)
|
|
62
|
+
|
|
63
|
+
if isinstance(data, MutableMapping):
|
|
64
|
+
extra_vars = combine_vars(extra_vars, data)
|
|
65
|
+
else:
|
|
66
|
+
raise AnsibleOptionsError("Invalid extra vars data supplied. '%s' could not be made into a dictionary" % extra_vars_opt)
|
|
67
|
+
return extra_vars
|
|
68
|
+
|
|
69
|
+
|
|
37
70
|
class ClusterConfig(object):
|
|
38
71
|
def __init__(self, cluster_config_generator,
|
|
39
72
|
ops_config, cluster_config_path):
|
|
@@ -119,7 +152,6 @@ class JinjaConfigGenerator(object):
|
|
|
119
152
|
context_cliargs['extra_vars'] = tuple(extra_vars)
|
|
120
153
|
|
|
121
154
|
context.CLIARGS = ImmutableDict(context_cliargs)
|
|
122
|
-
setattr(load_extra_vars, 'extra_vars', {})
|
|
123
155
|
variable_manager._extra_vars = load_extra_vars(
|
|
124
156
|
loader=data_loader)
|
|
125
157
|
|
|
@@ -159,7 +191,6 @@ class ClusterConfigGenerator(object):
|
|
|
159
191
|
context_cliargs['extra_vars'] = tuple(extra_vars)
|
|
160
192
|
|
|
161
193
|
context.CLIARGS = ImmutableDict(context_cliargs)
|
|
162
|
-
setattr(load_extra_vars, 'extra_vars', {})
|
|
163
194
|
variable_manager._extra_vars = load_extra_vars(
|
|
164
195
|
loader=data_loader)
|
|
165
196
|
|
|
@@ -286,7 +286,7 @@ class SshRunner(object):
|
|
|
286
286
|
if args.proxy:
|
|
287
287
|
if scb_enabled:
|
|
288
288
|
proxy_port = args.local or SshConfigGenerator.generate_ssh_scb_proxy_port(
|
|
289
|
-
self.ansible_inventory.generated_path.
|
|
289
|
+
self.ansible_inventory.generated_path.removesuffix("/inventory"),
|
|
290
290
|
args.auto_scb_port,
|
|
291
291
|
scb_proxy_port
|
|
292
292
|
)
|
|
@@ -90,7 +90,7 @@ class SshConfigGenerator(object):
|
|
|
90
90
|
ssh_config_content = ssh_config_template.format(
|
|
91
91
|
scb_proxy_port=scb_proxy_port
|
|
92
92
|
)
|
|
93
|
-
ssh_config_path = ssh_config_tpl_path.
|
|
93
|
+
ssh_config_path = ssh_config_tpl_path.removesuffix("_tpl")
|
|
94
94
|
with open(ssh_config_path, 'w') as f:
|
|
95
95
|
f.write(ssh_config_content)
|
|
96
96
|
os.fchmod(f.fileno(), 0o644)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ops-cli
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Ops - wrapper for Terraform, Ansible, and SSH for cloud automation
|
|
5
5
|
Home-page: https://github.com/adobe/ops-cli
|
|
6
6
|
Author: Adobe
|
|
@@ -23,6 +23,146 @@ Classifier: Topic :: Text Processing :: Markup :: HTML
|
|
|
23
23
|
Requires-Python: >=3.5
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
+
Requires-Dist: adal==1.2.7
|
|
27
|
+
Requires-Dist: ansible==8.2.0; python_version >= "3.9"
|
|
28
|
+
Requires-Dist: ansible-core==2.15.5; python_version >= "3.9"
|
|
29
|
+
Requires-Dist: awscli==1.29.12; python_version >= "3.7"
|
|
30
|
+
Requires-Dist: azure==4.0.0
|
|
31
|
+
Requires-Dist: azure-applicationinsights==0.1.1
|
|
32
|
+
Requires-Dist: azure-batch==4.1.3
|
|
33
|
+
Requires-Dist: azure-common==1.1.28
|
|
34
|
+
Requires-Dist: azure-core==1.29.4; python_version >= "3.7"
|
|
35
|
+
Requires-Dist: azure-cosmosdb-nspkg==2.0.2
|
|
36
|
+
Requires-Dist: azure-cosmosdb-table==1.0.6
|
|
37
|
+
Requires-Dist: azure-datalake-store==0.0.53
|
|
38
|
+
Requires-Dist: azure-eventgrid==1.3.0
|
|
39
|
+
Requires-Dist: azure-graphrbac==0.40.0
|
|
40
|
+
Requires-Dist: azure-keyvault==1.1.0
|
|
41
|
+
Requires-Dist: azure-loganalytics==0.1.1
|
|
42
|
+
Requires-Dist: azure-mgmt==4.0.0
|
|
43
|
+
Requires-Dist: azure-mgmt-advisor==1.0.1
|
|
44
|
+
Requires-Dist: azure-mgmt-applicationinsights==0.1.1
|
|
45
|
+
Requires-Dist: azure-mgmt-authorization==0.50.0
|
|
46
|
+
Requires-Dist: azure-mgmt-batch==5.0.1
|
|
47
|
+
Requires-Dist: azure-mgmt-batchai==2.0.0
|
|
48
|
+
Requires-Dist: azure-mgmt-billing==0.2.0
|
|
49
|
+
Requires-Dist: azure-mgmt-cdn==3.1.0
|
|
50
|
+
Requires-Dist: azure-mgmt-cognitiveservices==3.0.0
|
|
51
|
+
Requires-Dist: azure-mgmt-commerce==1.0.1
|
|
52
|
+
Requires-Dist: azure-mgmt-compute==4.6.2
|
|
53
|
+
Requires-Dist: azure-mgmt-consumption==2.0.0
|
|
54
|
+
Requires-Dist: azure-mgmt-containerinstance==1.5.0
|
|
55
|
+
Requires-Dist: azure-mgmt-containerregistry==2.8.0
|
|
56
|
+
Requires-Dist: azure-mgmt-containerservice==4.4.0
|
|
57
|
+
Requires-Dist: azure-mgmt-cosmosdb==0.4.1
|
|
58
|
+
Requires-Dist: azure-mgmt-datafactory==0.6.0
|
|
59
|
+
Requires-Dist: azure-mgmt-datalake-analytics==0.6.0
|
|
60
|
+
Requires-Dist: azure-mgmt-datalake-nspkg==3.0.1
|
|
61
|
+
Requires-Dist: azure-mgmt-datalake-store==0.5.0
|
|
62
|
+
Requires-Dist: azure-mgmt-datamigration==1.0.0
|
|
63
|
+
Requires-Dist: azure-mgmt-devspaces==0.1.0
|
|
64
|
+
Requires-Dist: azure-mgmt-devtestlabs==2.2.0
|
|
65
|
+
Requires-Dist: azure-mgmt-dns==2.1.0
|
|
66
|
+
Requires-Dist: azure-mgmt-eventgrid==1.0.0
|
|
67
|
+
Requires-Dist: azure-mgmt-eventhub==2.6.0
|
|
68
|
+
Requires-Dist: azure-mgmt-hanaonazure==0.1.1
|
|
69
|
+
Requires-Dist: azure-mgmt-iotcentral==0.1.0
|
|
70
|
+
Requires-Dist: azure-mgmt-iothub==0.5.0
|
|
71
|
+
Requires-Dist: azure-mgmt-iothubprovisioningservices==0.2.0
|
|
72
|
+
Requires-Dist: azure-mgmt-keyvault==1.1.0
|
|
73
|
+
Requires-Dist: azure-mgmt-loganalytics==0.2.0
|
|
74
|
+
Requires-Dist: azure-mgmt-logic==3.0.0
|
|
75
|
+
Requires-Dist: azure-mgmt-machinelearningcompute==0.4.1
|
|
76
|
+
Requires-Dist: azure-mgmt-managementgroups==0.1.0
|
|
77
|
+
Requires-Dist: azure-mgmt-managementpartner==0.1.1
|
|
78
|
+
Requires-Dist: azure-mgmt-maps==0.1.0
|
|
79
|
+
Requires-Dist: azure-mgmt-marketplaceordering==0.1.0
|
|
80
|
+
Requires-Dist: azure-mgmt-media==1.0.1
|
|
81
|
+
Requires-Dist: azure-mgmt-monitor==0.5.2
|
|
82
|
+
Requires-Dist: azure-mgmt-msi==0.2.0
|
|
83
|
+
Requires-Dist: azure-mgmt-network==2.7.0
|
|
84
|
+
Requires-Dist: azure-mgmt-notificationhubs==2.1.0
|
|
85
|
+
Requires-Dist: azure-mgmt-nspkg==3.0.2
|
|
86
|
+
Requires-Dist: azure-mgmt-policyinsights==0.1.0
|
|
87
|
+
Requires-Dist: azure-mgmt-powerbiembedded==2.0.0
|
|
88
|
+
Requires-Dist: azure-mgmt-rdbms==1.9.0
|
|
89
|
+
Requires-Dist: azure-mgmt-recoveryservices==0.3.0
|
|
90
|
+
Requires-Dist: azure-mgmt-recoveryservicesbackup==0.3.0
|
|
91
|
+
Requires-Dist: azure-mgmt-redis==5.0.0
|
|
92
|
+
Requires-Dist: azure-mgmt-relay==0.1.0
|
|
93
|
+
Requires-Dist: azure-mgmt-reservations==0.2.1
|
|
94
|
+
Requires-Dist: azure-mgmt-resource==2.2.0
|
|
95
|
+
Requires-Dist: azure-mgmt-scheduler==2.0.0
|
|
96
|
+
Requires-Dist: azure-mgmt-search==2.1.0
|
|
97
|
+
Requires-Dist: azure-mgmt-servicebus==0.5.3
|
|
98
|
+
Requires-Dist: azure-mgmt-servicefabric==0.2.0
|
|
99
|
+
Requires-Dist: azure-mgmt-signalr==0.1.1
|
|
100
|
+
Requires-Dist: azure-mgmt-sql==0.9.1
|
|
101
|
+
Requires-Dist: azure-mgmt-storage==2.0.0
|
|
102
|
+
Requires-Dist: azure-mgmt-subscription==0.2.0
|
|
103
|
+
Requires-Dist: azure-mgmt-trafficmanager==0.50.0
|
|
104
|
+
Requires-Dist: azure-mgmt-web==0.35.0
|
|
105
|
+
Requires-Dist: azure-nspkg==3.0.2
|
|
106
|
+
Requires-Dist: azure-servicebus==0.21.1
|
|
107
|
+
Requires-Dist: azure-servicefabric==6.3.0.0
|
|
108
|
+
Requires-Dist: azure-servicemanagement-legacy==0.20.7
|
|
109
|
+
Requires-Dist: azure-storage-blob==1.5.0
|
|
110
|
+
Requires-Dist: azure-storage-common==1.4.2
|
|
111
|
+
Requires-Dist: azure-storage-file==1.4.0
|
|
112
|
+
Requires-Dist: azure-storage-queue==1.4.0
|
|
113
|
+
Requires-Dist: backports.functools-lru-cache==1.6.6; python_version >= "2.6"
|
|
114
|
+
Requires-Dist: boto==2.49.0
|
|
115
|
+
Requires-Dist: boto3==1.28.12; python_version >= "3.7"
|
|
116
|
+
Requires-Dist: botocore==1.31.12; python_version >= "3.7"
|
|
117
|
+
Requires-Dist: cachetools==5.3.1; python_version >= "3.7"
|
|
118
|
+
Requires-Dist: certifi==2023.7.22; python_version >= "3.6"
|
|
119
|
+
Requires-Dist: cffi==1.16.0; python_version >= "3.8"
|
|
120
|
+
Requires-Dist: charset-normalizer==3.3.0; python_full_version >= "3.7.0"
|
|
121
|
+
Requires-Dist: colorama==0.4.4; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4"
|
|
122
|
+
Requires-Dist: cryptography==41.0.4; python_version >= "3.7"
|
|
123
|
+
Requires-Dist: deepmerge==1.1.0
|
|
124
|
+
Requires-Dist: docutils==0.16; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4"
|
|
125
|
+
Requires-Dist: gitdb==4.0.10; python_version >= "3.7"
|
|
126
|
+
Requires-Dist: gitpython==3.1.37; python_version >= "3.7"
|
|
127
|
+
Requires-Dist: google-auth==2.23.3; python_version >= "3.7"
|
|
128
|
+
Requires-Dist: hashmerge==0.2
|
|
129
|
+
Requires-Dist: himl==0.15.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
130
|
+
Requires-Dist: hvac==1.1.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0"
|
|
131
|
+
Requires-Dist: idna==3.4; python_version >= "3.5"
|
|
132
|
+
Requires-Dist: inflection==0.5.1; python_version >= "3.5"
|
|
133
|
+
Requires-Dist: isodate==0.6.1
|
|
134
|
+
Requires-Dist: jinja2==3.1.2; python_version >= "3.7"
|
|
135
|
+
Requires-Dist: jmespath==1.0.1; python_version >= "3.7"
|
|
136
|
+
Requires-Dist: kubernetes==26.1.0; python_version >= "3.6"
|
|
137
|
+
Requires-Dist: lru-cache==0.2.3
|
|
138
|
+
Requires-Dist: markupsafe==2.1.3; python_version >= "3.7"
|
|
139
|
+
Requires-Dist: msal==1.24.1; python_version >= "2.7"
|
|
140
|
+
Requires-Dist: msrest==0.7.1; python_version >= "3.6"
|
|
141
|
+
Requires-Dist: msrestazure==0.6.4
|
|
142
|
+
Requires-Dist: oauthlib==3.2.2; python_version >= "3.6"
|
|
143
|
+
Requires-Dist: packaging==23.2; python_version >= "3.7"
|
|
144
|
+
Requires-Dist: passgen==1.1.1
|
|
145
|
+
Requires-Dist: pathlib2==2.3.7.post1
|
|
146
|
+
Requires-Dist: pyasn1==0.5.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
|
|
147
|
+
Requires-Dist: pyasn1-modules==0.3.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
|
|
148
|
+
Requires-Dist: pycparser==2.21
|
|
149
|
+
Requires-Dist: pyhcl==0.4.5
|
|
150
|
+
Requires-Dist: pyjwt==2.8.0; python_version >= "3.7"
|
|
151
|
+
Requires-Dist: python-consul==1.1.0
|
|
152
|
+
Requires-Dist: python-dateutil==2.8.2; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"
|
|
153
|
+
Requires-Dist: pyyaml==6.0.1; python_version >= "3.6"
|
|
154
|
+
Requires-Dist: requests==2.31.0; python_version >= "3.7"
|
|
155
|
+
Requires-Dist: requests-oauthlib==1.3.1; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
156
|
+
Requires-Dist: resolvelib==1.0.1
|
|
157
|
+
Requires-Dist: rsa==4.7.2; python_version >= "3.5" and python_version < "4"
|
|
158
|
+
Requires-Dist: s3transfer==0.6.2; python_version >= "3.7"
|
|
159
|
+
Requires-Dist: setuptools==68.2.2; python_version >= "3.8"
|
|
160
|
+
Requires-Dist: simpledi==0.4.1
|
|
161
|
+
Requires-Dist: six==1.16.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"
|
|
162
|
+
Requires-Dist: smmap==5.0.1; python_version >= "3.7"
|
|
163
|
+
Requires-Dist: typing-extensions==4.8.0; python_version >= "3.8"
|
|
164
|
+
Requires-Dist: urllib3==1.26.17; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
|
|
165
|
+
Requires-Dist: websocket-client==1.6.4; python_version >= "3.8"
|
|
26
166
|
|
|
27
167
|
# Ops CLI
|
|
28
168
|
[](https://github.com/adobe/ops-cli/actions/workflows/release.yml) [](https://github.com/adobe/ops-cli/pkgs/container/ops-cli) [](https://github.com/adobe/ops-cli/blob/master/LICENSE)
|
|
@@ -68,6 +208,7 @@ It can be used to add a layer of templating (using jinja2) on top of Terraform f
|
|
|
68
208
|
* [Terraform landscape](#terraform-landscape)
|
|
69
209
|
* [SSH](#ssh)
|
|
70
210
|
* [SSHPass](#sshpass)
|
|
211
|
+
* [Balabit SCB](#scb)
|
|
71
212
|
* [Play](#play)
|
|
72
213
|
* [Run command](#run-command)
|
|
73
214
|
* [Sync files](#sync-files)
|
|
@@ -176,7 +317,7 @@ workon ops
|
|
|
176
317
|
# uninstall previous `ops` version (if you have it)
|
|
177
318
|
pip uninstall ops --yes
|
|
178
319
|
|
|
179
|
-
# install ops-cli v2.2.
|
|
320
|
+
# install ops-cli v2.2.1 stable release
|
|
180
321
|
pip install --upgrade ops-cli
|
|
181
322
|
```
|
|
182
323
|
|
|
@@ -192,7 +333,7 @@ You can try out `ops-cli`, by using docker. The docker image has all required pr
|
|
|
192
333
|
|
|
193
334
|
To start out a container, running the latest `ops-cli` docker image run:
|
|
194
335
|
```sh
|
|
195
|
-
docker run -it ghcr.io/adobe/ops-cli:2.2.
|
|
336
|
+
docker run -it ghcr.io/adobe/ops-cli:2.2.1 bash
|
|
196
337
|
```
|
|
197
338
|
|
|
198
339
|
After the container has started, you can start using `ops-cli`:
|