How Do You Connect to a VM in Oracle VirtualBox from a Desktop?

Problem scenario
You are connecting to a VM in Oracle VirtualBox from a desktop. The pings to the VM are not responding. What should you do?

Solution
Go to Devices -> Network -> Network Settings
The "Attached to:" setting hould be "Bridged Adapter"
The "Name" setting should what you think is appropriate. Not uncommonly this will be en0 Wi-Fi.
Expand the "Advanced" settings. Promiscuous mode should be "Allow All." The "Cable connected" option should be checked.

How Do You Install CentOS when the Installation Source Option is a URL Exclusively (without an Option for a Local ISO)?

Problem scenario
You are trying to install CentOS in an offline manner. You get to the "Installation Summary" screen. The Software section says "Installation Source…Setting up installation source." There is a yellow triangle with an exclamation point near the "Installation Source" button. The "Begin installation" button is grayed out. You want to choose a local ISO, and you thought it was installing via a local ISO. You do not have access to the internet. You have no choice in the "Installation Source" menu screen to choose a local ISO file (e.g., a DVD, thumb drive or other source on a hard disk). How do you start the installation without using a netinstall URL?

Solution
Start over with different installation media. The problem being described is consistent with using a "boot" ISO. Those help get you started booting up, but they may not have the full image to install CentOS. Is the word "boot" in the .iso file that you are using? If so, you will want the word "dvd" to be in the .iso file.

To retrieve new media, try this link: http://isoredirect.centos.org/centos/8/isos/x86_64/

How Do You Use the Bisect Module in Python?

Problem scenario
You want to use bisect in Python. How do you do this?

Solution

# This program was adapted from code found 
# https://docs.python.org/3/library/bisect.html

import bisect
def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):
     i = bisect.bisect(breakpoints, score)
     return grades[i]

x = [grade(score) for score in [71, 88, 94]]
print(x)
import bisect
def whether(temperature, breakpoints=[38, 70, 80, 100], descriptors=["cold", "cool", "warm", "hot", "very hot"]):
     i = bisect.bisect(breakpoints, temperature)
     return descriptors[i]

#descriptions = [whether(temperature) for temperature in [71, 88, 94]]
descriptions = [whether(temperature) for temperature in [11, 68, 104]]

How Do You Configure Email Alerts for AWS Spending Thresholds of Specific Dollar Amounts?

Problem scenario
Sometimes you forget what is running in AWS. You want to be notified when you have spent a certain amount of money. How do you set up a notification in your AWS account that will apprise you when you have have spent over a certain amount of money for a given month?

Solution

  1. Log into the AWS Management Console (aka the web UI).
  2. Go to CloudWatch
  3. Click "Create alarm"
  4. Click "Select metric"
  5. Click on the hyperlink for "Billing"
  6. Click on the hyperlink for "Total Estimated Charge"
  7. Check the radio button for the desired Currency (for the U.S. it will be "USD")
  8. Click the "Select metric" button in the lower right-hand corner
  9. Enter a metric name
  10. Enter a threshold value in the appropriate field.
  11. Expand "Additional configuration" and configure as necessary. (This is an optional step.) You may or may not want to set other settings (e.g., for the "Missing data treatment" drop down, you may want to select "Treat missing data as bad (breaching threshold)" to be extremely conservative).
  12. Click "Next"
  13. For "Send a notification to…" choose a list with the email addresses you want to receive the notification
  14. Click "Next"
  15. Click "Create alarm"

What Do You Do when ImportExportTools is Not an Option in Thunderbird?

Problem scenario
You installed ImportExportTolls NG, the add-on in Mozilla Thunderbird. In Thunderbird you go to Tools, but "ImportExportTools" or "ImportExportTools NG" is not visible. What do you do?

Solution
You need to have a mailbox -- even an empty mailbox -- configured. This will import all the messages you are trying to import into that mailbox. The hamburger icon's Tools -> Import, won't work. Once you have a mailbox configured, right click the top option and go to "ImportExportTools NG".

One way to configure a dummy mailbox is to use the trial version of Thunderbird Import Wizard here: https://www.emaildoctor.org/add/thunderbird-mbox.html

You can feed it (or utilize) a .mbox file to import 25 messages. This will get you started.

Why Cannot a User Approve a Release Pipeline to an Environment?

Problem scenario
A user in Azure DevOps cannot approve releases to a given environment. The permissions are correct; the user is a member of the relevant custom security group in the project. Why can't the user approve the deployment to an environment?

Solution
Can the user go to the Azure DevOps organization? Can the user also see the project? The organization subsumes a project, and the organization may need to have the member be added. A parent organization may be somewhat separately from the sub-environment.

The root cause is that the permissions are not actually correct. Check the members list of the project. It could be that the user is a member of a group, but not a member of the project itself. (It may not be enough to be a member of a group in a project. The user may need to be a member of the project itself for some configurations of Azure DevOps.)

The user may not have approval authority for a relevant resource; see this posting. See also this.

How Do You Troubleshoot a Kubernetes Cluster That is Not Working at the Node Level?

Problem scenario
The nodes in a Kubernetes cluster are not working. What should you do?

Possible Solution #1
Run this command: kubectl get nodes
For the node that is not healthy, assuming its hostname is called "foobar", run this command: kubectl describe node foobar

Possible Solution #2
If you have pods and no nodes (which could be the case), run this:
kubectl get pods
Then run:
kubectl logs

Possible solution #3
If you are using EKS, look at the user guide:
https://docs.aws.amazon.com/eks/latest/userguide/eks-ug.pdf

Possible solution #4
Run this command: kubectl describe pods
If there is an error about a subnet.env file not existing, see this posting.
If the output says something like "cni config uninitialized", see this posting.

How Do You Troubleshoot “java.io.IOException: Stream closed at java.base/java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:442)”?

Problem scenario
You are trying to run a Hadoop job. You get this error:
"java.io.IOException: Stream closed at java.base/java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:442)"

What should you do?

Solution
Is the "python" command recognized as such? You may need to install Python or link the python3 binary to be in a typical location where env variables would look for it (e.g., /usr/bin/python).

Here are commands that could help you:

whereis python3
sudo ln -s python3 /bin/python

If you need help installing Python, see this posting.