Version 17 vs 32
Version 17 vs 32
Content Changes
Content Changes
# Multicast
## Steps
* Step 1: **Manually** [[ https://ph.engr.unr.edu/w/ecc/cloning/ | clone ]] a machine in the lab. This will act as the server for the multicast.
* 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.
```
cd /srv/ansible/
source 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: Using ansible, run the subscriber script
```
nohup sh /images/multi/udp-receiver-sda.sh &
```
* Step 7: Run the sender script on the machine acting as the server and hit key
to start sending the script is located in /images/multi
```
sh udp-sender-sda.sh
```
* Step 8: Hit key on server to start sending data
# 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
```
---
IMPORTANT: If you would like to build a custom hosts file, for example targeting only some hosts in a lab, netboot the hosts you would like to target, then use nmap to scan the desired subnet to get the IPs of the corresponding target machines.
```lang=bash
nmap -p 22 172.20.195.0/24 -oN output.txt
```
Then you can grab the IPs by grepping the output of the nmap scan for machines with ssh open.
```lang=bash
grep -B 3 "22/tcp open" output.txt | awk '{print $5} | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.'" > newHosts.txt
```
Edit the **newHosts.txt** file such that it resembles this sample.
```lang=bash
[<label>]
LIST_OF_IPS
[<label>:vars]
ansible_ssh_private_key_file=/srv/ansible/.ssh/coen-ansible
```
Once this is complete you can now target your newHosts.txt when specifying the path for the **-i** flag.
---
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/multicast/udp-receiver-sda.sh &" lab_x
$ ansible -i /etc/ansible/hosts -m "shell" -a "nohup sh /netboot/images/multicast/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/multicast`
```
$ cd /netboot/images/multicast
**Run this in /tmp or anywhere else that's not in the root directory since / is read-only.
$ ./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.
---
(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
change_hostname
hostnames
domain_join
activate_labview
printer
check_status
```
# Multicast
## Steps
* Step 1: **Manually** [[ https://ph.engr.unr.edu/w/ecc/cloning/ | clone ]] a machine in the lab. This will act as the server for the multicast.
* 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.
```
cd$ source /srv/ansible/
source 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: Using ansible---
IMPORTANT: If you would like to build a custom hosts file, for example targeting only some hosts in a lab, netboot the hosts you would like to target, then use nmap to scan the desired subnet to get the IPs of the corresponding target machines.
```lang=bash
nmap -p 22 172.20.195.0/24 -oN output.txt
```
Then you can grab the IPs by grepping the output of the nmap scan for machines with ssh open.
```lang=bash
grep -B 3 "22/tcp open" output.txt | awk '{print $5} | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.'" > newHosts.txt
```
Edit the **newHosts.txt** file such that it resembles this sample.
```lang=bash
[<label>]
LIST_OF_IPS
[<label>:vars]
ansible_ssh_private_key_file=/srv/ansible/.ssh/coen-ansible
```
Once this is complete you can now target your newHosts.txt when specifying the path for the **-i** flag.
---
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/multicast/udp-receiver-sda.sh &" lab_x
$ ansible -i /etc/ansible/hosts -m "shell" -a "nohup sh /netboot/images/multicast/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/multicast`
```
$ cd /netboot/images/multicast
**Run this in /tmp or anywhere else that's not in the root directory since / is read-only.
$ ./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.
---
(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, run the subscriber scriptand 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
```
nohup sh /images/multi/udp-receiver-sda.sh &Step 10: Source into the IMM Environment
```lang=bash
$ source /opt/imm-env/bin/activate
```
* Step 7: Run the sender script on the machine acting as the server and hit key11: Head over to `/opt/imm`
```lang=bash
to start sending the script is located in /images/multi$ cd /opt/imm
```
sh udp-sender-sda.shStep 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
```
* Step 8: Hit key on server to start sending dataRather 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
change_hostname
hostnames
domain_join
activate_labview
printer
check_status
```