%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[1](#f1)
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[2](#f2):
* **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[1](#f1)
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[2](#f2):
* **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[1](#f1)
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[2](#f2):
* **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 - 0.5.0-1
- Package Spec generated