diff options
Diffstat (limited to 'playbooks/aws')
| -rw-r--r-- | playbooks/aws/README.md | 18 | ||||
| -rwxr-xr-x | playbooks/aws/openshift-cluster/accept.yml | 41 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/hosted.yml | 25 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/install.yml | 27 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/provision.yml | 10 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/provision_elb.yml | 9 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/provision_install.yml | 4 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/provision_s3.yml | 10 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/uninstall_prerequisites.yml | 6 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/uninstall_s3.yml | 10 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/uninstall_sec_group.yml | 10 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/uninstall_ssh_keypair.yml | 10 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/uninstall_vpc.yml | 10 | ||||
| -rw-r--r-- | playbooks/aws/provisioning_vars.yml.example | 24 | 
14 files changed, 124 insertions, 90 deletions
| diff --git a/playbooks/aws/README.md b/playbooks/aws/README.md index d203b9cda..cf811ca84 100644 --- a/playbooks/aws/README.md +++ b/playbooks/aws/README.md @@ -198,3 +198,21 @@ At this point your cluster should be ready for workloads.  Proceed to deploy app  ### Still to come  There are more enhancements that are arriving for provisioning.  These will include more playbooks that enhance the provisioning capabilities. + +## Uninstall / Deprovisioning + +To undo the work done by the prerequisites playbook, simply call the uninstall_prerequisites.yml playbook. You will have needed to remove any of the other objects (ie ELBs, instances, etc) before attempting. You should use the same inventory file and provisioning_vars.yml file that was used during provisioning. + +``` +ansible-playbook -i <previous inventory file> -e @<previous provisioning_vars file> uninstall_prerequisites.yml +``` + +This should result in removal of the security groups and VPC that were created. + +Cleaning up the S3 bucket contents can be accomplished with: + +``` +ansible-playbook -i <previous inventory file> -e @<previous provisioning_vars file> uninstall_s3.yml +``` + +NOTE: If you want to also remove the ssh keys that were uploaded (**these ssh keys would be shared if you are running multiple clusters in the same AWS account** so we don't remove these by default) then you should add 'openshift_aws_enable_uninstall_shared_objects: True' to your provisioning_vars.yml file. diff --git a/playbooks/aws/openshift-cluster/accept.yml b/playbooks/aws/openshift-cluster/accept.yml index e7bed4f6e..46c453333 100755 --- a/playbooks/aws/openshift-cluster/accept.yml +++ b/playbooks/aws/openshift-cluster/accept.yml @@ -1,8 +1,7 @@  #!/usr/bin/ansible-playbook  --- -- name: Setup the vpc and the master node group +- name: Accept nodes    hosts: localhost -  remote_user: root    gather_facts: no    tasks:    - name: Alert user to variables needed - clusterid @@ -17,37 +16,7 @@      import_role:        name: lib_openshift -  - name: fetch masters -    ec2_instance_facts: -      region: "{{ openshift_aws_region | default('us-east-1') }}" -      filters: -        "tag:clusterid": "{{ openshift_aws_clusterid | default('default') }}" -        "tag:host-type": master -        instance-state-name: running -    register: mastersout -    retries: 20 -    delay: 3 -    until: "'instances' in mastersout and mastersout.instances|length > 0" - -  - name: fetch new node instances -    ec2_instance_facts: -      region: "{{ openshift_aws_region | default('us-east-1') }}" -      filters: -        "tag:clusterid": "{{ openshift_aws_clusterid | default('default') }}" -        "tag:host-type": node -        instance-state-name: running -    register: instancesout -    retries: 20 -    delay: 3 -    until: "'instances' in instancesout and instancesout.instances|length > 0" - -  - debug: -      msg: "{{ instancesout.instances|map(attribute='private_dns_name') | list }}" - -  - name: approve nodes -    oc_adm_csr: -      #approve_all: True -      nodes: "{{ instancesout.instances|map(attribute='private_dns_name') | list  }}" -      timeout: 60 -    register: nodeout -    delegate_to: "{{ mastersout.instances[0].public_ip_address }}" +  - name: accept nodes +    import_role: +      name: openshift_aws +      tasks_from: accept_nodes.yml diff --git a/playbooks/aws/openshift-cluster/hosted.yml b/playbooks/aws/openshift-cluster/hosted.yml deleted file mode 100644 index 9d9ed29de..000000000 --- a/playbooks/aws/openshift-cluster/hosted.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -- import_playbook: ../../openshift-hosted/private/config.yml - -- import_playbook: ../../openshift-metrics/private/config.yml -  when: openshift_metrics_install_metrics | default(false) | bool - -- import_playbook: ../../openshift-logging/private/config.yml -  when: openshift_logging_install_logging | default(false) | bool - -- import_playbook: ../../openshift-prometheus/private/config.yml -  when: openshift_hosted_prometheus_deploy | default(false) | bool - -- import_playbook: ../../openshift-service-catalog/private/config.yml -  when: openshift_enable_service_catalog | default(false) | bool - -- import_playbook: ../../openshift-management/private/config.yml -  when: openshift_management_install_management | default(false) | bool - -- name: Print deprecated variable warning message if necessary -  hosts: oo_first_master -  gather_facts: no -  tasks: -  - debug: msg="{{__deprecation_message}}" -    when: -    - __deprecation_message | default ('') | length > 0 diff --git a/playbooks/aws/openshift-cluster/install.yml b/playbooks/aws/openshift-cluster/install.yml index a3fc82f9a..938e83f5e 100644 --- a/playbooks/aws/openshift-cluster/install.yml +++ b/playbooks/aws/openshift-cluster/install.yml @@ -18,29 +18,8 @@  - name: run the init    import_playbook: ../../init/main.yml -- name: perform the installer openshift-checks -  import_playbook: ../../openshift-checks/private/install.yml +- name: configure the control plane +  import_playbook: ../../common/private/control_plane.yml -- name: etcd install -  import_playbook: ../../openshift-etcd/private/config.yml - -- name: include nfs -  import_playbook: ../../openshift-nfs/private/config.yml -  when: groups.oo_nfs_to_config | default([]) | count > 0 - -- name: include loadbalancer -  import_playbook: ../../openshift-loadbalancer/private/config.yml -  when: groups.oo_lb_to_config | default([]) | count > 0 - -- name: include openshift-master config -  import_playbook: ../../openshift-master/private/config.yml - -- name: include master additional config -  import_playbook: ../../openshift-master/private/additional_config.yml - -- name: include master additional config +- name: ensure the masters are configured as nodes    import_playbook: ../../openshift-node/private/config.yml - -- name: include openshift-glusterfs -  import_playbook: ../../openshift-glusterfs/private/config.yml -  when: groups.oo_glusterfs_to_config | default([]) | count > 0 diff --git a/playbooks/aws/openshift-cluster/provision.yml b/playbooks/aws/openshift-cluster/provision.yml index 7dde60b7d..d538b862d 100644 --- a/playbooks/aws/openshift-cluster/provision.yml +++ b/playbooks/aws/openshift-cluster/provision.yml @@ -1,8 +1,7 @@  --- -- name: Setup the elb and the master node group +- name: Alert user to variables needed    hosts: localhost    tasks: -    - name: Alert user to variables needed - clusterid      debug:        msg: "openshift_aws_clusterid={{ openshift_aws_clusterid | default('default') }}" @@ -11,6 +10,13 @@      debug:        msg: "openshift_aws_region={{ openshift_aws_region | default('us-east-1') }}" +- import_playbook: provision_s3.yml + +- import_playbook: provision_elb.yml + +- name: Create the master node group +  hosts: localhost +  tasks:    - name: provision cluster      import_role:        name: openshift_aws diff --git a/playbooks/aws/openshift-cluster/provision_elb.yml b/playbooks/aws/openshift-cluster/provision_elb.yml new file mode 100644 index 000000000..9f27dca3b --- /dev/null +++ b/playbooks/aws/openshift-cluster/provision_elb.yml @@ -0,0 +1,9 @@ +--- +- name: Create elb +  hosts: localhost +  connection: local +  tasks: +  - name: provision elb +    include_role: +      name: openshift_aws +      tasks_from: provision_elb.yml diff --git a/playbooks/aws/openshift-cluster/provision_install.yml b/playbooks/aws/openshift-cluster/provision_install.yml index f98f5be9a..bd154fa83 100644 --- a/playbooks/aws/openshift-cluster/provision_install.yml +++ b/playbooks/aws/openshift-cluster/provision_install.yml @@ -15,5 +15,5 @@  - name: Include the accept.yml playbook to accept nodes into the cluster    import_playbook: accept.yml -- name: Include the hosted.yml playbook to finish the hosted configuration -  import_playbook: hosted.yml +- name: Include the components playbook to finish the hosted configuration +  import_playbook: ../../common/private/components.yml diff --git a/playbooks/aws/openshift-cluster/provision_s3.yml b/playbooks/aws/openshift-cluster/provision_s3.yml new file mode 100644 index 000000000..45b439083 --- /dev/null +++ b/playbooks/aws/openshift-cluster/provision_s3.yml @@ -0,0 +1,10 @@ +--- +- name: Create s3 bucket +  hosts: localhost +  connection: local +  tasks: +  - name: create s3 bucket +    include_role: +      name: openshift_aws +      tasks_from: s3.yml +    when: openshift_aws_create_s3 | default(true) | bool diff --git a/playbooks/aws/openshift-cluster/uninstall_prerequisites.yml b/playbooks/aws/openshift-cluster/uninstall_prerequisites.yml new file mode 100644 index 000000000..180c2281a --- /dev/null +++ b/playbooks/aws/openshift-cluster/uninstall_prerequisites.yml @@ -0,0 +1,6 @@ +--- +- import_playbook: uninstall_sec_group.yml + +- import_playbook: uninstall_vpc.yml + +- import_playbook: uninstall_ssh_keypair.yml diff --git a/playbooks/aws/openshift-cluster/uninstall_s3.yml b/playbooks/aws/openshift-cluster/uninstall_s3.yml new file mode 100644 index 000000000..448b47aee --- /dev/null +++ b/playbooks/aws/openshift-cluster/uninstall_s3.yml @@ -0,0 +1,10 @@ +--- +- name: Empty/delete s3 bucket +  hosts: localhost +  connection: local +  tasks: +  - name: empty/delete s3 bucket +    include_role: +      name: openshift_aws +      tasks_from: uninstall_s3.yml +    when: openshift_aws_create_s3 | default(true) | bool diff --git a/playbooks/aws/openshift-cluster/uninstall_sec_group.yml b/playbooks/aws/openshift-cluster/uninstall_sec_group.yml new file mode 100644 index 000000000..642e5b169 --- /dev/null +++ b/playbooks/aws/openshift-cluster/uninstall_sec_group.yml @@ -0,0 +1,10 @@ +--- +- hosts: localhost +  connection: local +  gather_facts: no +  tasks: +  - name: delete security groups +    include_role: +      name: openshift_aws +      tasks_from: uninstall_security_group.yml +    when: openshift_aws_create_security_groups | default(True) | bool diff --git a/playbooks/aws/openshift-cluster/uninstall_ssh_keypair.yml b/playbooks/aws/openshift-cluster/uninstall_ssh_keypair.yml new file mode 100644 index 000000000..ec9caa51b --- /dev/null +++ b/playbooks/aws/openshift-cluster/uninstall_ssh_keypair.yml @@ -0,0 +1,10 @@ +--- +- hosts: localhost +  connection: local +  gather_facts: no +  tasks: +  - name: remove ssh keypair(s) +    include_role: +      name: openshift_aws +      tasks_from: uninstall_ssh_keys.yml +    when: openshift_aws_users | default([]) | length  > 0 diff --git a/playbooks/aws/openshift-cluster/uninstall_vpc.yml b/playbooks/aws/openshift-cluster/uninstall_vpc.yml new file mode 100644 index 000000000..4c988bcc5 --- /dev/null +++ b/playbooks/aws/openshift-cluster/uninstall_vpc.yml @@ -0,0 +1,10 @@ +--- +- hosts: localhost +  connection: local +  gather_facts: no +  tasks: +  - name: delete vpc +    include_role: +      name: openshift_aws +      tasks_from: uninstall_vpc.yml +    when: openshift_aws_create_vpc | default(True) | bool diff --git a/playbooks/aws/provisioning_vars.yml.example b/playbooks/aws/provisioning_vars.yml.example index f6b1a6b5d..78484fdbd 100644 --- a/playbooks/aws/provisioning_vars.yml.example +++ b/playbooks/aws/provisioning_vars.yml.example @@ -21,6 +21,12 @@ openshift_release: # v3.7  # This will be dependent on the version provided by the yum repository  openshift_pkg_version: # -3.7.0 +# OpenShift api port +# Fulfills a chicken/egg scenario with how Ansible treats host inventory file +# and extra_vars.  This is used for SecurityGroups, ELB Listeners as well as +# an override to installer inventory openshift_master_api_port key +# openshift_master_api_port: 8443 +  # specify a clusterid  # This value is also used as the default value for many other components.  #openshift_aws_clusterid: default @@ -41,11 +47,27 @@ openshift_pkg_version: # -3.7.0  # a vpc, set this to false.  #openshift_aws_create_vpc: true +# when openshift_aws_create_vpc is true (the default), the VPC defined in +# openshift_aws_vpc will be created +#openshift_aws_vpc: +#  name: "{{ openshift_aws_vpc_name }}" +#  cidr: 172.31.0.0/16 +#  subnets: +#    us-east-1: +#    - cidr: 172.31.48.0/20 +#      az: "us-east-1c" +#      default_az: true +#    - cidr: 172.31.32.0/20 +#      az: "us-east-1e" +#    - cidr: 172.31.16.0/20 +#      az: "us-east-1a" +  # Name of the vpc.  Needs to be set if using a pre-existing vpc.  #openshift_aws_vpc_name: "{{ openshift_aws_clusterid }}"  # Name of the subnet in the vpc to use.  Needs to be set if using a pre-existing -# vpc + subnet. +# vpc + subnet. Otherwise will use the subnet with 'default_az' set (see above +# example VPC structure)  #openshift_aws_subnet_az:  # -------------- # | 
