diff options
Diffstat (limited to 'playbooks')
27 files changed, 196 insertions, 44 deletions
diff --git a/playbooks/aws/ansible-tower/config.yml b/playbooks/aws/ansible-tower/config.yml new file mode 100644 index 000000000..efd1b9911 --- /dev/null +++ b/playbooks/aws/ansible-tower/config.yml @@ -0,0 +1,22 @@ +--- +- name: "populate oo_hosts_to_config host group if needed" + hosts: localhost + gather_facts: no + tasks: + - name: Evaluate oo_host_group_exp if it's set + add_host: "name={{ item }} groups=oo_hosts_to_config" + with_items: "{{ oo_host_group_exp | default(['']) }}" + when: oo_host_group_exp is defined + +- name: "Configure instances" + hosts: oo_hosts_to_config + connection: ssh + user: root + vars_files: + - vars.yml + - "vars.{{ oo_env }}.yml" + roles: + - os_ipv6_disable + - ansible + - ansible_tower + - os_env_extras diff --git a/playbooks/aws/ansible-tower/filter_plugins b/playbooks/aws/ansible-tower/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/aws/ansible-tower/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/aws/ansible-tower/launch.yml b/playbooks/aws/ansible-tower/launch.yml new file mode 100644 index 000000000..4c29fa833 --- /dev/null +++ b/playbooks/aws/ansible-tower/launch.yml @@ -0,0 +1,78 @@ +--- +- name: Launch instance(s) + hosts: localhost + connection: local + gather_facts: no + + vars: + inst_region: us-east-1 + rhel7_ami: ami-a24e30ca + user_data_file: user_data.txt + + vars_files: + - vars.yml + - "vars.{{ oo_env }}.yml" + + tasks: + - name: Launch instances in VPC + ec2: + state: present + region: "{{ inst_region }}" + keypair: mmcgrath_libra + group_id: "{{ oo_security_group_ids }}" + instance_type: c4.xlarge + image: "{{ rhel7_ami }}" + count: "{{ oo_new_inst_names | oo_len }}" + user_data: "{{ lookup('file', user_data_file) }}" + wait: yes + assign_public_ip: "{{ oo_assign_public_ip }}" + vpc_subnet_id: "{{ oo_vpc_subnet_id }}" + register: ec2 + + - name: Add Name and environment tags to instances + ec2_tag: "resource={{ item.1.id }} region={{ inst_region }} state=present" + with_together: + - oo_new_inst_names + - ec2.instances + args: + tags: + Name: "{{ item.0 }}" + + - name: Add other tags to instances + ec2_tag: "resource={{ item.id }} region={{ inst_region }} state=present" + with_items: ec2.instances + args: + tags: "{{ oo_new_inst_tags }}" + + - name: Add new instances public IPs to oo_hosts_to_config + add_host: "hostname={{ item.0 }} ansible_ssh_host={{ item.1.public_ip }} groupname=oo_hosts_to_config" + with_together: + - oo_new_inst_names + - ec2.instances + + - debug: var=ec2 + + - name: Wait for ssh + wait_for: "port=22 host={{ item.public_ip }}" + with_items: ec2.instances + + - name: Wait for root user setup + command: "ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null root@{{ item.public_ip }} echo root user is setup" + register: result + until: result.rc == 0 + retries: 20 + delay: 10 + with_items: ec2.instances + +- name: Initial setup + hosts: oo_hosts_to_config + user: root + gather_facts: true + + tasks: + + - name: Yum update + yum: name=* state=latest + +# Apply the configs, seprate so that just the configs can be run by themselves +- include: config.yml diff --git a/playbooks/aws/ansible-tower/roles b/playbooks/aws/ansible-tower/roles new file mode 120000 index 000000000..20c4c58cf --- /dev/null +++ b/playbooks/aws/ansible-tower/roles @@ -0,0 +1 @@ +../../../roles
\ No newline at end of file diff --git a/playbooks/aws/ansible-tower/user_data.txt b/playbooks/aws/ansible-tower/user_data.txt new file mode 100644 index 000000000..643d17c32 --- /dev/null +++ b/playbooks/aws/ansible-tower/user_data.txt @@ -0,0 +1,6 @@ +#cloud-config +disable_root: 0 + +system_info: + default_user: + name: root diff --git a/playbooks/aws/ansible-tower/vars.ops.yml b/playbooks/aws/ansible-tower/vars.ops.yml new file mode 100644 index 000000000..feb5d786a --- /dev/null +++ b/playbooks/aws/ansible-tower/vars.ops.yml @@ -0,0 +1,9 @@ +--- +oo_env_long: operations +oo_zabbix_hostgroups: ['OPS Environment'] +oo_vpc_subnet_id: subnet-4f0bdd38 # USE OPS +oo_assign_public_ip: yes +oo_security_group_ids: + - sg-02c2f267 # Libra (vpc) + - sg-7fc4f41a # ops (vpc) + - sg-4dc26829 # ops_tower (vpc) diff --git a/playbooks/aws/ansible-tower/vars.yml b/playbooks/aws/ansible-tower/vars.yml new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/playbooks/aws/ansible-tower/vars.yml @@ -0,0 +1 @@ +--- diff --git a/playbooks/aws/openshift-master/config.yml b/playbooks/aws/openshift-master/config.yml index 8a5873189..c88828912 100644 --- a/playbooks/aws/openshift-master/config.yml +++ b/playbooks/aws/openshift-master/config.yml @@ -1,3 +1,4 @@ +--- - name: "populate oo_hosts_to_config host group if needed" hosts: localhost gather_facts: no @@ -16,11 +17,11 @@ hosts: localhost gather_facts: no tasks: - - name: Setting oo_node_ips fact on localhost + - name: Setting openshift_node_ips fact on localhost set_fact: - oo_node_ips: "{{ hostvars + openshift_node_ips: "{{ hostvars | oo_select_keys(groups['tag_env-host-type_' + oo_env + '-openshift-node']) - | oo_collect(attribute='ansible_eth0.ipv4.address') }}" + | oo_collect(attribute='ansible_default_ipv4.address') }}" when: groups['tag_env-host-type_' + oo_env + '-openshift-node'] is defined - name: "Configure instances" @@ -30,11 +31,12 @@ vars_files: - vars.yml roles: - - ../../../roles/base_os - - ../../../roles/repos + - repos - { - role: ../../../roles/openshift_master, - oo_node_ips: "{{ hostvars['localhost'].oo_node_ips | default(['']) }}", - oo_bind_ip: "{{ hostvars[inventory_hostname].ansible_eth0.ipv4.address | default(['']) }}" + role: openshift_master, + openshift_node_ips: "{{ hostvars['localhost'].openshift_node_ips | default(['']) }}", + openshift_env: "{{ oo_env }}" + # TODO: openshift_public_ip: set to aws instance public ip } - - ../../../roles/pods + - pods + - os_env_extras diff --git a/playbooks/aws/openshift-master/filter_plugins b/playbooks/aws/openshift-master/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/aws/openshift-master/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/aws/openshift-master/roles b/playbooks/aws/openshift-master/roles new file mode 120000 index 000000000..20c4c58cf --- /dev/null +++ b/playbooks/aws/openshift-master/roles @@ -0,0 +1 @@ +../../../roles
\ No newline at end of file diff --git a/playbooks/aws/openshift-master/vars.yml b/playbooks/aws/openshift-master/vars.yml index e69de29bb..fb5f4ea42 100644 --- a/playbooks/aws/openshift-master/vars.yml +++ b/playbooks/aws/openshift-master/vars.yml @@ -0,0 +1,2 @@ +--- +openshift_debug_level: 4 diff --git a/playbooks/aws/openshift-node/config.yml b/playbooks/aws/openshift-node/config.yml index 2170f14a3..129464e1f 100644 --- a/playbooks/aws/openshift-node/config.yml +++ b/playbooks/aws/openshift-node/config.yml @@ -1,3 +1,4 @@ +--- - name: "populate oo_hosts_to_config host group if needed" hosts: localhost gather_facts: no @@ -16,11 +17,11 @@ hosts: localhost gather_facts: no tasks: - - name: Setting oo_master_ips fact on localhost + - name: Setting openshift_master_ips fact on localhost set_fact: - oo_master_ips: "{{ hostvars + openshift_master_ips: "{{ hostvars | oo_select_keys(groups['tag_env-host-type_' + oo_env + '-openshift-master']) - | oo_collect(attribute='ansible_eth0.ipv4.address') }}" + | oo_collect(attribute='ansible_default_ipv4.address') }}" when: groups['tag_env-host-type_' + oo_env + '-openshift-master'] is defined - name: "Configure instances" @@ -30,11 +31,13 @@ vars_files: - vars.yml roles: - - ../../../roles/base_os - - ../../../roles/repos - - ../../../roles/docker + - repos + - docker - { - role: ../../../roles/openshift_node, - oo_master_ips: "{{ hostvars['localhost'].oo_master_ips | default(['']) }}", - oo_bind_ip: "{{ hostvars[inventory_hostname].ansible_eth0.ipv4.address | default(['']) }}" + role: openshift_node, + openshift_master_ips: "{{ hostvars['localhost'].openshift_master_ips | default(['']) }}", + # TODO: add openshift_Master_public_ips + openshift_env: "{{ oo_env }}" + # TODO: openshift_public_ip: set to aws instance public ip } + - os_env_extras diff --git a/playbooks/aws/openshift-node/filter_plugins b/playbooks/aws/openshift-node/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/aws/openshift-node/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/aws/openshift-node/roles b/playbooks/aws/openshift-node/roles new file mode 120000 index 000000000..20c4c58cf --- /dev/null +++ b/playbooks/aws/openshift-node/roles @@ -0,0 +1 @@ +../../../roles
\ No newline at end of file diff --git a/playbooks/aws/openshift-node/vars.yml b/playbooks/aws/openshift-node/vars.yml index e69de29bb..fb5f4ea42 100644 --- a/playbooks/aws/openshift-node/vars.yml +++ b/playbooks/aws/openshift-node/vars.yml @@ -0,0 +1,2 @@ +--- +openshift_debug_level: 4 diff --git a/playbooks/aws/os2-atomic-proxy/config.yml b/playbooks/aws/os2-atomic-proxy/config.yml index 0124156a9..7d384a665 100644 --- a/playbooks/aws/os2-atomic-proxy/config.yml +++ b/playbooks/aws/os2-atomic-proxy/config.yml @@ -16,5 +16,5 @@ - vars.yml - "vars.{{ oo_env }}.yml" roles: - - ../../../roles/atomic_base - - ../../../roles/atomic_proxy + - atomic_base + - atomic_proxy diff --git a/playbooks/aws/os2-atomic-proxy/filter_plugins b/playbooks/aws/os2-atomic-proxy/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/aws/os2-atomic-proxy/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/aws/os2-atomic-proxy/roles b/playbooks/aws/os2-atomic-proxy/roles new file mode 120000 index 000000000..20c4c58cf --- /dev/null +++ b/playbooks/aws/os2-atomic-proxy/roles @@ -0,0 +1 @@ +../../../roles
\ No newline at end of file diff --git a/playbooks/gce/openshift-master/config.yml b/playbooks/gce/openshift-master/config.yml index cfdb5bbbe..7e754074b 100644 --- a/playbooks/gce/openshift-master/config.yml +++ b/playbooks/gce/openshift-master/config.yml @@ -1,3 +1,4 @@ +--- - name: "populate oo_hosts_to_config host group if needed" hosts: localhost gather_facts: no @@ -16,11 +17,11 @@ hosts: localhost gather_facts: no tasks: - - name: Setting oo_node_ips fact on localhost + - name: Setting openshift_node_ips fact on localhost set_fact: - oo_node_ips: "{{ hostvars + openshift_node_ips: "{{ hostvars | oo_select_keys(groups['tag_env-host-type-' + oo_env + '-openshift-node']) - | oo_collect(attribute='ansible_eth0.ipv4.address') }}" + | oo_collect(attribute='ansible_default_ipv4.address') }}" when: groups['tag_env-host-type-' + oo_env + '-openshift-node'] is defined - name: "Configure instances" @@ -30,12 +31,12 @@ vars_files: - vars.yml roles: - - ../../../roles/base_os - - ../../../roles/repos + - repos - { - role: ../../../roles/openshift_master, - oo_node_ips: "{{ hostvars['localhost'].oo_node_ips | default(['']) }}", - oo_bind_ip: "{{ hostvars[inventory_hostname].ansible_eth0.ipv4.address | default(['']) }}", - oo_public_ip: "{{ gce_public_ip }}" + role: openshift_master, + openshift_node_ips: "{{ hostvars['localhost'].openshift_node_ips | default(['']) }}", + openshift_public_ip: "{{ gce_public_ip }}", + openshift_env: "{{ oo_env }}", } - - ../../../roles/pods + - pods + - os_env_extras diff --git a/playbooks/gce/openshift-master/filter_plugins b/playbooks/gce/openshift-master/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/gce/openshift-master/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/gce/openshift-master/roles b/playbooks/gce/openshift-master/roles new file mode 120000 index 000000000..20c4c58cf --- /dev/null +++ b/playbooks/gce/openshift-master/roles @@ -0,0 +1 @@ +../../../roles
\ No newline at end of file diff --git a/playbooks/gce/openshift-master/vars.yml b/playbooks/gce/openshift-master/vars.yml index e69de29bb..fb5f4ea42 100644 --- a/playbooks/gce/openshift-master/vars.yml +++ b/playbooks/gce/openshift-master/vars.yml @@ -0,0 +1,2 @@ +--- +openshift_debug_level: 4 diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml index c9cacbc63..85f34e814 100644 --- a/playbooks/gce/openshift-node/config.yml +++ b/playbooks/gce/openshift-node/config.yml @@ -1,7 +1,7 @@ +--- - name: "populate oo_hosts_to_config host group if needed" hosts: localhost gather_facts: no - tasks: - name: Evaluate oo_host_group_exp add_host: "name={{ item }} groups=oo_hosts_to_config" @@ -17,15 +17,15 @@ hosts: localhost gather_facts: no tasks: - - name: Setting oo_master_ips fact on localhost + - name: Setting openshift_master_ips fact on localhost set_fact: - oo_master_ips: "{{ hostvars + openshift_master_ips: "{{ hostvars | oo_select_keys(groups['tag_env-host-type-' + oo_env + '-openshift-master']) - | oo_collect(attribute='ansible_eth0.ipv4.address') }}" + | oo_collect(attribute='ansible_default_ipv4.address') }}" when: groups['tag_env-host-type-' + oo_env + '-openshift-master'] is defined - - name: Setting oo_master_public_ips fact on localhost + - name: Setting openshift_master_public_ips fact on localhost set_fact: - oo_master_public_ips: "{{ hostvars + openshift_master_public_ips: "{{ hostvars | oo_select_keys(groups['tag_env-host-type-' + oo_env + '-openshift-master']) | oo_collect(attribute='gce_public_ip') }}" when: groups['tag_env-host-type-' + oo_env + '-openshift-master'] is defined @@ -37,13 +37,13 @@ vars_files: - vars.yml roles: - - ../../../roles/base_os - - ../../../roles/repos - - ../../../roles/docker + - repos + - docker - { - role: ../../../roles/openshift_node, - oo_master_ips: "{{ hostvars['localhost'].oo_master_ips | default(['']) }}", - oo_master_public_ips: "{{ hostvars['localhost'].oo_master_public_ips | default(['']) }}", - oo_bind_ip: "{{ hostvars[inventory_hostname].ansible_eth0.ipv4.address | default(['']) }}", - oo_public_ip: "{{ hostvars[inventory_hostname].ansible_ssh_host }}" + role: openshift_node, + openshift_master_ips: "{{ hostvars['localhost'].openshift_master_ips | default(['']) }}", + openshift_master_public_ips: "{{ hostvars['localhost'].openshift_master_public_ips | default(['']) }}", + openshift_public_ip: "{{ gce_public_ip }}", + openshift_env: "{{ oo_env }}", } + - os_env_extras diff --git a/playbooks/gce/openshift-node/filter_plugins b/playbooks/gce/openshift-node/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/gce/openshift-node/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/gce/openshift-node/launch.yml b/playbooks/gce/openshift-node/launch.yml index f2800b061..935599efd 100644 --- a/playbooks/gce/openshift-node/launch.yml +++ b/playbooks/gce/openshift-node/launch.yml @@ -45,3 +45,13 @@ # Apply the configs, separate so that just the configs can be run by themselves - include: config.yml + +# Always bounce service to pick up new credentials +#- name: "Restart instances" +# hosts: oo_hosts_to_config +# connection: ssh +# user: root +# tasks: +# - debug: var=groups.oo_hosts_to_config +# - name: Restart OpenShift +# service: name=openshift-node enabled=yes state=restarted diff --git a/playbooks/gce/openshift-node/roles b/playbooks/gce/openshift-node/roles new file mode 120000 index 000000000..20c4c58cf --- /dev/null +++ b/playbooks/gce/openshift-node/roles @@ -0,0 +1 @@ +../../../roles
\ No newline at end of file diff --git a/playbooks/gce/openshift-node/vars.yml b/playbooks/gce/openshift-node/vars.yml index e69de29bb..fb5f4ea42 100644 --- a/playbooks/gce/openshift-node/vars.yml +++ b/playbooks/gce/openshift-node/vars.yml @@ -0,0 +1,2 @@ +--- +openshift_debug_level: 4 |