# Multicast
## Steps
Step 1: **Manually** [[ https://ph.engr.unr.edu/w/ecc/cloning/ | clone ]] a machine in the lab. This will act as the master.
Step 2: Netboot the entire lab
Step 3: Connect to **steamboat.engr.unr.edu** using your netid
```lang=bash
# ssh netID@steamboat.engr.unr.edu
$ ssh igrant@steamboat.engr.unr.edu
```
Step 4: On **steamboat**, source into your environment to use ansible.
```
$ source /srv/ansible/python_env/bin/activate
```
IMPORTANT: Check that all the hosts you want to clone have responded and no others.
Step 5: To check all hosts, run `ansible -i /etc/ansible/hosts -m "shell" -a "hostname" LAB_LETTER `.
```lang=bash
# ansible -i /etc/ansible/hosts -m "shell" -a "hostname" lab_letter
$ ansible -i /etc/ansible/hosts -m "shell" -a "hostname" lab_d
```
Step 6: On your steamboat connecting while using ansible, run the subscriber script `nohup sh /netboot/images/multi/udp-receiver-sda.sh &`
```lang=bash
# ansible -i /etc/ansible/hosts -m "shell" -a "nohup sh /netboot/images/multi/udp-receiver-sda.sh &" lab_x
$ ansible -i /etc/ansible/hosts -m "shell" -a "nohup sh /netboot/images/multi/udp-receiver-sda.sh &" lab_c
```
Step 7: Run the sender script on the master and hit key to start sending the script is located in `/netboot/images/multi`
```
$ cd /netboot/images/multi
$ sh udp-sender-sda.sh
```
Step 8: Hit the `ANY` key on server to start sending data.
Step 9: Be sure to go around and join the computers to the domain and activate labview.
---
##[WIP]
(NOTE) Have the **[[ https://ecc-pxe.engr.unr.edu:8443/ipxe/dashboard | dashboard ]]** up to check your progress along the way.
Step 9: When you're done, be sure to rename the machine, join to the domain, and activate labview by connecting to tinkerbell using the identity file.
```lang=bash
# make sure that you are still on steamboat
$ sudo ssh root@tinkerbell.engr.unr.edu -i /srv/ansible/.ssh/coen-ansible
```
Step 10: Source into the IMM Environment
```lang=bash
$ source /opt/imm-env/bin/activate
```
Step 11: Head over to `/opt/imm`
```lang=bash
$ cd /opt/imm
```
Step 12: Here, you should see the `winrm_tasks.py` file. Below is a list of tasks that you can run:
```lang=bash
# /opt/imm/tasks
check_status
check_status_ip
hostnames
change_hostname
reboot
domain_join
activate_labview
default_printer
printer
shutdown
```
Rather than going around and joining everything to the domain manually, you can run some winrm scripts to do the job.
To execute, type `./winrm_tasks.py --filter ECC-LAB- TASKS`.
```lang=bash
# ./winrm_tasks.py --filter ecc-lab- task
$ ./winrm_tasks.py --filter ecc-a- check_status
```
IMPORTANT: If the entire lab had just been cloned, run the tasks below in the same order. Also, before completing the printer tasks, edit the file by typing `nano /tasks/printer.py` and change the default printer to the respective lab.
```lang=bash
check_status
hostnames
change_hostname
reboot
domain_join
activate_labview
printer
check_status
```