Page MenuHomePhabricator
Contents

Multicast
Updated 1,953 Days AgoPublic

Multicast

Steps

Step 1: Manually 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

# 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 .

# 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.
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.

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.

[<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 &

# 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.


Have the 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.

# 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

$  source /opt/imm-env/bin/activate

Step 11: Head over to /opt/imm

$ cd /opt/imm

Step 12: Here, you should see the winrm_tasks.py file. Below is a list of tasks that you can run:

# /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.

# ./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.
check_status
change_hostname 
hostnames
domain_join 
activate_labview 
printer
check_status
Last Author
jaredk
Last Edited
Aug 5 2019, 9:49 AM

Event Timeline

igrant edited the content of this document. (Show Details)
igrant edited the content of this document. (Show Details)
igrant edited the content of this document. (Show Details)
lanle edited the content of this document. (Show Details)
lanle edited the content of this document. (Show Details)
lanle edited the content of this document. (Show Details)
igrant edited the content of this document. (Show Details)
scheung changed the edit policy from "Restricted Project (Project)" to "Restricted Project (Project)".Jan 3 2019, 10:46 AM
scheung changed the edit policy from "Restricted Project (Project)" to "Restricted Project (Project)".