From 0a123abbcb657def9d5a37ba4b424a28e10b6954 Mon Sep 17 00:00:00 2001 From: Marius Pana Date: Wed, 28 Oct 2015 16:37:02 +0200 Subject: [PATCH] initial commit playbooks, scripts, etc. from the 2nd check_mk conference in munich, germany. --- README.md | 84 +++++++++++++++++++++++ bootstrap.yml | 7 ++ cmkconfinv | 9 +++ loadbalancers.yml | 7 ++ omd.yml | 7 ++ roles/common/files/ssh_keys/mariusp.pub | 1 + roles/common/handlers/main.yml | 15 ++++ roles/common/tasks/main.yml | 73 ++++++++++++++++++++ roles/common/vars/usersandpsks.yml | 8 +++ roles/loadbalancers/files/check_ha.sh | 24 +++++++ roles/loadbalancers/files/haproxy.cfg.j2 | 57 +++++++++++++++ roles/loadbalancers/handlers/main.yml | 29 ++++++++ roles/loadbalancers/tasks/main.yml | 22 ++++++ roles/omd/tasks/main.yml | 27 ++++++++ roles/omd/vars/main.yml | 7 ++ roles/webservers/files/konf.jpg | Bin 0 -> 86984 bytes roles/webservers/files/status.conf.j2 | 6 ++ roles/webservers/handlers/main.yml | 20 ++++++ roles/webservers/tasks/main.yml | 36 ++++++++++ roles/webservers/templates/index.html.j2 | 16 +++++ site.yml | 5 ++ webservers.yml | 7 ++ 22 files changed, 467 insertions(+) create mode 100644 README.md create mode 100644 bootstrap.yml create mode 100644 cmkconfinv create mode 100644 loadbalancers.yml create mode 100644 omd.yml create mode 100644 roles/common/files/ssh_keys/mariusp.pub create mode 100644 roles/common/handlers/main.yml create mode 100644 roles/common/tasks/main.yml create mode 100644 roles/common/vars/usersandpsks.yml create mode 100644 roles/loadbalancers/files/check_ha.sh create mode 100644 roles/loadbalancers/files/haproxy.cfg.j2 create mode 100644 roles/loadbalancers/handlers/main.yml create mode 100644 roles/loadbalancers/tasks/main.yml create mode 100644 roles/omd/tasks/main.yml create mode 100644 roles/omd/vars/main.yml create mode 100644 roles/webservers/files/konf.jpg create mode 100644 roles/webservers/files/status.conf.j2 create mode 100644 roles/webservers/handlers/main.yml create mode 100644 roles/webservers/tasks/main.yml create mode 100644 roles/webservers/templates/index.html.j2 create mode 100644 site.yml create mode 100644 webservers.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..36e4824 --- /dev/null +++ b/README.md @@ -0,0 +1,84 @@ +# INTRO +These are ansible playbooks used for deploying an OMD instance as well as a simple haproxy and two web servers. These are the playbooks that were used by Marius Pana at the 2nd Check_MK conference in Munich, Germany. The presentation will be made available online shortly for those that are interested. + +Alert handlers (as defined by Check_MK) can be used from within Check_MK to signal the execution of specific handlers (as defined by Ansible) from the ansible playbooks so as to provide a simple feedback loop which provides self healing. + +*We are still looking for a good mapping of services between check_mk and ansible. One solution that was recommended was the use of service attributes(nagios macros) which could then be mapped one-to-one with ansible tags. As soon as we have something functional we will update this. If anyone else has ideas we are interested in hearing them.* + +These examples are fairly simple but can and should be expanded to include more logic for repairing your specific systems/services. We intended these as a starting point. + +## About these playbooks +We are assuming you are using a RedHat based distro. These playbooks will deploy for you an OMD instance on a freshly installed system, they will configure an HAProxy for load balancing between two apache web servers. + +We do not do the initial provisioning via these playbooks but this could be included in the future (i.e. deploy to joyent, cobbler or others). In other words we expect that you have the systems freshly installed and configured with a root user that is allowed SSH access as defined in the cmkconfinv (inventory) file. + +### ansible inventory file +The cmkconvinf file contains our inventory. In it we define three groups of hosts, a variable named folder which is the OMD folder we create via the WATO API for the respective host(s) and the IP address where these hosts can be reached. + +You must have these installed and configured before running these playbooks. You will also need to know the root user password. + +## Prerequisites +Make sure you change the users and ssh keys via the common role. Upload you ssh keys in roles/common/files and edit roles/common/vars/usersandpsks.yml. + +### Ansible +You will need a functional ansible set-up. Setting it up can be as easy as cloning the ansible repo or installing via your operating system package manager. More information about installing ansible can be found here: http://docs.ansible.com/ansible/intro_installation.html . + +You will also need to clone this repository to play around with these playbooks. + +### Check_MK +We are assuming you are using the CEE (Check_MK Enterprise Edition). While this should work with any recent version of Check_MK we are specifically targeting the use of the current innovation branch (1.2.7i) because of the new Alert Handlers (Werk #8275). + +If you would like to deploy your OMD instance via these playbooks you will need to download Check_MK CEE in RPM format and place it in the following directory: + +> roles/omd/files + +## Deploying OMD via Ansible +This is a very simple way to deploy an OMD instance and create a site named "prod". The following command will deploy OMD to your preinstalled server. It will prompt for the root users password (-k). + +> ansible-playbook -i cmkconfinv site.yml -l omd -u root -k --skip-tags check_mk_agent,check_mk_discovery,check_mk_apply + +Notice the use of the --skip-tags switch which is necessary as in this first run we do not have an OMD instance running from which to pull the agent, discovery, etc. + +You now need to create an Automation user in our Check_MK site and use that information in the roles/omd/vars/main.yml file. + +Now we can deploy the check_mk_agent to our monitoring instance as well. Notice we are running just the check_mk_agent, discovery and pply steps now. Also after bootstrapping your system you can use your own user if you created one and uploaded the ssh keys. In this case you could use ansible with sudo (-u -s instead of -u root). + +> ansible-playbook -i cmkconfinv site.yml -l omd -u root --tags check_mk_agent,check_mk_discovery,check_mk_apply + + +## Deploying the webserver and loadbalancer +The following will configure your webservers and loadbalancer. It will prompt for the root users password (-k). Once it is done you should have in your OMD instance 4 hosts (1 omd, 2 web servers and one lb) and their services monitored. + +> ansible-playbook -i cmkconfinv site.yml -l loadbalancers,webservers -u root -k + +## Check_MK Alert Handlers +We have created two alert handlers to showcase two different scenarios: + +1. services.sh - Restarting of apache web services if they are failed +2. instantiate.sh - Deploying a loadbalancer if it fails (state DOWN) + +These are specific to the setup we were using for the presentation at the conference however they serve as a good starting point. + +Add the following two Alert Handlers to your Check_MK site and place the scripts in ~/local/share/check_mk/alert_handlers (make sure they are executable): + +services.sh +![image of services.sh ](http://i67.tinypic.com/jgqqzm.png) +``` +#!/bin/bash +ansible-playbook -i /omd/sites/prod/ansible/cmkconfinv /omd/sites/prod/ansible/site.yml -l webservers -u root --tags httpd +``` + +instantiate.sh +![image of instantiate.sh ](http://i65.tinypic.com/14c9s8w.png) +``` +#!/bin/bash +ssh root@10.88.88.145 vmadm create -f /etc/zones/loadbalancer.json + +ansible-playbook -i /omd/sites/prod/ansible/cmkconfinv /omd/sites/prod/ansible/site.yml -l loadbalancers -u root +``` +The first line is specific to my setup which is using SmartOS available at 10.88.88.145. There I have already created a manifest file (loadbalancer.json) to create a loadbalancer instance. You will want to change this for your particular set-up. + +## TODO +You may notice an extra two check_mk checks named up_upscale and down_scale on your loadbalancer instance. These are not finished yet however they are an example of how you could use check_mk and ansible to do autoscaling. Based on feedback received via your monitoring you can bring up or down more instances effectively doing autoscaling. This is a work in progress and will be updated in the near future. The ansible tags are add_backend and del_backend, these may be useful if you plan on extending these. + +There are certainly more things to be done here ... diff --git a/bootstrap.yml b/bootstrap.yml new file mode 100644 index 0000000..2355a79 --- /dev/null +++ b/bootstrap.yml @@ -0,0 +1,7 @@ +--- +# file: bootstrap.yml +- hosts: all + #vars: + vars_files: [roles/common/vars/usersandpsks.yml, roles/omd/vars/main.yml] + roles: + - common diff --git a/cmkconfinv b/cmkconfinv new file mode 100644 index 0000000..915893d --- /dev/null +++ b/cmkconfinv @@ -0,0 +1,9 @@ +[loadbalancers] +lb01 ansible_ssh_host=10.88.88.127 folder=loadbalancers + +[webservers] +web1 ansible_ssh_host=10.88.88.128 folder=webservers +web2 ansible_ssh_host=10.88.88.129 folder=webservers + +[omd] +omd ansible_ssh_host=10.88.88.150 folder=omd diff --git a/loadbalancers.yml b/loadbalancers.yml new file mode 100644 index 0000000..d97fd1f --- /dev/null +++ b/loadbalancers.yml @@ -0,0 +1,7 @@ +--- +# file: loadbalancers.yml +- hosts: loadbalancers + vars_files: [roles/common/vars/usersandpsks.yml, roles/omd/vars/main.yml] + roles: + - common + - loadbalancers diff --git a/omd.yml b/omd.yml new file mode 100644 index 0000000..634404c --- /dev/null +++ b/omd.yml @@ -0,0 +1,7 @@ +--- +# file: omd.yml +- hosts: omd + #vars: + #vars_files: + roles: + - omd diff --git a/roles/common/files/ssh_keys/mariusp.pub b/roles/common/files/ssh_keys/mariusp.pub new file mode 100644 index 0000000..694f8e5 --- /dev/null +++ b/roles/common/files/ssh_keys/mariusp.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/asZXkhLJVGIcPQGUxZDLl/yMwslgn6GyJd6QGKUmR+Snr1hMz01y7WEWPvfXXUqNym6rMU5fAMUr+alcyzMGZYKyymTLfjgp0SUuWG3TGpl3EPxnfGwNcXOvuJE9cnY0q3nhZgQjvn6EdEFDKAmLG1WXlKYjbQUUrHp0wFvEx3TNIXMVJqHxbKi8Uwyvn5EB1emdeJkaAaXJbk1TxALu400Ts0KYJUUyMn5njJjVELwtPVsnb0skmKSXd4dgBLN+wo94YQLpdfCnmho0uPhZfTHHi0+jtJNtUSycOSuOr/TxYGirxOYcb5FoOvzg9L0RyQAj6O+Hzs3RkHB+qast mariusp@marduk.local diff --git a/roles/common/handlers/main.yml b/roles/common/handlers/main.yml new file mode 100644 index 0000000..079c4f1 --- /dev/null +++ b/roles/common/handlers/main.yml @@ -0,0 +1,15 @@ +--- +# file: roles/common/handlers/main.yml +- name: restart ntp + service: name=ntp state=restarted + tags: + - ntpd + +- name: restart xinetd + service: name=xinetd state=restarted + tags: xinetd + +- name: restart sshd + service: name=sshd state=restarted + tags: + - sshd diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml new file mode 100644 index 0000000..31c70b9 --- /dev/null +++ b/roles/common/tasks/main.yml @@ -0,0 +1,73 @@ +--- +# file: roles/common/tasks/main.yml +- name: make sure ntp,epel,etc. are installed + yum: pkg={{ item }} state=installed + with_items: + - ntp + - xinetd + - epel-release + #- screen + #- vim-enhanced + #- mc + tags: packages + +- name: add sphs group + action: group name=sphs state=present + +- name: add our users + action: user name={{ item }} groups=sphs state=present append=yes + with_items: usersAdd + when: item != 'none' + +- name: Add SSH public key to user mariusp + action: authorized_key user=mariusp key="{{ lookup('file', "../files/ssh_keys/mariusp.pub") }}" + +- name: Remove users + action: user name={{ item }} state=absent remove=yes + with_items: usersDel + when: item != 'none' + +# Enable sudo for sphs group with no password +- name: Enable sudo without password for sudo group + action: 'lineinfile "dest=/etc/sudoers" state=present regexp="^%sphs ALL" line="%sphs ALL=(ALL) NOPASSWD: ALL"' + +- name: install check_mk agent + yum: pkg=http://{{ omdhost }}/{{ omdsite }}/check_mk/agents/{{ rpmagent }} state=installed + tags: + - check_mk_agent + +# change to get_uri - do some error checking +- name: add host to omd + uri: + method: POST + body_format: json + url: http://{{omdhost}}/{{omdsite}}/check_mk/webapi.py?action=add_host&_username={{automationuser}}&_secret={{autosecret}} + body: 'request={"attributes":{"alias":"{{inventory_hostname}}","ipaddress":"{{ansible_default_ipv4["address"]}}"},"hostname":"{{inventory_hostname}}","folder":"{{folder}}"}' + delegate_to: 127.0.0.1 + tags: + - check_mk_agent + notify: + - cmk_discovery + - cmk_apply + +- name: cmk_discovery + uri: + method: POST + url: http://{{ omdhost }}/{{ omdsite }}/check_mk/webapi.py?action=discover_services&_username={{ automationuser }}&_secret={{ autosecret }}&mode=refresh + body: 'request={"hostname":"{{ inventory_hostname }}"}' + body_format: json + status_code: 200 + tags: + - check_mk_discovery + delegate_to: 127.0.0.1 + +- name: cmk_apply + uri: + method: POST + url: http://{{ omdhost }}/{{ omdsite }}/check_mk/webapi.py?action=activate_changes&_username={{ automationuser }}&_secret={{ autosecret }}&mode=specific + body: request={"sites":["{{ omdsite }}"]} + body_format: json + status_code: 200 + tags: + - check_mk_apply + delegate_to: 127.0.0.1 diff --git a/roles/common/vars/usersandpsks.yml b/roles/common/vars/usersandpsks.yml new file mode 100644 index 0000000..059f83a --- /dev/null +++ b/roles/common/vars/usersandpsks.yml @@ -0,0 +1,8 @@ +--- +usersAdd: + - mariusp +usersDel: + - none +usersPSK: + - name: mariusp + psk: ["../files/ssh_keys/mariusp.pub"] diff --git a/roles/loadbalancers/files/check_ha.sh b/roles/loadbalancers/files/check_ha.sh new file mode 100644 index 0000000..b1e599c --- /dev/null +++ b/roles/loadbalancers/files/check_ha.sh @@ -0,0 +1,24 @@ +#!/bin/bash +CONN=`echo "show info" | socat /var/lib/haproxy/stats stdio |grep CurrConns | cut -d' ' -f2` +SRVS=`cat /etc/haproxy/haproxy.cfg |grep check | grep server |wc -l` +if [ $CONN = 0 ]; then + CONN=4 +fi +if [ $SRVS = 0 ]; then + echo "<<>>" + echo "up_scale 1000" + echo "<<>>" + echo "down_scale 1000" +else + let "CONNPERSRV=$CONN/$SRVS" + echo "<<>>" + echo "up_scale $CONNPERSRV" + if [ $SRVS -le 2 ]; then + echo "<<>>" + echo "down_scale 16" + else + echo "<<>>" + echo "down_scale $CONNPERSRV" + fi + +fi diff --git a/roles/loadbalancers/files/haproxy.cfg.j2 b/roles/loadbalancers/files/haproxy.cfg.j2 new file mode 100644 index 0000000..ea75cc9 --- /dev/null +++ b/roles/loadbalancers/files/haproxy.cfg.j2 @@ -0,0 +1,57 @@ +global + log 127.0.0.1 local2 + chroot /var/lib/haproxy + pidfile /var/run/haproxy.pid + maxconn 4000 + user haproxy + group haproxy + daemon + stats socket /var/lib/haproxy/stats mode 644 level admin + stats timeout 2m + +#--------------------------------------------------------------------- +# common defaults that all the 'listen' and 'backend' sections will +# use if not designated in their block +#--------------------------------------------------------------------- +defaults + mode http + log global + option httplog + option dontlognull + option http-server-close + option forwardfor except 127.0.0.0/8 + option redispatch + retries 3 + timeout http-request 10s + timeout queue 1m + timeout connect 10s + timeout client 1m + timeout server 1m + timeout http-keep-alive 10s + timeout check 10s + maxconn 3000 + +#--------------------------------------------------------------------- +# main frontend which proxys to the backends +#--------------------------------------------------------------------- +frontend main *:5000 + acl url_static path_beg -i /static /images /javascript /stylesheets + acl url_static path_end -i .jpg .gif .png .css .js + + #use_backend static if url_static + #default_backend appname + +## +listen appname 0.0.0.0:80 + mode http + stats enable + stats uri /haproxy?stats + stats realm Strictly\ Private + stats auth marius:marius + balance roundrobin + option httpclose + option forwardfor + # we are adding our hosts manually .. + # we could populate this dynamically from our inventory + server web1 10.88.88.128:80 check + server web2 10.88.88.129:80 check diff --git a/roles/loadbalancers/handlers/main.yml b/roles/loadbalancers/handlers/main.yml new file mode 100644 index 0000000..d2c9b73 --- /dev/null +++ b/roles/loadbalancers/handlers/main.yml @@ -0,0 +1,29 @@ +--- +- name: restart haproxy + service: name=haproxy state=restarted + tags: haproxy + +#la executie scriptul va seta cu -e o noua variabila de genul new_server=' server web2 10.88.88.129:80 check' + +- name: add_backend + action: 'lineinfile "dest=/etc/haproxy/haproxy.cfg" state=present regexp="{{new_server}}" line="{{new_Server}}"' + tags: + - add_backend + +#la executie scriptul va seta cu -e o noua variabila de genul old_server=' server web2 10.88.88.129:80 check' +- name: del_backend + action: 'lineinfile "dest=/etc/haproxy/haproxy.cfg" state=absent regexp="{{old_server}}" line="{{old_Server}}"' + tags: + - del_backend + +- name: cmk_discovery + command: curl 'http://{{ omdhost }}/{{ omdsite }}/check_mk/webapi.py?action=discover_services&_username={{ automationuser }}&_secret={{ autosecret }}&mode=refresh' -d 'request={"hostname":"{{ inventory_hostname }}"}' + tags: + - check_mk_agent + - check_mk_discovery + +- name: cmk_apply + command: curl 'http://{{ omdhost }}/{{ omdsite }}/check_mk/webapi.py?action=activate_changes&_username={{ automationuser }}&_secret={{ autosecret }}&mode=specific' -d 'request={"sites":["{{ omdsite }}"]}' + tags: + - check_mk_agent + - check_mk_discovery diff --git a/roles/loadbalancers/tasks/main.yml b/roles/loadbalancers/tasks/main.yml new file mode 100644 index 0000000..899d49b --- /dev/null +++ b/roles/loadbalancers/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: make sure haproxy and socat is installed + yum: name={{ item}} state=latest + with_items: + - socat + - haproxy + tags: packages + +- name: copy haproxy configuration files + copy: src=../files/haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg backup=yes mode=0644 + notify: + - restart haproxy + +- name: deploy ha_check.sh (autoscale) + copy: src=../files/check_ha.sh dest=/usr/lib/check_mk_agent/plugins/check_sa.sh mode=755 + tags: check_sa + notify: + - cmk_discovery + - cmk_apply + +- name: enable haproxy + service: name=haproxy enabled=yes state=started diff --git a/roles/omd/tasks/main.yml b/roles/omd/tasks/main.yml new file mode 100644 index 0000000..a0a9ca2 --- /dev/null +++ b/roles/omd/tasks/main.yml @@ -0,0 +1,27 @@ +--- +# file: roles/common/tasks/main.yml +# we need omd host/site from omd role +- include_vars: roles/omd/vars/main.yml + +- name: make sure epel is installed + yum: pkg={{ item }} state=installed + with_items: + - epel-release + tags: packages + +- name: upload omd package + copy: src=roles/omd/files/check-mk-enterprise-1.2.7i3p1-el6-36.x86_64.rpm dest=/tmp + +- name: install omd server + yum: name=/tmp/check-mk-enterprise-1.2.7i3p1-el6-36.x86_64.rpm state=present + +# might be nice to create ansible module for omd +- name: create prod instance + command: /usr/bin/omd create prod + tags: + - omdcreate + +- name: start our prod instance + command: /usr/bin/omd start prod + tags: + - omdstart diff --git a/roles/omd/vars/main.yml b/roles/omd/vars/main.yml new file mode 100644 index 0000000..c56c487 --- /dev/null +++ b/roles/omd/vars/main.yml @@ -0,0 +1,7 @@ +--- +automationuser: "automaton" +autosecret: "GUVKRNECLRGFBTQJCRFY" +omdhost: "10.88.88.150" +#omdhost: "192.168.217.129" +omdsite: "prod" +rpmagent: "check-mk-agent-1.2.7i3p1-1.noarch.rpm" diff --git a/roles/webservers/files/konf.jpg b/roles/webservers/files/konf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fd91efeac052dccb90cc76bd9412eb88a0356080 GIT binary patch literal 86984 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 + SetHandler server-status + Order deny,allow + Deny from all + Allow from 10.88.88.150 127.0.0.1 ::1 + diff --git a/roles/webservers/handlers/main.yml b/roles/webservers/handlers/main.yml new file mode 100644 index 0000000..df85424 --- /dev/null +++ b/roles/webservers/handlers/main.yml @@ -0,0 +1,20 @@ +--- +- name: restart httpd + service: name=httpd state=restarted + tags: + - httpd + notify: + - cmk_discovery + - cmk_apply + +- name: cmk_discovery + command: curl 'http://{{ omdhost }}/{{ omdsite }}/check_mk/webapi.py?action=discover_services&_username={{ automationuser }}&_secret={{ autosecret }}&mode=refresh' -d 'request={"hostname":"{{ inventory_hostname }}"}' + tags: + - check_mk_agent + - check_mk_discovery + +- name: cmk_apply + command: curl 'http://{{ omdhost }}/{{ omdsite }}/check_mk/webapi.py?action=activate_changes&_username={{ automationuser }}&_secret={{ autosecret }}&mode=specific' -d 'request={"sites":["{{ omdsite }}"]}' + tags: + - check_mk_agent + - check_mk_discovery diff --git a/roles/webservers/tasks/main.yml b/roles/webservers/tasks/main.yml new file mode 100644 index 0000000..13f45a8 --- /dev/null +++ b/roles/webservers/tasks/main.yml @@ -0,0 +1,36 @@ +--- +- name: make sure httpd is installed + yum: name=httpd state=latest + tags: httpd + +- name: enable httpd + service: name=httpd enabled=yes state=started + tags: + - httpd + +- name: enable http status + copy: src=../files/status.conf.j2 dest=/etc/httpd/conf.d/status.conf backup=yes mode=0644 + notify: + - restart httpd + tags: + - http_status + - cmk_discovery + - cmk_apply + +- name: add apache_status plugin + get_url: url=http://{{ omdhost }}/{{ omdsite }}/check_mk/agents/plugins/apache_status dest=/usr/lib/check_mk_agent/plugins/apache_status mode=0755 + tags: + - apache_status + notify: + - cmk_discovery + - cmk_apply + +- name: copy images to sites + copy: src=../files/konf.jpg dest=/var/www/html/ mode=0644 + tags: + - webcontent + +- name: copy index.html to sites + template: src=../templates/index.html.j2 dest=/var/www/html/index.html mode=0644 + tags: + - webcontent diff --git a/roles/webservers/templates/index.html.j2 b/roles/webservers/templates/index.html.j2 new file mode 100644 index 0000000..b91c123 --- /dev/null +++ b/roles/webservers/templates/index.html.j2 @@ -0,0 +1,16 @@ + + +Welcome to the 2ND Check_MK Conference! + + + + +
+
+Welcome to the 2ND Check_MK Conference! +
+ +

Im running on {{ inventory_hostname }}.

+

Running on {{ ansible_os_family }} ;-}

+ + diff --git a/site.yml b/site.yml new file mode 100644 index 0000000..8431a9f --- /dev/null +++ b/site.yml @@ -0,0 +1,5 @@ +--- +- include: bootstrap.yml +- include: webservers.yml +- include: loadbalancers.yml +- include: omd.yml diff --git a/webservers.yml b/webservers.yml new file mode 100644 index 0000000..bab7828 --- /dev/null +++ b/webservers.yml @@ -0,0 +1,7 @@ +--- +# file: webservers.yml +- hosts: webservers + vars_files: [roles/common/vars/usersandpsks.yml, roles/omd/vars/main.yml] + roles: + - common + - webservers