summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-terraformtoansibleinventory.spec254
-rw-r--r--sources1
3 files changed, 256 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..83fafee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/TerraformToAnsibleInventory-0.4.0.tar.gz
diff --git a/python-terraformtoansibleinventory.spec b/python-terraformtoansibleinventory.spec
new file mode 100644
index 0000000..8766bad
--- /dev/null
+++ b/python-terraformtoansibleinventory.spec
@@ -0,0 +1,254 @@
+%global _empty_manifest_terminate_build 0
+Name: python-TerraformToAnsibleInventory
+Version: 0.4.0
+Release: 1
+Summary: Consumes Terraform State and generates Ansible inventory.
+License: MIT
+URL: https://github.com/mrlesmithjr/python-terraform-to-ansible-inventory
+Source0: https://mirrors.aliyun.com/pypi/web/packages/ff/66/19cc351f7808fd965264a93f65c52af06be238aeb0f92153962d82b07e7e/TerraformToAnsibleInventory-0.4.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-argparse
+Requires: python3-ast
+Requires: python3-consul
+Requires: python3-jinja2
+Requires: python3-PyYaml
+
+%description
+- hosts: localhost
+ gather_facts: false
+ become: false
+ vars:
+ scripts_dir: ../../scripts
+ terraform_destroy: false
+ terraform_destroy_vms: []
+ terraform_project_path: ../../Terraform
+ tasks:
+ - name: Execute Terraform (Provision)
+ terraform:
+ project_path: "{{ terraform_project_path }}"
+ state: present
+ register: _terraform_execution_provision
+ when: not terraform_destroy
+ - name: Execute Terraform (Destroy VMs Only)
+ terraform:
+ project_path: "{{ terraform_project_path }}"
+ state: absent
+ targets: "{{ terraform_destroy_vms | map('extract', hostvars, ['target']) | join(',') }}"
+ register: _terraform_execution_destroy
+ when: >
+ terraform_destroy_vms != [] and
+ terraform_destroy
+```
+Playbook execution:
+First run in check mode to ensure your results are as expected.
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': ['acctvm0', 'acctvm1']}" --check
+TASK [Terraform Results (Destroy VMs Only)] ****************************************************************************************************************************************************************************************************************************************************************************
+ok: [localhost] => {
+ "_terraform_execution_destroy": {
+ "changed": false,
+ "command": "/usr/local/bin/terraform destroy -no-color -force -lock=true -target azurerm_virtual_machine.acctvm0 -target azurerm_virtual_machine.acctvm1",
+ "failed": false,
+ "outputs": {
+ },
+ "state": "absent",
+ "stderr": "",
+ "stderr_lines": [],
+ "stdout": "",
+ "stdout_lines": []
+ }
+}
+```
+Now run normally after validating in check mode.
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': ['acctvm0', 'acctvm1']}"
+```
+If you would like to destroy all VMs in an Ansible group:
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': '{{ groups.consul_cluster }}'}" --check
+```
+## License
+MIT
+## Author Information
+Larry Smith Jr.
+- [EverythingShouldBeVirtual](http://everythingshouldbevirtual.com)
+- [@mrlesmithjr](https://www.twitter.com/mrlesmithjr)
+- <mailto:mrlesmithjr@gmail.com>
+
+%package -n python3-TerraformToAnsibleInventory
+Summary: Consumes Terraform State and generates Ansible inventory.
+Provides: python-TerraformToAnsibleInventory
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-TerraformToAnsibleInventory
+- hosts: localhost
+ gather_facts: false
+ become: false
+ vars:
+ scripts_dir: ../../scripts
+ terraform_destroy: false
+ terraform_destroy_vms: []
+ terraform_project_path: ../../Terraform
+ tasks:
+ - name: Execute Terraform (Provision)
+ terraform:
+ project_path: "{{ terraform_project_path }}"
+ state: present
+ register: _terraform_execution_provision
+ when: not terraform_destroy
+ - name: Execute Terraform (Destroy VMs Only)
+ terraform:
+ project_path: "{{ terraform_project_path }}"
+ state: absent
+ targets: "{{ terraform_destroy_vms | map('extract', hostvars, ['target']) | join(',') }}"
+ register: _terraform_execution_destroy
+ when: >
+ terraform_destroy_vms != [] and
+ terraform_destroy
+```
+Playbook execution:
+First run in check mode to ensure your results are as expected.
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': ['acctvm0', 'acctvm1']}" --check
+TASK [Terraform Results (Destroy VMs Only)] ****************************************************************************************************************************************************************************************************************************************************************************
+ok: [localhost] => {
+ "_terraform_execution_destroy": {
+ "changed": false,
+ "command": "/usr/local/bin/terraform destroy -no-color -force -lock=true -target azurerm_virtual_machine.acctvm0 -target azurerm_virtual_machine.acctvm1",
+ "failed": false,
+ "outputs": {
+ },
+ "state": "absent",
+ "stderr": "",
+ "stderr_lines": [],
+ "stdout": "",
+ "stdout_lines": []
+ }
+}
+```
+Now run normally after validating in check mode.
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': ['acctvm0', 'acctvm1']}"
+```
+If you would like to destroy all VMs in an Ansible group:
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': '{{ groups.consul_cluster }}'}" --check
+```
+## License
+MIT
+## Author Information
+Larry Smith Jr.
+- [EverythingShouldBeVirtual](http://everythingshouldbevirtual.com)
+- [@mrlesmithjr](https://www.twitter.com/mrlesmithjr)
+- <mailto:mrlesmithjr@gmail.com>
+
+%package help
+Summary: Development documents and examples for TerraformToAnsibleInventory
+Provides: python3-TerraformToAnsibleInventory-doc
+%description help
+- hosts: localhost
+ gather_facts: false
+ become: false
+ vars:
+ scripts_dir: ../../scripts
+ terraform_destroy: false
+ terraform_destroy_vms: []
+ terraform_project_path: ../../Terraform
+ tasks:
+ - name: Execute Terraform (Provision)
+ terraform:
+ project_path: "{{ terraform_project_path }}"
+ state: present
+ register: _terraform_execution_provision
+ when: not terraform_destroy
+ - name: Execute Terraform (Destroy VMs Only)
+ terraform:
+ project_path: "{{ terraform_project_path }}"
+ state: absent
+ targets: "{{ terraform_destroy_vms | map('extract', hostvars, ['target']) | join(',') }}"
+ register: _terraform_execution_destroy
+ when: >
+ terraform_destroy_vms != [] and
+ terraform_destroy
+```
+Playbook execution:
+First run in check mode to ensure your results are as expected.
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': ['acctvm0', 'acctvm1']}" --check
+TASK [Terraform Results (Destroy VMs Only)] ****************************************************************************************************************************************************************************************************************************************************************************
+ok: [localhost] => {
+ "_terraform_execution_destroy": {
+ "changed": false,
+ "command": "/usr/local/bin/terraform destroy -no-color -force -lock=true -target azurerm_virtual_machine.acctvm0 -target azurerm_virtual_machine.acctvm1",
+ "failed": false,
+ "outputs": {
+ },
+ "state": "absent",
+ "stderr": "",
+ "stderr_lines": [],
+ "stdout": "",
+ "stdout_lines": []
+ }
+}
+```
+Now run normally after validating in check mode.
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': ['acctvm0', 'acctvm1']}"
+```
+If you would like to destroy all VMs in an Ansible group:
+```bash
+ansible-playbook -i Ansible/inventory Ansible/playbooks/terraform.yml --extra-vars "{'terraform_destroy': true,'terraform_destroy_vms': '{{ groups.consul_cluster }}'}" --check
+```
+## License
+MIT
+## Author Information
+Larry Smith Jr.
+- [EverythingShouldBeVirtual](http://everythingshouldbevirtual.com)
+- [@mrlesmithjr](https://www.twitter.com/mrlesmithjr)
+- <mailto:mrlesmithjr@gmail.com>
+
+%prep
+%autosetup -n TerraformToAnsibleInventory-0.4.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-TerraformToAnsibleInventory -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..d6728da
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+345553f94fa0526ab5bb49c10954b982 TerraformToAnsibleInventory-0.4.0.tar.gz