# DIT VMware notes 2024-06-06 https://bsv-vcsa-s1.nerc-bas.ac.uk/ - hardware and structure - orchestration, provisioning for dev - free at the point of use, engaging IT for requirements, dev cluster, roll your own - orchestration, provisioning for IT - spacewalk, puppet, access # Hardware and Structure *Visible to elevated users:* + There are dev (`AMD Dev`) and production (`AMD Production`, not visible to DIT users) clusters within the VMware estate + Also storage platforms (also not visible to us) + Networks: + Also only visible to elevated users + vmware presents a virtual network *Network card not visible to non-elevated users* + (matt) - when James added network connection to my VM, I still couldn't see or select a connection but it was detected as (plugged in) vSphere Interface: + Can view as machines, folders, storage, network - suggest using folder structure generally + Currently can only see `Dev`>`Digital Innovation` + Network view: 'dev' and 'staging network' - **we don't have privileges here at present** (James to ping service desk re: this) + Storage options are redundant + Walkthrough: + right-click `Digital Innovation` > `New Virtual Machine` + can make our own machines (not supported by IT), IT can also make them for us (are supported) + `Create a new virtual machine` > give a name, e.g. `bsl-<username>-<some-identifier>` + Compute resource: Select a Compute resource, e.g. Dev + storage: select storage, prob best to pick one with most free space + Compatibility: default + OS: Select OS we're likely to use (Recommend Rocky). + IT transitioning to Rocky 9 in the future since CentOS is End of Life. + Recommend setting OS we'll be running so that VMWare can run optimisations against the guest OS. + Will need to select install ISO image further on, it will not show Debian based OS's, so should stick to Rocky. + Rocky linux is currently the best selection for BAS IT supportability as CentOS is end of life. + Hardware: + set some sensible defaults (e.g. 2 CPUs, 4GB mem, 64 GB storage) + Change Disk Provisioning to "Thin Provision". + If set "Thick Provision" - will reserve all 64GB. + Setting "Thin Provision" will expand as needed rather than reserving the full 64GB from the start. + Apart from provisioning, we can alter most of the hardware settings. + We can alter the number of CPUs allocated to an instance in real-time if it is too low when in use. + Remember, for VMs we build ourselves, resources required are mainly for dev and testing, production VMs may get more resources, but we're unlikely to need more. + Option available in interface for Video card, but none available in real life. + Select a network: 'Dev Network' (also Staging network - don't need to use) + New CD/DVD Drive: "Datastore ISO file", `emc0-005` contains the ISO files (in theory), but apart from Matt, David and Bryn cannot access (likely due to a permissions issue). + Path to ISO images: `emc0-005/ISOs/*.iso` + Choose the latest Rocky image (for instance) + Check "Connect At Power On" box. + Click `Finish` to complete creation of VM + Try to mimic the naming convention used for the VM instance (e.g. if setting up a network interface, or a storage media), this will make it easier to manage and link across different resources. + Launching a "Web console" is the same as using the system locally with a keyboard and mouse attached. + Anyone can access and view the console - anyone would be able to interact with the console. + Preferable to connect via SSH (should be visible with its network name?) (e.g. `ssh bsl-jambyr-r9-test`, `ssh <NAME-OF-VM-INSTANCE>`) + Remember to log out of the Web console! Can use it if cannot SSH into it, or if its crashed. + # Questions (for end) + DW: How ephemeral should VMs be? What do IT expect? Should they be fairly static? + As needed, just don't use masses of resources or overallocate + DW: Can we create VMs using Ansible/Puppet/whatever? + Yes, will be discussed in next meeting. # Episode 2 2024-06-17 ## Provisioning Process? BAS IT Git repository (contains puppet configurations) http://git.nerc-bas.ac.uk BAS Intranet Docs http://ictdocs.nerc-bas.ac.uk/index.php/Provisioning_Process BAS GitLab Ansible playbooks http://gitlab.data.bas.ac.uk/station-data-management/ansible/dit ?? BAS IT will create 'machines/deployments' and they will be provisioned and maintained using puppet/ansible. ## Creating Reproducible Configs (Puppet, Ansible) Mixture of Puppet & Ansible Puppet: config management system, IT manage everything via Puppet, there is a puppet agent installed on the vm, looks for puppet server on the network which tells the vm how to configure itself ## Virtual Machines (VMs) VM Type Designations = Dev, Staging, Production ### Ansible and relation to Puppet * We do not have visibility of Puppet configuration that IT sets up. * If IT create Puppet based VM for us, we then create an Ansible playbook that deploys our application onto that VM. * IT creates the resources & VM. * Ansible is used as a deployment tool to deploy onto that VM. * Ansible Steps A yaml config specifies set of actions (tasks) to reach desirable state. 1. Create host in Ansible. 2. Fill out tasks, will be carried out linearly 3. Import role - playbook = yaml config in this context