VTA yml config
The snippet can be accessed without any authentication.
Authored by
James Orman
Edited
heat_template_version: 2018-03-02
description: Student Op Stations - This is the Unified Student Ops Station YAML. Module configurations are made with each modules setup script and not in this YAML.
parameters:
domain:
type: string
label: Domain
description: Set as '10.50.255.254' for VTA or '172.20.255.254' for VTA-DEV
default: 10.50.255.254
hidden: false
package_proxy:
type: string
label: the URL for the package cache
default: "http://pkg-cache.bbh.cyberschool.army.mil:3142"
username:
type: string
label: User Name
description: Sets the login username for the instances
default: student
hidden: false
password:
type: string
label: Password
description: Sets the Login Password for the instances
default: password
hidden: true
vncpass:
type: string
label: VNC-Password
description: Sets the regular VNC connection password
default: password
hidden: true
view_only_password:
type: string
label: View-Only-Password
description: Sets the VNC View Only Password for the instances
default: view_only_password
hidden: true
resources:
rand_string:
type: OS::Heat::RandomString
properties:
length: 4
# ----- Ops Network Configuration Start ----- #
ops_network:
type: OS::Neutron::Net
properties:
name:
str_replace:
template: ops_network_RAND
params:
RAND: { get_resource: rand_string }
admin_state_up: true
shared: false
ops_subnet:
type: OS::Neutron::Subnet
depends_on: ops_network
properties:
cidr: 192.168.65.0/27
gateway_ip: 192.168.65.30
dns_nameservers: [{ get_param: domain }]
enable_dhcp: true
host_routes: [ ]
ip_version: 4
name:
str_replace:
template: ops_subnet_RAND
params:
RAND: { get_resource: rand_string }
network_id:
get_resource: ops_network
# ----- Ops Network Configuration End ----- #
# ----- Ops Router Configuration Start ----- #
ops_neutron_router:
type: OS::Neutron::Router
properties:
name:
str_replace:
template: ops_neutron_router_RAND
params:
RAND: { get_resource: rand_string }
external_gateway_info:
network: public
ops_neutron_router_interface:
type: OS::Neutron::RouterInterface
properties:
router_id: { get_resource: ops_neutron_router }
subnet_id: { get_resource: ops_subnet }
# ----- Ops Router Configuration Start ----- #
# ----- Windows Analyst Workstation Configuration Start ----- #
# Update notes 10/28/2022: The code below in the template section is left in for refrence as the win_ops_v2 includes this code and #is redundant.
# Additionally; changes made are minor; added VSCode with powershell extension. Updated Powershell help.
windows_opstation:
type: OS::Nova::Server
properties:
diskConfig: AUTO
flavor: cy.win_64
image: win_ops
name:
str_replace:
template: windows_opstation_RAND
params:
RAND: { get_resource: rand_string }
networks:
- port: { get_resource: windows_opstation_port }
user_data_format: RAW
user_data:
str_replace:
template: |
#ps1_sysnative
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
# ---- Allows for creating alternate users other than student
if ("$user" -ne "student"){
New-LocalUser -Name "$user" -Password (ConvertTo-SecureString -AsPlaintext -String "$pass" -Force)
Add-LocalGroupMember -Group "Administrators" -Member "$user"
Remove-LocalUser -Name "student"
}
#----Rename computer
Rename-computer -newname "win-ops"
exit 1001
params:
$user: { get_param: username }
$pass: { get_param: password }
$vncpass: { get_param: vncpass }
$vncviewpass: { get_param: view_only_password }
$domain: { get_param: domain}
# ----- Windows Analyst Workstation Configuration End ----- #
# ----- Windows Analyst Workstation Port Configuration Start ----- #
windows_opstation_port:
type: OS::Neutron::Port
description: Windows OpStation IP
properties:
name:
str_replace:
template: windows_opstation_port_RAND
params:
RAND: { get_resource: rand_string }
network_id: { get_resource: ops_network }
fixed_ips:
#- subnet_id: {get_resource: ops_subnet }
- ip_address: 192.168.65.10
port_security_enabled: false
windows_opstation_float_ip:
type: OS::Neutron::FloatingIP
description: Windows OpStation Floating IP
depends_on: ops_neutron_router
properties: { floating_network: public }
windows_opstation_float_ip_assoc:
type: OS::Neutron::FloatingIPAssociation
depends_on: ops_neutron_router_interface
properties:
floatingip_id: { get_resource: windows_opstation_float_ip }
port_id: { get_resource: windows_opstation_port }
# ----- Windows Analyst Workstation Port Configuration End ----- #
# ----- Linux Analyst Workstation Configuration Start ----- #
linux_opstation:
type: OS::Nova::Server
properties:
name:
str_replace:
template: linux_opstation_RAND
params:
RAND: { get_resource: rand_string }
image: nix_ops
flavor: cy.xlarge2
networks:
- port: { get_resource: linux_opstation_port }
diskConfig: AUTO
config_drive: true
user_data_format: RAW
user_data:
str_replace:
template: |
#!/bin/bash
#------ Purge at next image cycle
# SPICE driver fix
echo "X-GNOME-Autostart-enabled=false" | tee /etc/xdg/autostart/spice-vdagent.desktop /usr/share/gdm/autostart/LoginWindow/spice-vdagent.desktop > /dev/null
systemctl stop spice-vdagent
systemctl disable spice-vdagent
#
if [[ "$user" != "student" ]]
then
useradd -m -U -s /bin/bash $user
usermod -aG sudo $user
echo "$user:$pass" | chpasswd
#userdel -r student
fi
hostnamectl set-hostname lin-ops
#------ Purge at next image cycle
echo 'Acquire::http { Proxy "$packageproxy"; }' >> /etc/apt/apt.conf.d/00aptproxy
sed -i 's/nova.clouds.archive.ubuntu.com/atl.mirrors.clouvider.net/g' /etc/apt/sources.list
apt-get update -y
apt-get install gcc-multilib mingw-w64 mingw-w64-common mingw-w64-i686-dev mingw-w64-tools mingw-w64-tools mingw-w64-x86-64-dev john eom -y
runuser -l student -c 'pip install lxml requests'
apt install python-openstackclient -y
apt install python-heatclient -y
#
params:
$user: { get_param: username }
$pass: { get_param: password }
$vncpass: { get_param: vncpass }
$vncviewpass: { get_param: view_only_password }
$domain: { get_param: domain}
$packageproxy: { get_param: package_proxy }
# ----- Linux Analyst Workstation Configuration End ----- #
# ----- Linux Analyst Workstation Port Configuration Start ----- #
linux_opstation_port:
type: OS::Neutron::Port
description: Linux OpStation IP
properties:
name:
str_replace:
template: linux_opstation_port_RAND
params:
RAND: { get_resource: rand_string }
network_id: { get_resource: ops_network }
fixed_ips:
#- subnet_id: {get_resource: ops_subnet }
- ip_address: 192.168.65.20
port_security_enabled: false
linux_opstation_float_ip:
type: OS::Neutron::FloatingIP
description: Linux OpStation Floating IP
depends_on: ops_neutron_router
properties: { floating_network: public }
linux_opstation_float_ip_assoc:
type: OS::Neutron::FloatingIPAssociation
depends_on: ops_neutron_router_interface
properties:
floatingip_id: { get_resource: linux_opstation_float_ip }
port_id: { get_resource: linux_opstation_port }
# ----- Linux Analyst Workstation Configuration End ----- #
Please register or sign in to comment