#
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#

---
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/ampgateway"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/csbglsu"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/ddstudio"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/distantreader"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/epwgateway"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/gatech"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/georgiastate"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/hubzero"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/interactwel"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/iugateway"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/iugeosurvey"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/kentucky"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/lsu"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/mines"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/nanoconfinement"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/nanoshape"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/NCSAIndustry"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/newmexicostate"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/nexttdb"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/oscer"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/pfec-hydro"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/phasta"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/r-hpc"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/rutgersgemr"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/saverx"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/scigap"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/sdstate"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/seagrid"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/searchingSRA"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/simvascular"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/southdakota"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/southernillinois"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/testdrive"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/uab"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/ultrascan"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/wvsu"
...
