%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