diff --git a/playbooks/roles/bifrost-unprovision-node-dynamic/README.md b/playbooks/roles/bifrost-unprovision-node-dynamic/README.md new file mode 100644 index 000000000..0b106718c --- /dev/null +++ b/playbooks/roles/bifrost-unprovision-node-dynamic/README.md @@ -0,0 +1,56 @@ +bifrost-unprovision-node-dynamic +================================= + +This role unprovisions nodes. Essentially calls `ironic node-set-provisioned-state deleted` + +Requirements +------------ + +An enrolled node, with the node uuid set as a host level variable. + +The os_ironic_node module is required. + +Role Variables +-------------- + +uuid: The UUID value for the node, at the host level. + +ironic_url: The setting defining the URL to the Ironic API. Presently defaulted to: "http://localhost:6385/" + +Dependencies +------------ + +This role has no roles that it is directly dependent upon, but expects that the environment has been installed with the ironic-install role. + +Example Playbook +---------------- + +- hosts: baremetal + connection: local + name: "Unprovisions the test node" + sudo: no + gather_facts: no + roles: + - role: bifrost-unprovision-node-dynamic + +License +------- + +Copyright (c) 2015 Hewlett-Packard Development Company, L.P. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Author Information +------------------ + +Ironic Developers diff --git a/playbooks/roles/bifrost-unprovision-node-dynamic/defaults/main.yml b/playbooks/roles/bifrost-unprovision-node-dynamic/defaults/main.yml new file mode 100644 index 000000000..44445bba9 --- /dev/null +++ b/playbooks/roles/bifrost-unprovision-node-dynamic/defaults/main.yml @@ -0,0 +1,2 @@ +--- +ironic_url: "http://localhost:6385/" diff --git a/playbooks/roles/bifrost-unprovision-node-dynamic/handlers/main.yml b/playbooks/roles/bifrost-unprovision-node-dynamic/handlers/main.yml new file mode 100644 index 000000000..cbabc7e7e --- /dev/null +++ b/playbooks/roles/bifrost-unprovision-node-dynamic/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for bifrost-unprovision-node-dynamic diff --git a/playbooks/roles/bifrost-unprovision-node-dynamic/meta/main.yml b/playbooks/roles/bifrost-unprovision-node-dynamic/meta/main.yml new file mode 100644 index 000000000..0ac7eb5ff --- /dev/null +++ b/playbooks/roles/bifrost-unprovision-node-dynamic/meta/main.yml @@ -0,0 +1,116 @@ +--- +galaxy_info: + author: Ironic Developers + description: Unprovisions nodes in Ironic + company: OpenStack + license: Apache + min_ansible_version: 1.9 + # + # Below are all platforms currently available. Just uncomment + # the ones that apply to your role. If you don't see your + # platform on this list, let us know and we'll get it added! + # + platforms: + #- name: EL + # versions: + # - all + # - 5 + # - 6 + # - 7 + #- name: GenericUNIX + # versions: + # - all + # - any + #- name: Fedora + # versions: + # - all + # - 16 + # - 17 + # - 18 + # - 19 + # - 20 + #- name: SmartOS + # versions: + # - all + # - any + #- name: opensuse + # versions: + # - all + # - 12.1 + # - 12.2 + # - 12.3 + # - 13.1 + # - 13.2 + #- name: Amazon + # versions: + # - all + # - 2013.03 + # - 2013.09 + #- name: GenericBSD + # versions: + # - all + # - any + #- name: FreeBSD + # versions: + # - all + # - 8.0 + # - 8.1 + # - 8.2 + # - 8.3 + # - 8.4 + # - 9.0 + # - 9.1 + # - 9.1 + # - 9.2 + #- name: Ubuntu + # versions: + # - all + # - lucid + # - maverick + # - natty + # - oneiric + # - precise + # - quantal + # - raring + # - saucy + - trusty + #- name: SLES + # versions: + # - all + # - 10SP3 + # - 10SP4 + # - 11 + # - 11SP1 + # - 11SP2 + # - 11SP3 + #- name: GenericLinux + # versions: + # - all + # - any + #- name: Debian + # versions: + # - all + # - etch + # - lenny + # - squeeze + # - wheezy + # + # Below are all categories currently available. Just as with + # the platforms above, uncomment those that apply to your role. + # + categories: + - cloud + - cloud:openstack + #- cloud:gce + #- cloud:rax + #- clustering + #- database + #- database:nosql + #- database:sql + #- development + #- monitoring + #- networking + #- packaging + #- system + #- web +dependencies: [] diff --git a/playbooks/roles/bifrost-unprovision-node-dynamic/tasks/main.yml b/playbooks/roles/bifrost-unprovision-node-dynamic/tasks/main.yml new file mode 100644 index 000000000..d32afde65 --- /dev/null +++ b/playbooks/roles/bifrost-unprovision-node-dynamic/tasks/main.yml @@ -0,0 +1,23 @@ +# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: "Unprovision node" + os_ironic_node: + auth_type: None + auth: None + ironic_url: "{{ ironic_url }}" + uuid: "{{ uuid }}" + state: absent + instance_info: "{}" + delegate_to: localhost diff --git a/playbooks/roles/bifrost-unprovision-node-dynamic/vars/main.yml b/playbooks/roles/bifrost-unprovision-node-dynamic/vars/main.yml new file mode 100644 index 000000000..7e65db51f --- /dev/null +++ b/playbooks/roles/bifrost-unprovision-node-dynamic/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for bifrost-unprovision-node-dynamic diff --git a/playbooks/test-bifrost-dynamic.yaml b/playbooks/test-bifrost-dynamic.yaml index 4286a6355..752e1784c 100644 --- a/playbooks/test-bifrost-dynamic.yaml +++ b/playbooks/test-bifrost-dynamic.yaml @@ -53,13 +53,13 @@ remote_user: "{{ testing_user }}" roles: - role: bifrost-test-vm -- hosts: localhost +- hosts: baremetal connection: local name: "Unprovisions the test node" sudo: no gather_facts: no roles: - - role: bifrost-unprovision-nodes + - role: bifrost-unprovision-node-dynamic - hosts: localhost connection: local name: "Unprovisions the test node"