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