summaryrefslogtreecommitdiffstats
path: root/playbooks
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks')
-rw-r--r--playbooks/adhoc/create_pv/create_pv.yaml142
-rw-r--r--playbooks/adhoc/create_pv/pv-template.j216
-rw-r--r--playbooks/adhoc/deploy_monitoring_containers/deploy.yml58
-rw-r--r--playbooks/adhoc/deploy_monitoring_containers/oso-f22-host-monitoring.service36
-rw-r--r--playbooks/adhoc/deploy_monitoring_containers/oso-rhel7-zagg-client.service39
-rw-r--r--playbooks/adhoc/zabbix_setup/clean_zabbix.yml37
-rw-r--r--playbooks/adhoc/zabbix_setup/create_app.yml34
-rw-r--r--playbooks/adhoc/zabbix_setup/create_application.yml18
-rw-r--r--playbooks/adhoc/zabbix_setup/create_template.yml30
-rw-r--r--playbooks/adhoc/zabbix_setup/setup_zabbix.yml9
-rw-r--r--playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml28
-rw-r--r--playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml332
-rw-r--r--playbooks/aws/openshift-cluster/tasks/launch_instances.yml2
-rw-r--r--playbooks/aws/openshift-cluster/vars.yml6
-rw-r--r--playbooks/libvirt/openshift-cluster/launch.yml2
-rw-r--r--playbooks/openstack/openshift-cluster/files/heat_stack.yaml103
-rw-r--r--playbooks/openstack/openshift-cluster/files/heat_stack_server.yaml9
-rw-r--r--playbooks/openstack/openshift-cluster/launch.yml4
18 files changed, 384 insertions, 521 deletions
diff --git a/playbooks/adhoc/create_pv/create_pv.yaml b/playbooks/adhoc/create_pv/create_pv.yaml
new file mode 100644
index 000000000..684a0ca72
--- /dev/null
+++ b/playbooks/adhoc/create_pv/create_pv.yaml
@@ -0,0 +1,142 @@
+---
+#example run:
+# ansible-playbook -e "cli_volume_size=1" \
+# -e "cli_device_name=/dev/xvdf" \
+# -e "cli_hosttype=master" \
+# -e "cli_environment=ops" \
+# create_pv.yaml
+# FIXME: we need to change "environment" to "clusterid" as that's what it really is now.
+#
+- name: Create a volume and attach it to master
+ hosts: localhost
+ gather_facts: no
+ vars:
+ cli_volume_type: gp2
+ cli_volume_iops: ''
+ oo_name: "{{ groups['tag_host-type_' ~ cli_hosttype] |
+ intersect(groups['tag_environment_' ~ cli_environment]) |
+ first }}"
+ pre_tasks:
+ - fail:
+ msg: "This playbook requires {{item}} to be set."
+ when: "{{ item }} is not defined or {{ item }} == ''"
+ with_items:
+ - cli_volume_size
+ - cli_device_name
+ - cli_hosttype
+ - cli_environment
+
+ - name: set oo_name fact
+ set_fact:
+ oo_name: "{{ oo_name }}"
+
+
+ - name: Select a single master to run this on
+ add_host:
+ hostname: "{{ oo_name }}"
+ ansible_ssh_host: "{{ hostvars[oo_name].ec2_public_dns_name }}"
+ groups: oo_master
+
+ - name: Create a volume and attach it
+ ec2_vol:
+ state: present
+ instance: "{{ hostvars[oo_name]['ec2_id'] }}"
+ region: "{{ hostvars[oo_name]['ec2_region'] }}"
+ volume_size: "{{ cli_volume_size }}"
+ volume_type: "{{ cli_volume_type }}"
+ device_name: "{{ cli_device_name }}"
+ iops: "{{ cli_volume_iops }}"
+ register: vol
+
+ - debug: var=vol
+
+- name: Configure the drive
+ gather_facts: no
+ hosts: oo_master
+ user: root
+ connection: ssh
+ vars:
+ pv_tmpdir: /tmp/persistentvolumes
+
+ post_tasks:
+ - name: Setting facts for template
+ set_fact:
+ pv_name: "pv-{{cli_volume_size}}-{{ hostvars[hostvars.localhost.oo_name]['ec2_tag_Name'] }}-{{hostvars.localhost.vol.volume_id }}"
+ vol_az: "{{ hostvars[hostvars.localhost.oo_name]['ec2_placement'] }}"
+ vol_id: "{{ hostvars.localhost.vol.volume_id }}"
+ vol_size: "{{ cli_volume_size }}"
+ pv_mntdir: "{{ pv_tmpdir }}/mnt-{{ 1000 | random }}"
+
+ - set_fact:
+ pv_template: "{{ pv_tmpdir }}/{{ pv_name }}.yaml"
+
+ - name: "Mkdir {{ pv_tmpdir }}"
+ file:
+ state: directory
+ path: "{{ pv_tmpdir }}"
+ mode: '0750'
+
+ - name: "Mkdir {{ pv_mntdir }}"
+ file:
+ state: directory
+ path: "{{ pv_mntdir }}"
+ mode: '0750'
+
+ - name: Create pv file from template
+ template:
+ src: ./pv-template.j2
+ dest: "{{ pv_template }}"
+ owner: root
+ mode: '0640'
+
+ - name: mkfs
+ filesystem:
+ dev: "{{ cli_device_name }}"
+ fstype: ext4
+
+ - name: Mount the dev
+ mount:
+ name: "{{ pv_mntdir }}"
+ src: "{{ cli_device_name }}"
+ fstype: ext4
+ state: mounted
+
+ - name: chgrp g+rwXs
+ file:
+ path: "{{ pv_mntdir }}"
+ mode: 'g+rwXs'
+ recurse: yes
+ seuser: system_u
+ serole: object_r
+ setype: svirt_sandbox_file_t
+ selevel: s0
+
+ - name: umount
+ mount:
+ name: "{{ pv_mntdir }}"
+ src: "{{ cli_device_name }}"
+ state: unmounted
+ fstype: ext4
+
+ - name: detach drive
+ delegate_to: localhost
+ ec2_vol:
+ region: "{{ hostvars[hostvars.localhost.oo_name].ec2_region }}"
+ id: "{{ hostvars.localhost.vol.volume_id }}"
+ instance: None
+
+ - name: "Remove {{ pv_mntdir }}"
+ file:
+ state: absent
+ path: "{{ pv_mntdir }}"
+
+ # We have to use the shell module because we can't set env vars with the command module.
+ - name: "Place PV into oc"
+ shell: "KUBECONFIG=/etc/openshift/master/admin.kubeconfig oc create -f {{ pv_template | quote }}"
+ register: oc_output
+
+ - debug: var=oc_output
+
+ - fail:
+ msg: "Failed to add {{ pv_template }} to master."
+ when: oc_output.rc != 0
diff --git a/playbooks/adhoc/create_pv/pv-template.j2 b/playbooks/adhoc/create_pv/pv-template.j2
new file mode 100644
index 000000000..5654ef6c4
--- /dev/null
+++ b/playbooks/adhoc/create_pv/pv-template.j2
@@ -0,0 +1,16 @@
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: {{ pv_name }}
+ labels:
+ type: ebs
+spec:
+ capacity:
+ storage: {{ vol_size }}Gi
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Recycle
+ awsElasticBlockStore:
+ volumeID: aws://{{ vol_az }}/{{ vol_id }}
+ fsType: ext4
diff --git a/playbooks/adhoc/deploy_monitoring_containers/deploy.yml b/playbooks/adhoc/deploy_monitoring_containers/deploy.yml
deleted file mode 100644
index 44df693d5..000000000
--- a/playbooks/adhoc/deploy_monitoring_containers/deploy.yml
+++ /dev/null
@@ -1,58 +0,0 @@
----
-- name: Setup hosts
- hosts: localhost
- gather_facts: no
- user: root
- tasks:
- - name: build inven
- add_host: "name={{ hostvars[item]['ec2_public_dns_name'] }} groups=oo_hosts"
- with_items: groups['tag_env-host-type_kwoodsontest2-openshift-node']
-
- - debug: msg=oo_hosts
-
-- name: Deploy host-monitoring
- hosts: oo_hosts
- user: root
- tasks:
- - name: Deploy docker oso-f22-host-monitoring
- command: docker pull docker-registry.ops.rhcloud.com/ops/oso-f22-host-monitoring
-
- - name: Deploy oso-rhel7-zagg-client
- command: docker pull docker-registry.ops.rhcloud.com/ops/oso-rhel7-zagg-client
-
- - name: Copy oso-f22-host-monitoring systemd file
- copy:
- src: oso-f22-host-monitoring.service
- dest: /etc/systemd/system/oso-f22-host-monitoring.service
- owner: root
- group: root
- mode: 0644
- register: pcp_systemd
-
- - name: Copy zagg-client systemd file
- copy:
- src: oso-rhel7-zagg-client.service
- dest: /etc/systemd/system/oso-rhel7-zagg-client.service
- owner: root
- group: root
- mode: 0644
- register: zagg_systemd
-
- - name: reload systemd
- command: /usr/bin/systemctl --system daemon-reload
- when: pcp_systemd.changed or zagg_systemd.changed
-
- - name: pasue for a few seconds
- pause: seconds=5
-
- - name: Start the oso-f22-host-monitoring service
- service:
- name: oso-f22-host-monitoring
- state: started
- enabled: yes
-
- - name: Start the oso-rhel7-zagg-client service
- service:
- name: oso-rhel7-zagg-client
- state: started
- enabled: yes
diff --git a/playbooks/adhoc/deploy_monitoring_containers/oso-f22-host-monitoring.service b/playbooks/adhoc/deploy_monitoring_containers/oso-f22-host-monitoring.service
deleted file mode 100644
index 852be09b6..000000000
--- a/playbooks/adhoc/deploy_monitoring_containers/oso-f22-host-monitoring.service
+++ /dev/null
@@ -1,36 +0,0 @@
-# This is a systemd file to run this docker container under systemd.
-# To make this work:
-# * pull the image (probably from ops docker registry)
-# * place this file in /etc/systemd/system without the .systemd extension
-# * run the commands:
-# systemctl daemon-reload
-# systemctl enable pcp-docker
-# systemctl start pcp-docker
-#
-#
-[Unit]
-Description=PCP Collector Contatainer
-Requires=docker.service
-After=docker.service
-
-
-[Service]
-Type=simple
-TimeoutStartSec=5m
-#Slice=container-small.slice
-
-ExecStartPre=-/usr/bin/docker rm "oso-f22-host-monitoring"
-
-ExecStart=/usr/bin/docker run --rm --name=oso-f22-host-monitoring \
- --privileged --net=host --pid=host --ipc=host \
- -v /sys:/sys:ro -v /etc/localtime:/etc/localtime:ro \
- -v /var/lib/docker:/var/lib/docker:ro -v /run:/run \
- -v /var/log:/var/log \
- docker-registry.ops.rhcloud.com/ops/oso-f22-host-monitoring
-
-ExecReload=-/usr/bin/docker stop "oso-f22-host-monitoring"
-ExecReload=-/usr/bin/docker rm "oso-f22-host-monitoring"
-ExecStop=-/usr/bin/docker stop "oso-f22-host-monitoring"
-
-[Install]
-WantedBy=default.target
diff --git a/playbooks/adhoc/deploy_monitoring_containers/oso-rhel7-zagg-client.service b/playbooks/adhoc/deploy_monitoring_containers/oso-rhel7-zagg-client.service
deleted file mode 100644
index 381c7b487..000000000
--- a/playbooks/adhoc/deploy_monitoring_containers/oso-rhel7-zagg-client.service
+++ /dev/null
@@ -1,39 +0,0 @@
-# This is a systemd file to run this docker container under systemd.
-# To make this work:
-# * pull the image (probably from ops docker registry)
-# * place this file in /etc/systemd/system without the .systemd extension
-# * run the commands:
-# systemctl daemon-reload
-# systemctl enable zagg-client-docker
-# systemctl start zagg-client-docker
-#
-#
-[Unit]
-Description=Zagg Client Contatainer
-Requires=docker.service
-After=docker.service
-
-
-[Service]
-Type=simple
-TimeoutStartSec=5m
-#Slice=container-small.slice
-
-ExecStartPre=-/usr/bin/docker rm "oso-rhel7-zagg-client"
-
-
-ExecStart=/usr/bin/docker run --name oso-rhel7-zagg-client \
- -e ZAGG_SERVER=SERVERNAME \
- -e ZAGG_USER=USERNAME \
- -e ZAGG_PASSWORD=PASSWORD \
- -v /etc/localtime:/etc/localtime \
- -v /run/pcp:/run/pcp \
- docker-registry.ops.rhcloud.com/ops/oso-rhel7-zagg-client
-
-
-ExecReload=-/usr/bin/docker stop "oso-rhel7-zagg-client"
-ExecReload=-/usr/bin/docker rm "oso-rhel7-zagg-client"
-ExecStop=-/usr/bin/docker stop "oso-rhel7-zagg-client"
-
-[Install]
-WantedBy=default.target
diff --git a/playbooks/adhoc/zabbix_setup/clean_zabbix.yml b/playbooks/adhoc/zabbix_setup/clean_zabbix.yml
index 610d18b28..a31cbef65 100644
--- a/playbooks/adhoc/zabbix_setup/clean_zabbix.yml
+++ b/playbooks/adhoc/zabbix_setup/clean_zabbix.yml
@@ -2,67 +2,50 @@
- hosts: localhost
gather_facts: no
vars:
- # Use this for local ZAIO
g_zserver: http://localhost/zabbix/api_jsonrpc.php
-
g_zuser: Admin
g_zpassword: zabbix
roles:
- - ../roles/os_zabbix
+ - ../../../roles/os_zabbix
post_tasks:
- - zbxapi:
+ - zbx_template:
server: "{{ g_zserver }}"
user: "{{ g_zuser }}"
password: "{{ g_zpassword }}"
- zbx_class: Template
state: list
- params:
- output: extend
- search:
- host: 'Template Heartbeat'
+ name: 'Template Heartbeat'
register: templ_heartbeat
- - zbxapi:
+ - zbx_template:
server: "{{ g_zserver }}"
user: "{{ g_zuser }}"
password: "{{ g_zpassword }}"
- zbx_class: Template
state: list
- params:
- output: extend
- search:
- host: 'Template App Zabbix Server'
+ name: 'Template App Zabbix Server'
register: templ_zabbix_server
- - zbxapi:
+ - zbx_template:
server: "{{ g_zserver }}"
user: "{{ g_zuser }}"
password: "{{ g_zpassword }}"
- zbx_class: Template
state: list
- params:
- output: extend
- search:
- host: 'Template App Zabbix Agent'
+ name: 'Template App Zabbix Agent'
register: templ_zabbix_agent
- - zbxapi:
+ - zbx_template:
server: "{{ g_zserver }}"
user: "{{ g_zuser }}"
password: "{{ g_zpassword }}"
- zbx_class: Template
state: list
register: templates
- debug: var=templ_heartbeat.results
- - zbxapi:
+ - zbx_template:
server: "{{ g_zserver }}"
user: "{{ g_zuser }}"
password: "{{ g_zpassword }}"
- zbx_class: Template
state: absent
- params: "{{templates.results | difference(templ_zabbix_agent.results) | difference(templ_zabbix_server.results) | oo_collect('templateid') }}"
- register: template_results
+ with_items: "{{ templates.results | difference(templ_zabbix_agent.results) | difference(templ_zabbix_server.results) | oo_collect('host') }}"
when: templ_heartbeat.results | length == 0
diff --git a/playbooks/adhoc/zabbix_setup/create_app.yml b/playbooks/adhoc/zabbix_setup/create_app.yml
deleted file mode 100644
index 3a08b2301..000000000
--- a/playbooks/adhoc/zabbix_setup/create_app.yml
+++ /dev/null
@@ -1,34 +0,0 @@
----
-- hosts: localhost
- gather_facts: no
- vars_files:
- - vars/template_heartbeat.yml
- - vars/template_os_linux.yml
- vars:
- g_zserver: http://oso-rhel7-zabbix-web.kwoodsontest2.opstest.online.openshift.com/zabbix/api_jsonrpc.php
- g_zuser: Admin
- g_zpassword: zabbix
- roles:
- - ../roles/os_zabbix
- post_tasks:
- - zbxapi:
- server: "{{ g_zserver }}"
- user: "{{ g_zuser }}"
- password: "{{ g_zpassword }}"
- zbx_class: Template
- state: list
- params:
- output: extend
- register: templates
-
- - debug: var=templates
-
- - name: Create app
- include: create_application.yml
- vars:
- ctp_template: "{{ g_template_heartbeat }}"
- ctp_zserver: "{{ g_zserver }}"
- ctp_zuser: "{{ g_zuser }}"
- ctp_zpassword: "{{ g_zpassword }}"
-
-
diff --git a/playbooks/adhoc/zabbix_setup/create_application.yml b/playbooks/adhoc/zabbix_setup/create_application.yml
deleted file mode 100644
index aa6c40ed8..000000000
--- a/playbooks/adhoc/zabbix_setup/create_application.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-- debug: var=ctp_template
-
-- name: Create Application
- zbxapi:
- server: "{{ ctp_zserver }}"
- user: "{{ ctp_zuser }}"
- password: "{{ ctp_zpassword }}"
- zbx_class: Application
- state: present
- params:
- name: "{{ ctp_template.application['name'] }}"
- hostid: 10085
- search:
- name: "{{ ctp_template.application['name'] }}"
- register: ctp_created_application
-
-- debug: var=ctp_created_application
diff --git a/playbooks/adhoc/zabbix_setup/create_template.yml b/playbooks/adhoc/zabbix_setup/create_template.yml
index b055e78eb..50fff53b2 100644
--- a/playbooks/adhoc/zabbix_setup/create_template.yml
+++ b/playbooks/adhoc/zabbix_setup/create_template.yml
@@ -2,16 +2,14 @@
- debug: var=ctp_template
- name: Create Template
- zbxapi:
+ zbx_template:
server: "{{ ctp_zserver }}"
user: "{{ ctp_zuser }}"
password: "{{ ctp_zpassword }}"
- zbx_class: Template
- state: present
- params: "{{ ctp_template.params }}"
- register: ctp_created_templates
+ name: "{{ ctp_template.name }}"
+ register: ctp_created_template
-- debug: var=ctp_created_templates
+- debug: var=ctp_created_template
#- name: Create Application
# zbxapi:
@@ -22,7 +20,7 @@
# state: present
# params:
# name: "{{ ctp_template.application.name}}"
-# hostid: "{{ ctp_created_templates.results[0].templateid }}"
+# hostid: "{{ ctp_created_template.results[0].templateid }}"
# search:
# name: "{{ ctp_template.application.name}}"
# register: ctp_created_application
@@ -30,28 +28,28 @@
#- debug: var=ctp_created_application
- name: Create Items
- zbxapi:
+ zbx_item:
server: "{{ ctp_zserver }}"
user: "{{ ctp_zuser }}"
password: "{{ ctp_zpassword }}"
- zbx_class: Item
- state: present
- params: "{{ item | oo_set_zbx_item_hostid(ctp_created_templates.results) }}"
+ key: "{{ item.key }}"
+ name: "{{ item.name | default(item.key, true) }}"
+ value_type: "{{ item.value_type | default('int') }}"
+ template_name: "{{ ctp_template.name }}"
with_items: ctp_template.zitems
register: ctp_created_items
#- debug: var=ctp_created_items
- name: Create Triggers
- zbxapi:
+ zbx_trigger:
server: "{{ ctp_zserver }}"
user: "{{ ctp_zuser }}"
password: "{{ ctp_zpassword }}"
- zbx_class: Trigger
- state: present
- params: "{{ item }}"
+ description: "{{ item.description }}"
+ expression: "{{ item.expression }}"
+ priority: "{{ item.priority }}"
with_items: ctp_template.ztriggers
- register: ctp_created_triggers
when: ctp_template.ztriggers is defined
#- debug: var=ctp_created_triggers
diff --git a/playbooks/adhoc/zabbix_setup/setup_zabbix.yml b/playbooks/adhoc/zabbix_setup/setup_zabbix.yml
index 8b44f2adf..1729194b5 100644
--- a/playbooks/adhoc/zabbix_setup/setup_zabbix.yml
+++ b/playbooks/adhoc/zabbix_setup/setup_zabbix.yml
@@ -5,22 +5,17 @@
- vars/template_heartbeat.yml
- vars/template_os_linux.yml
vars:
- # Use this for local ZAIO
g_zserver: http://localhost/zabbix/api_jsonrpc.php
-
g_zuser: Admin
g_zpassword: zabbix
roles:
- - ../roles/os_zabbix
+ - ../../../roles/os_zabbix
post_tasks:
- - zbxapi:
+ - zbx_template:
server: "{{ g_zserver }}"
user: "{{ g_zuser }}"
password: "{{ g_zpassword }}"
- zbx_class: Template
state: list
- params:
- output: extend
register: templates
- debug: var=templates
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml b/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
index 9d6145ec4..22cc75554 100644
--- a/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
+++ b/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
@@ -1,33 +1,11 @@
---
g_template_heartbeat:
- application:
- name: Heartbeat
-#output: extend
- search:
- name: Heartbeat
- params:
- name: Template Heartbeat
- host: Template Heartbeat
- groups:
- - groupid: 1 # FIXME (not real)
- output: extend
- search:
- name: Template Heartbeat
+ name: Template Heartbeat
zitems:
- name: Heartbeat Ping
hostid:
- key_: heartbeat.ping
- type: 2
- value_type: 1
- output: extend
- search:
- key_: heartbeat.ping
- selectApplications: extend
+ key: heartbeat.ping
ztriggers:
- description: 'Heartbeat.ping has failed on {HOST.NAME}'
expression: '{Template Heartbeat:heartbeat.ping.last()}<>0'
- priority: 3
- searchWildcardsEnabled: True
- search:
- description: 'Heartbeat.ping has failed on*'
- expandExpression: True
+ priority: avg
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml b/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
index b89711632..9cc038ffa 100644
--- a/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
+++ b/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
@@ -1,248 +1,90 @@
---
g_template_os_linux:
- application:
- name: OS Linux
- output: extend
- search:
- name: OS Linux
- params:
- name: Template OS Linux
- host: Template OS Linux
- groups:
- - groupid: 1 # FIXME (not real)
- output: extend
- search:
- name: Template OS Linux
+ name: Template OS Linux
zitems:
- - hostid: null
- key_: kernel.uname.sysname
- name: kernel.uname.sysname
- search:
- key_: kernel.uname.sysname
- type: 2
- value_type: 4
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.wait.total
- name: kernel.all.cpu.wait.total
- search:
- key_: kernel.all.cpu.wait.total
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.irq.hard
- name: kernel.all.cpu.irq.hard
- search:
- key_: kernel.all.cpu.irq.hard
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.idle
- name: kernel.all.cpu.idle
- search:
- key_: kernel.all.cpu.idle
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.uname.distro
- name: kernel.uname.distro
- search:
- key_: kernel.uname.distro
- type: 2
- value_type: 4
- selectApplications: extend
- - hostid: null
- key_: kernel.uname.nodename
- name: kernel.uname.nodename
- search:
- key_: kernel.uname.nodename
- type: 2
- value_type: 4
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.irq.soft
- name: kernel.all.cpu.irq.soft
- search:
- key_: kernel.all.cpu.irq.soft
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.load.15_minute
- name: kernel.all.load.15_minute
- search:
- key_: kernel.all.load.15_minute
- type: 2
- value_type: 0
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.sys
- name: kernel.all.cpu.sys
- search:
- key_: kernel.all.cpu.sys
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.load.5_minute
- name: kernel.all.load.5_minute
- search:
- key_: kernel.all.load.5_minute
- type: 2
- value_type: 0
- selectApplications: extend
- - hostid: null
- key_: mem.freemem
- name: mem.freemem
- search:
- key_: mem.freemem
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.nice
- name: kernel.all.cpu.nice
- search:
- key_: kernel.all.cpu.nice
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: mem.util.bufmem
- name: mem.util.bufmem
- search:
- key_: mem.util.bufmem
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: swap.used
- name: swap.used
- search:
- key_: swap.used
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.load.1_minute
- name: kernel.all.load.1_minute
- search:
- key_: kernel.all.load.1_minute
- type: 2
- value_type: 0
- selectApplications: extend
- - hostid: null
- key_: kernel.uname.version
- name: kernel.uname.version
- search:
- key_: kernel.uname.version
- type: 2
- value_type: 4
- selectApplications: extend
- - hostid: null
- key_: swap.length
- name: swap.length
- search:
- key_: swap.length
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: mem.physmem
- name: mem.physmem
- search:
- key_: mem.physmem
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.uptime
- name: kernel.all.uptime
- search:
- key_: kernel.all.uptime
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: swap.free
- name: swap.free
- search:
- key_: swap.free
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: mem.util.used
- name: mem.util.used
- search:
- key_: mem.util.used
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.user
- name: kernel.all.cpu.user
- search:
- key_: kernel.all.cpu.user
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.uname.machine
- name: kernel.uname.machine
- search:
- key_: kernel.uname.machine
- type: 2
- value_type: 4
- selectApplications: extend
- - hostid: null
- key_: hinv.ncpu
- name: hinv.ncpu
- search:
- key_: hinv.ncpu
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: mem.util.cached
- name: mem.util.cached
- search:
- key_: mem.util.cached
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.cpu.steal
- name: kernel.all.cpu.steal
- search:
- key_: kernel.all.cpu.steal
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.all.pswitch
- name: kernel.all.pswitch
- search:
- key_: kernel.all.pswitch
- type: 2
- value_type: 3
- selectApplications: extend
- - hostid: null
- key_: kernel.uname.release
- name: kernel.uname.release
- search:
- key_: kernel.uname.release
- type: 2
- value_type: 4
- selectApplications: extend
- - hostid: null
- key_: proc.nprocs
- name: proc.nprocs
- search:
- key_: proc.nprocs
- type: 2
- value_type: 3
- selectApplications: extend
+ - key: kernel.uname.sysname
+ value_type: string
+
+ - key: kernel.all.cpu.wait.total
+ value_type: int
+
+ - key: kernel.all.cpu.irq.hard
+ value_type: int
+
+ - key: kernel.all.cpu.idle
+ value_type: int
+
+ - key: kernel.uname.distro
+ value_type: string
+
+ - key: kernel.uname.nodename
+ value_type: string
+
+ - key: kernel.all.cpu.irq.soft
+ value_type: int
+
+ - key: kernel.all.load.15_minute
+ value_type: float
+
+ - key: kernel.all.cpu.sys
+ value_type: int
+
+ - key: kernel.all.load.5_minute
+ value_type: float
+
+ - key: mem.freemem
+ value_type: int
+
+ - key: kernel.all.cpu.nice
+ value_type: int
+
+ - key: mem.util.bufmem
+ value_type: int
+
+ - key: swap.used
+ value_type: int
+
+ - key: kernel.all.load.1_minute
+ value_type: float
+
+ - key: kernel.uname.version
+ value_type: string
+
+ - key: swap.length
+ value_type: int
+
+ - key: mem.physmem
+ value_type: int
+
+ - key: kernel.all.uptime
+ value_type: int
+
+ - key: swap.free
+ value_type: int
+
+ - key: mem.util.used
+ value_type: int
+
+ - key: kernel.all.cpu.user
+ value_type: int
+
+ - key: kernel.uname.machine
+ value_type: string
+
+ - key: hinv.ncpu
+ value_type: int
+
+ - key: mem.util.cached
+ value_type: int
+
+ - key: kernel.all.cpu.steal
+ value_type: int
+
+ - key: kernel.all.pswitch
+ value_type: int
+
+ - key: kernel.uname.release
+ value_type: string
+
+ - key: proc.nprocs
+ value_type: int
diff --git a/playbooks/aws/openshift-cluster/tasks/launch_instances.yml b/playbooks/aws/openshift-cluster/tasks/launch_instances.yml
index 92155582e..236d84e74 100644
--- a/playbooks/aws/openshift-cluster/tasks/launch_instances.yml
+++ b/playbooks/aws/openshift-cluster/tasks/launch_instances.yml
@@ -99,7 +99,7 @@
iops: "{{ lookup('env', 'os_master_root_vol_iops') | default(500, true) }}"
node:
root:
- volume_size: "{{ lookup('env', 'os_node_root_vol_size') | default(25, true) }}"
+ volume_size: "{{ lookup('env', 'os_node_root_vol_size') | default(85, true) }}"
device_type: "{{ lookup('env', 'os_node_root_vol_type') | default('gp2', true) }}"
iops: "{{ lookup('env', 'os_node_root_vol_iops') | default(500, true) }}"
docker:
diff --git a/playbooks/aws/openshift-cluster/vars.yml b/playbooks/aws/openshift-cluster/vars.yml
index fb1793a51..95bc4b3e2 100644
--- a/playbooks/aws/openshift-cluster/vars.yml
+++ b/playbooks/aws/openshift-cluster/vars.yml
@@ -1,11 +1,11 @@
---
deployment_vars:
origin:
- # fedora, since centos requires marketplace
- image: ami-acd999c4
+ # centos-7, requires marketplace
+ image: ami-96a818fe
image_name:
region: us-east-1
- ssh_user: fedora
+ ssh_user: centos
sudo: yes
keypair: libra
type: m4.large
diff --git a/playbooks/libvirt/openshift-cluster/launch.yml b/playbooks/libvirt/openshift-cluster/launch.yml
index 6630fa27d..830f9d216 100644
--- a/playbooks/libvirt/openshift-cluster/launch.yml
+++ b/playbooks/libvirt/openshift-cluster/launch.yml
@@ -42,7 +42,7 @@
count: "{{ num_infra }}"
- include: tasks/launch_instances.yml
vars:
- instances: "{{ infra_names }}"
+ instances: "{{ node_names }}"
cluster: "{{ cluster_id }}"
type: "{{ k8s_type }}"
g_sub_host_type: "{{ sub_host_type }}"
diff --git a/playbooks/openstack/openshift-cluster/files/heat_stack.yaml b/playbooks/openstack/openshift-cluster/files/heat_stack.yaml
index a15ec749c..d53884e0d 100644
--- a/playbooks/openstack/openshift-cluster/files/heat_stack.yaml
+++ b/playbooks/openstack/openshift-cluster/files/heat_stack.yaml
@@ -16,8 +16,13 @@ parameters:
num_nodes:
type: number
- label: Number of nodes
- description: Number of nodes
+ label: Number of compute nodes
+ description: Number of compute nodes
+
+ num_infra:
+ type: number
+ label: Number of infrastructure nodes
+ description: Number of infrastructure nodes
cidr:
type: string
@@ -55,7 +60,12 @@ parameters:
node_image:
type: string
label: Node image
- description: Name of the image for the node servers
+ description: Name of the image for the compute node servers
+
+ infra_image:
+ type: string
+ label: Infra image
+ description: Name of the image for the infra node servers
master_flavor:
type: string
@@ -65,7 +75,12 @@ parameters:
node_flavor:
type: string
label: Node flavor
- description: Flavor of the node servers
+ description: Flavor of the compute node servers
+
+ infra_flavor:
+ type: string
+ label: Infra flavor
+ description: Flavor of the infra node servers
outputs:
@@ -83,15 +98,27 @@ outputs:
node_names:
description: Name of the nodes
- value: { get_attr: [ nodes, name ] }
+ value: { get_attr: [ compute_nodes, name ] }
node_ips:
description: IPs of the nodes
- value: { get_attr: [ nodes, private_ip ] }
+ value: { get_attr: [ compute_nodes, private_ip ] }
node_floating_ips:
description: Floating IPs of the nodes
- value: { get_attr: [ nodes, floating_ip ] }
+ value: { get_attr: [ compute_nodes, floating_ip ] }
+
+ infra_names:
+ description: Name of the nodes
+ value: { get_attr: [ infra_nodes, name ] }
+
+ infra_ips:
+ description: IPs of the nodes
+ value: { get_attr: [ infra_nodes, private_ip ] }
+
+ infra_floating_ips:
+ description: Floating IPs of the nodes
+ value: { get_attr: [ infra_nodes, floating_ip ] }
resources:
@@ -218,6 +245,29 @@ resources:
remote_mode: remote_group_id
remote_group_id: { get_resource: master-secgrp }
+ infra-secgrp:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ name:
+ str_replace:
+ template: openshift-ansible-cluster_id-infra-secgrp
+ params:
+ cluster_id: { get_param: cluster_id }
+ description:
+ str_replace:
+ template: Security group for cluster_id OpenShift infrastructure cluster nodes
+ params:
+ cluster_id: { get_param: cluster_id }
+ rules:
+ - direction: ingress
+ protocol: tcp
+ port_range_min: 80
+ port_range_max: 80
+ - direction: ingress
+ protocol: tcp
+ port_range_min: 443
+ port_range_max: 443
+
masters:
type: OS::Heat::ResourceGroup
properties:
@@ -248,7 +298,7 @@ resources:
cluster_id: { get_param: cluster_id }
depends_on: interface
- nodes:
+ compute_nodes:
type: OS::Heat::ResourceGroup
properties:
count: { get_param: num_nodes }
@@ -257,12 +307,14 @@ resources:
properties:
name:
str_replace:
- template: cluster_id-k8s_type-%index%
+ template: cluster_id-k8s_type-sub_host_type-%index%
params:
cluster_id: { get_param: cluster_id }
k8s_type: node
+ sub_host_type: compute
cluster_id: { get_param: cluster_id }
type: node
+ subtype: compute
image: { get_param: node_image }
flavor: { get_param: node_flavor }
key_name: { get_resource: keypair }
@@ -277,3 +329,36 @@ resources:
params:
cluster_id: { get_param: cluster_id }
depends_on: interface
+
+ infra_nodes:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: num_infra }
+ resource_def:
+ type: heat_stack_server.yaml
+ properties:
+ name:
+ str_replace:
+ template: cluster_id-k8s_type-sub_host_type-%index%
+ params:
+ cluster_id: { get_param: cluster_id }
+ k8s_type: node
+ sub_host_type: infra
+ cluster_id: { get_param: cluster_id }
+ type: node
+ subtype: infra
+ image: { get_param: infra_image }
+ flavor: { get_param: infra_flavor }
+ key_name: { get_resource: keypair }
+ net: { get_resource: net }
+ subnet: { get_resource: subnet }
+ secgrp:
+ - { get_resource: node-secgrp }
+ - { get_resource: infra-secgrp }
+ floating_network: { get_param: external_net }
+ net_name:
+ str_replace:
+ template: openshift-ansible-cluster_id-net
+ params:
+ cluster_id: { get_param: cluster_id }
+ depends_on: interface
diff --git a/playbooks/openstack/openshift-cluster/files/heat_stack_server.yaml b/playbooks/openstack/openshift-cluster/files/heat_stack_server.yaml
index 55f64211a..9dcab3e60 100644
--- a/playbooks/openstack/openshift-cluster/files/heat_stack_server.yaml
+++ b/playbooks/openstack/openshift-cluster/files/heat_stack_server.yaml
@@ -19,6 +19,12 @@ parameters:
label: Type
description: Type master or node
+ subtype:
+ type: string
+ label: Sub-type
+ description: Sub-type compute or infra for nodes, default otherwise
+ default: default
+
key_name:
type: string
label: Key name
@@ -102,11 +108,12 @@ resources:
env: { get_param: cluster_id }
host-type: { get_param: type }
env-host-type:
- str_template:
+ str_replace:
template: cluster_id-openshift-type
params:
cluster_id: { get_param: cluster_id }
type: { get_param: type }
+ sub-host-type: { get_param: subtype }
port:
type: OS::Neutron::Port
diff --git a/playbooks/openstack/openshift-cluster/launch.yml b/playbooks/openstack/openshift-cluster/launch.yml
index d41448dc0..d36bdbf26 100644
--- a/playbooks/openstack/openshift-cluster/launch.yml
+++ b/playbooks/openstack/openshift-cluster/launch.yml
@@ -90,7 +90,7 @@
ansible_ssh_host: '{{ item[2] }}'
ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user }}"
ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}"
- groups: 'tag_env_{{ cluster_id }}, tag_host-type_node, tag_env-host-type_{{ cluster_id }}-openshift-node, tag_sub-host-type_node'
+ groups: 'tag_env_{{ cluster_id }}, tag_host-type_node, tag_env-host-type_{{ cluster_id }}-openshift-node, tag_sub-host-type_compute'
with_together:
- parsed_outputs.node_names
- parsed_outputs.node_ips
@@ -115,6 +115,7 @@
with_flattened:
- parsed_outputs.master_floating_ips
- parsed_outputs.node_floating_ips
+ - parsed_outputs.infra_floating_ips
- name: Wait for user setup
command: 'ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null {{ deployment_vars[deployment_type].ssh_user }}@{{ item }} echo {{ deployment_vars[deployment_type].ssh_user }} user is setup'
@@ -125,6 +126,7 @@
with_flattened:
- parsed_outputs.master_floating_ips
- parsed_outputs.node_floating_ips
+ - parsed_outputs.infra_floating_ips
- include: update.yml