summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-ansible-droplet.spec321
-rw-r--r--sources1
3 files changed, 323 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..4f3a065 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/ansible-droplet-0.5.0.tar.gz
diff --git a/python-ansible-droplet.spec b/python-ansible-droplet.spec
new file mode 100644
index 0000000..8848346
--- /dev/null
+++ b/python-ansible-droplet.spec
@@ -0,0 +1,321 @@
+%global _empty_manifest_terminate_build 0
+Name: python-ansible-droplet
+Version: 0.5.0
+Release: 1
+Summary: A cli to Create / Destroy DigitalOcean Droplets
+License: MIT
+URL: https://github.com/FlorianKempenich/ansible-droplet
+Source0: https://mirrors.aliyun.com/pypi/web/packages/22/f1/6d4291f6c320cc896d65e7d11d2d675fe5ffbfb7ece96977b4531f2ce6b0/ansible-droplet-0.5.0.tar.gz
+BuildArch: noarch
+
+
+%description
+## Usage
+### One time setup
+Before using the tool, a simple _one-time-setup_ must be done.
+1. Make sure you have a **`ssh` public key**, or [generate one](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#generating-a-new-ssh-key)
+1. Make sure you have a **Digital Ocean API token**, or [generate one](https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2)
+1. **Store in a file** the Digital Ocean API token in clear<sup>[1](#f1)</sup>
+1. Note down:
+ * _Path_ to your **ssh public key**
+ * _Path_ to the file containing the **Digital Ocean API token**
+1. Run `ansible-droplet config` see below for more detail on the config parameters
+### Create
+```
+ansible-droplet create my_droplet
+```
+##### Creation process
+* **Create a new Droplet** on your Ditigal Ocean Account
+* **Set it up** with: Swap, new sudo user, glances server
+* **Create a SSH entry** in your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
+* **Create a ansible inventory entry** in `~/.ansible-droplet-inventory`
+### Destroy
+```
+ansible-droplet destroy my_droplet
+```
+##### Destruction process
+* **Destroy the Droplet** from your Ditigal Ocean Account
+* **Remove the SSH entry** from your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
+* **Remove the ansible inventory entry** from `~/.ansible-droplet-inventory`
+## Advanced Usage
+### Config parameters
+When running `ansible-droplet config` a couple of parameters must be provided:
+* **Path to SSH key**:
+ No brainer, the path to your SSH public key.
+ _Default: `~/.ssh/id_rsa.pub`_
+* **Name of SSH key on Digital Ocean**:
+ To prevent uploading the public keys each time, Digital Ocean offers to store them under a name. It can be anything.
+ _Default: `Main SSH Key`_
+* **Path to Ditigal Ocean token**:
+ The path to the file containing your Digital Ocean token in plain text.
+ _No defaults_
+* **User on Droplet - Username:**
+ Username for the sudo user being created on the Droplet.
+ _No defaults_
+* **User on Droplet - Default Password:**
+ Default password for the sudo user being created on the Droplet.
+ _No defaults_
+ _Do not forget to change it after the first login!_
+### Droplet specs
+You can specify the droplet size and specs when creating a new droplet.
+Simply list it after the droplet name:
+```
+ansible-droplet create my_droplet SPEC_NAME
+```
+For now, only 3 specs are supported<sup>[2](#f2)</sup>:
+* **Micro**
+ * size: "512mb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+* **Mini**
+ * size: "1gb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+* **Power**
+ * size: "4gb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+The list of specification are stored on the repository: [Droplet Specs](https://github.com/FlorianKempenich/ansible-droplet/tree/master/ansible_droplet/ansible/droplet_specs)
+### Ansible Droplet Inventory
+It is possible to access the Droplet from any other ansible playbook via its **name**:
+ - hosts: my_droplet
+For that purpose the file `~/.ansible-droplet-inventory` is created.
+`~/.ansible-droplet-inventory` contains ansible inventory entries for each Droplet created with the `ansible-droplet` tool.
+To use the droplet in a playbook, either:
+* Point your _inventory_ to the `~/.ansible-droplet-inventory` file
+* Point your _inventory_ to a directory containing a symlink to the `~/.ansible-droplet-inventory` file
+From there you can reference the Droplet directly by name.
+### Multiple configuration - Multiple Digital Ocean accounts
+You can use multiple configurations to support:
+* Multiple **DigitalOcean accounts**
+* Multiple **SHH Keys**
+* Multiple **default user/password**
+The configuration generated by `ansible-droplet config` is kept in the installation directory.
+
+%package -n python3-ansible-droplet
+Summary: A cli to Create / Destroy DigitalOcean Droplets
+Provides: python-ansible-droplet
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-ansible-droplet
+## Usage
+### One time setup
+Before using the tool, a simple _one-time-setup_ must be done.
+1. Make sure you have a **`ssh` public key**, or [generate one](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#generating-a-new-ssh-key)
+1. Make sure you have a **Digital Ocean API token**, or [generate one](https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2)
+1. **Store in a file** the Digital Ocean API token in clear<sup>[1](#f1)</sup>
+1. Note down:
+ * _Path_ to your **ssh public key**
+ * _Path_ to the file containing the **Digital Ocean API token**
+1. Run `ansible-droplet config` see below for more detail on the config parameters
+### Create
+```
+ansible-droplet create my_droplet
+```
+##### Creation process
+* **Create a new Droplet** on your Ditigal Ocean Account
+* **Set it up** with: Swap, new sudo user, glances server
+* **Create a SSH entry** in your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
+* **Create a ansible inventory entry** in `~/.ansible-droplet-inventory`
+### Destroy
+```
+ansible-droplet destroy my_droplet
+```
+##### Destruction process
+* **Destroy the Droplet** from your Ditigal Ocean Account
+* **Remove the SSH entry** from your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
+* **Remove the ansible inventory entry** from `~/.ansible-droplet-inventory`
+## Advanced Usage
+### Config parameters
+When running `ansible-droplet config` a couple of parameters must be provided:
+* **Path to SSH key**:
+ No brainer, the path to your SSH public key.
+ _Default: `~/.ssh/id_rsa.pub`_
+* **Name of SSH key on Digital Ocean**:
+ To prevent uploading the public keys each time, Digital Ocean offers to store them under a name. It can be anything.
+ _Default: `Main SSH Key`_
+* **Path to Ditigal Ocean token**:
+ The path to the file containing your Digital Ocean token in plain text.
+ _No defaults_
+* **User on Droplet - Username:**
+ Username for the sudo user being created on the Droplet.
+ _No defaults_
+* **User on Droplet - Default Password:**
+ Default password for the sudo user being created on the Droplet.
+ _No defaults_
+ _Do not forget to change it after the first login!_
+### Droplet specs
+You can specify the droplet size and specs when creating a new droplet.
+Simply list it after the droplet name:
+```
+ansible-droplet create my_droplet SPEC_NAME
+```
+For now, only 3 specs are supported<sup>[2](#f2)</sup>:
+* **Micro**
+ * size: "512mb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+* **Mini**
+ * size: "1gb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+* **Power**
+ * size: "4gb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+The list of specification are stored on the repository: [Droplet Specs](https://github.com/FlorianKempenich/ansible-droplet/tree/master/ansible_droplet/ansible/droplet_specs)
+### Ansible Droplet Inventory
+It is possible to access the Droplet from any other ansible playbook via its **name**:
+ - hosts: my_droplet
+For that purpose the file `~/.ansible-droplet-inventory` is created.
+`~/.ansible-droplet-inventory` contains ansible inventory entries for each Droplet created with the `ansible-droplet` tool.
+To use the droplet in a playbook, either:
+* Point your _inventory_ to the `~/.ansible-droplet-inventory` file
+* Point your _inventory_ to a directory containing a symlink to the `~/.ansible-droplet-inventory` file
+From there you can reference the Droplet directly by name.
+### Multiple configuration - Multiple Digital Ocean accounts
+You can use multiple configurations to support:
+* Multiple **DigitalOcean accounts**
+* Multiple **SHH Keys**
+* Multiple **default user/password**
+The configuration generated by `ansible-droplet config` is kept in the installation directory.
+
+%package help
+Summary: Development documents and examples for ansible-droplet
+Provides: python3-ansible-droplet-doc
+%description help
+## Usage
+### One time setup
+Before using the tool, a simple _one-time-setup_ must be done.
+1. Make sure you have a **`ssh` public key**, or [generate one](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#generating-a-new-ssh-key)
+1. Make sure you have a **Digital Ocean API token**, or [generate one](https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2)
+1. **Store in a file** the Digital Ocean API token in clear<sup>[1](#f1)</sup>
+1. Note down:
+ * _Path_ to your **ssh public key**
+ * _Path_ to the file containing the **Digital Ocean API token**
+1. Run `ansible-droplet config` see below for more detail on the config parameters
+### Create
+```
+ansible-droplet create my_droplet
+```
+##### Creation process
+* **Create a new Droplet** on your Ditigal Ocean Account
+* **Set it up** with: Swap, new sudo user, glances server
+* **Create a SSH entry** in your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
+* **Create a ansible inventory entry** in `~/.ansible-droplet-inventory`
+### Destroy
+```
+ansible-droplet destroy my_droplet
+```
+##### Destruction process
+* **Destroy the Droplet** from your Ditigal Ocean Account
+* **Remove the SSH entry** from your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
+* **Remove the ansible inventory entry** from `~/.ansible-droplet-inventory`
+## Advanced Usage
+### Config parameters
+When running `ansible-droplet config` a couple of parameters must be provided:
+* **Path to SSH key**:
+ No brainer, the path to your SSH public key.
+ _Default: `~/.ssh/id_rsa.pub`_
+* **Name of SSH key on Digital Ocean**:
+ To prevent uploading the public keys each time, Digital Ocean offers to store them under a name. It can be anything.
+ _Default: `Main SSH Key`_
+* **Path to Ditigal Ocean token**:
+ The path to the file containing your Digital Ocean token in plain text.
+ _No defaults_
+* **User on Droplet - Username:**
+ Username for the sudo user being created on the Droplet.
+ _No defaults_
+* **User on Droplet - Default Password:**
+ Default password for the sudo user being created on the Droplet.
+ _No defaults_
+ _Do not forget to change it after the first login!_
+### Droplet specs
+You can specify the droplet size and specs when creating a new droplet.
+Simply list it after the droplet name:
+```
+ansible-droplet create my_droplet SPEC_NAME
+```
+For now, only 3 specs are supported<sup>[2](#f2)</sup>:
+* **Micro**
+ * size: "512mb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+* **Mini**
+ * size: "1gb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+* **Power**
+ * size: "4gb"
+ * region: "fra1"
+ * image: "ubuntu-16-04-x64"
+ * swap: "4GiB"
+The list of specification are stored on the repository: [Droplet Specs](https://github.com/FlorianKempenich/ansible-droplet/tree/master/ansible_droplet/ansible/droplet_specs)
+### Ansible Droplet Inventory
+It is possible to access the Droplet from any other ansible playbook via its **name**:
+ - hosts: my_droplet
+For that purpose the file `~/.ansible-droplet-inventory` is created.
+`~/.ansible-droplet-inventory` contains ansible inventory entries for each Droplet created with the `ansible-droplet` tool.
+To use the droplet in a playbook, either:
+* Point your _inventory_ to the `~/.ansible-droplet-inventory` file
+* Point your _inventory_ to a directory containing a symlink to the `~/.ansible-droplet-inventory` file
+From there you can reference the Droplet directly by name.
+### Multiple configuration - Multiple Digital Ocean accounts
+You can use multiple configurations to support:
+* Multiple **DigitalOcean accounts**
+* Multiple **SHH Keys**
+* Multiple **default user/password**
+The configuration generated by `ansible-droplet config` is kept in the installation directory.
+
+%prep
+%autosetup -n ansible-droplet-0.5.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-ansible-droplet -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..d8fe736
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9af4c37e65c8058f4d06bf2f7af18ed0 ansible-droplet-0.5.0.tar.gz