云资源清理工具
项目描述
Cloudwash
简介
cloudwash
是一个用Python编写的库,可用于监控和删除公共和私有云服务提供商中的未使用云资源。
最重要的是,cloudwash
提供了一个名为 'swach
' 的CLI实用程序,可用于向云资源发送清理命令。
cloudwash支持以下云服务提供商
云服务提供商 | vms | nics | discs | images | pips | stacks |
---|---|---|---|---|---|---|
Amazon EC2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Microsoft Azure | ✓ | ✓ | ✓ | ✓ | ✓ | NA |
Google Cloud | ✓ | ✓ | ✓ | ✗ | ✗ | NA |
VMWare | ✓ | ✓ | ✓ | ✗ | NA | NA |
- RedHat Enterprize虚拟化经理 - RHEV(尚未添加支持)
- RedHat Openstack(尚未添加支持)
- VMWare vCenter(尚未添加支持)
- 在公共云上部署的OCP集群(尚未添加支持)
注意:您可以使用带有所有云服务提供商的 --all
标志来清理所有受支持的资源。
它帮助清理的资源类型列表可以在每个云服务提供商的 settings.yaml.template 文件中找到,包括清理标准。
安装
用户可以通过多种方式运行 cloudwash
ピップパッケージインストール
リナックスユーザーにとって、使用しているディストリビューションによっては、以下のパッケージ(またはリナックスディストリビューション用の似たパッケージ)をインストールする必要があります
- libcurl-devel
- openssl-devel
- libxml2-devel
- libxml2-static
- gcc
Pycurlは、cloudwash
の依存パッケージの1つで、上記の依存関係をインストールするように求めています。詳細については、http://pycurl.io/docs/latest/install.htmlを参照してください。
安装
$ mkdir ~/cloudwash && cd ~/cloudwash
$ pip install cloudwash
ドッカーオイラミンストール
コンテナイメージレジストリから
cloudwashのコンテナイメージは、quayで利用可能です。このイメージは、リリースされたPythonパッケージからインストールされたcloudwashで、リリースバージョンのタグがあります。最新タグは常に最新リリースバージョンのタグを指しています。
ローカルDockerFileからビルド
このgithubリポジトリにはDockerFileが含まれており、任意のコンテナビルドサービスを使用してビルドできます。
Dockerfile.dev
からコンテナをビルドする - これはcloudwashのgithubマスタブランチからのアクセスを提供するプレリリース機能を持つコンテナをビルドします。
OC BuildConfigインストール
このgithubリポジトリは、OCP / Kubernetesで使用できる準備完了のBuildConfigを提供します。このbuild configは、マスターブランチに基づくコンテナイメージをビルドするbuildconfigを作成します。このイメージを使用してcloudwash podをビルドします。
設定
cloudwash
は、settings.yaml
またはconfディレクトリの設定にあるデータにアクセスするために、DynaConf
設定Pythonモジュールを使用します。また、settings.yaml
に明示的に記述する代わりに、環境変数を通じてユニークな方法でシークレットを宣言することもできます。
例えば、Azureパスワードフィールドは、環境変数をエクスポートすることで設定できます
# export CLEANUP_PROVIDERS__AZURE__PASSWORD = myPa$$worb"
PyPiパッケージを使用した設定
settings.yaml.template
をローカルの~/cloudwash
ディレクトリにsettings.yaml
としてコピー/ダウンロードし、クラウドプロバイダーの認証情報と他の設定詳細を更新して、リソースの報告およびクリーンアップに成功します。
cloudwashコンテナイメージを使用した設定
または、以下のいずれか
ドッカーオイメージには、Dockerfileからsettings.yaml
が追加されています。このイメージからコンテナをビルドし、コンテナにアクセスしてsettings.yaml
を実際の値で更新し、変更をイメージにコミットします。クリーンアップ活動に使用するためにコミットされたイメージを使用します。
または、上記のようにすべてのまたは特定の敏感な認証情報に対して環境変数をエクスポート/設定します。cloudwashコンテナ内のdynaconfはこれらの認証情報を環境変数から読み取ります。
- 使用例
# swach --help
Usage: swach [OPTIONS] COMMAND [ARGS]...
A Cleanup Utility to remove cloud resources from cloud Providers!
Options:
-d, --dry Only show what will be removed from Providers!
--help Show this message and exit.
Commands:
azure Cleanup Azure provider
aws Cleanup Amazon provider
gce Cleanup GCE provider
openstack Cleanup OSP provider
rhev Cleanup RHEV provider
vmware Cleanup VMWare provider
- クリーンアップヘルプ
# swach azure --help
Usage: swach azure [OPTIONS]
Cleanup Azure provider
Options:
--all Remove all unused Resources from the provider
--all_rg Remove resource group only if all resources are older than SLA
--nics Remove only unused NICs from the provider
--discs Remove only unused DISCs from the provider
--vms Remove only unused VMs from the provider
--pips Remove only PiPs from the provider
--help Show this message and exit.
- クラウドプロバイダークリーンアップヘルプ
# swach -d azure --all
<<<<<<< Running the cleanup script in DRY RUN mode >>>>>>>
The AZURE providers settings are initialized and validated !
=========== DRY SUMMARY ============
VMs:
Deletable: ['test-bvhoduliam']
Stoppable: ['foremanqe-nightly2']
DISCs:
Deletable: ['test-bvhoduliam-osdisk']
NICs:
Deletable: ['test-axodawttrw-nic0']
PIPs:
Deletable: ['test-axodawttrw-pip0']
====================================
- クリーンアップドライラン(オプション
-d
を使用してモニタモード)
# swach azure --all
<<<<<<< Running the cleanup script in ACTION mode >>>>>>>
The AZURE providers settings are initialized and validated !
Stopped [] and removed ['test-bvhoduliam'] VMs from Azure Cloud.
Removed following and all unused nics from Azure Cloud.
['test-axodawttrw-nic0']
Removed following and all unused discs from Azure Cloud.
['test-bvhoduliam-osdisk']
Removed following and all unused pips from Azure Cloud.
['test-axodawttrw-pip0']
実際のクリーンアップラン
プロジェクト詳細
ファイルのダウンロード
プラットフォームに対応するファイルをダウンロードしてください。どちらを選ぶか分からない場合は、パッケージのインストールについてもっと詳しく学んでください。