Last active
February 25, 2025 08:03
-
-
Save githubfoam/75dd373e15f1648506e64f81f8c61ae9 to your computer and use it in GitHub Desktop.
vagrant command Cheat Sheet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
problem: | |
==> vg-nagios-09: Available bridged network interfaces: | |
1) Intel(R) Ethernet Connection (22) I219-V | |
2) Hyper-V Virtual Ethernet Adapter | |
==> vg-nagios-09: When choosing an interface, it is usually the one that is | |
==> vg-nagios-09: being used to connect to the internet. | |
==> vg-nagios-09: | |
vg-nagios-09: Which interface should the network bridge to? | |
resolution: | |
Step 1: Find the Interface Name | |
Run the following command in PowerShell to list your network interfaces: | |
Get-NetAdapter | |
Identify the exact name of the interface you want to use, such as: | |
Name InterfaceDescription | |
---- -------------------- | |
Ethernet Intel(R) Ethernet Connection (22) I219-V | |
vEthernet (Default Switch) Hyper-V Virtual Ethernet Adapter | |
Step 2: Modify Vagrantfile | |
Inside your Vagrantfile, explicitly set the bridged network adapter: | |
Vagrant.configure("2") do |config| | |
config.vm.define "vg-nagios-09" do |vm| | |
vm.vm.box = "your-box-name" | |
# Automatically select the correct bridged interface | |
vm.vm.network "public_network", bridge: "Intel(R) Ethernet Connection (22) I219-V" | |
end | |
end | |
Replace Intel(R) Ethernet Connection (22) I219-V with the actual interface name from Get-NetAdapter. | |
Step 3: Run Vagrant with Output Redirection | |
Now, run the command again, and it should work without prompting for an interface: | |
vagrant up vg-nagios-09 | Out-File -FilePath output.txt | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
Run Vagrant with Output Redirection | |
Using PowerShell: | |
Navigate to the directory where your Vagrantfile is located | |
vagrant up vg-nagios-09 | Out-File -FilePath output.txt | |
notepad output.txt | |
if you want to append the output to an existing file instead of overwriting it, use >> in Command Prompt or -Append in PowerShell: | |
Command Prompt: | |
cmd | |
vagrant up vg-nagios-09 >> output.txt | |
powershell | |
vagrant up vg-nagios-09 | Out-File -FilePath output.txt -Append | |
If you want to capture both standard output and error messages | |
Command Prompt: | |
cmd | |
vagrant up vg-nagios-09 > output.txt 2>&1 | |
PowerShell: | |
powershell | |
vagrant up vg-nagios-09 *> vg-nagios-09_output.txt | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
# change Vagrant's default directory where it creates VMs, Windows 11 | |
Set the VAGRANT_HOME environment variable: This is the recommended way to change the default directory, as it is supported by all Vagrant providers. To set the VAGRANT_HOME environment variable, open a terminal and enter the following command | |
PowerShell | |
> Set-Item -Path Env:VAGRANT_HOME -Value "D:\tempo" | |
> Get-ChildItem Env: | |
VAGRANT_HOME D:\tempo | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
vagrant up vg-mrtg-03 --debug-timestamp #debug vagrant | |
vagrant up vg-mrtg-03 --debug | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#from host(linux host) to vagrant guest /windows host (winscp) | |
scp -P 2222 your_file [email protected]:. | |
#copy the file back on vagrant guest to your local host | |
scp -P 2222 [email protected]:/PATH/filename . | |
#from host(windows host) to vagrant guest (centos) | |
vagrant ssh-config # IdentityFile path for handle "i" | |
>scp -P 2200 -i IdentityFile(path) test.text [email protected]:/tmp | |
#copy file from vagrant guest (ubuntu) to host(windows host) | |
>vagrant ssh vg-nagios-05 -c "sudo cat /usr/local/nagios/etc/objects/timeperiods.cfg" > a.txt | |
vagrant ssh-config > config.txt | |
"scp -F config.txt default:/path/to/file ." #default is the vagrant name | |
#running multiple machines, from vagrant guest linux to windows host | |
vagrant ssh-config vg-nagios-05> vg-nagios-05-config.txt | |
"scp -F vg-nagios-05-config.txt vg-nagios-05:/usr/local/nagios/etc/objects/timeperiods.cfg ." | |
>scp -F vg-mrtg-03-config.txt vg-mrtg-03:/etc/mrtg/* mrtg | |
#running multiple machines, from windows host to vagrant guest linux | |
vagrant ssh-config vg-nagios-02> vg-nagios-02-ssh-config.txt | |
>scp -F vg-nagios-02-ssh-config.txt C:\Users\voltran\Downloads\tap.png vg-nagios-02:/home/vagrant | |
#running multiple machines, from windows host to vagrant guest linux | |
----------------------------------------------------------------------------------------- | |
run this command on windows 11 | |
"scp -F vg-nagios-02-config.txt vg-nagios-02:/usr/local/nagios/etc/objects/linux_virtual_switch.cfg ." | |
get this error below | |
[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). | |
C:\WINDOWS\System32\OpenSSH\scp.exe: Connection closed | |
fix: | |
vagrant ssh-config vg-nagios-02 | |
Ensure the output includes: | |
HostName 127.0.0.1 | |
Port <some_number> (e.g., 2222) | |
IdentityFile "<path_to_private_key>" | |
"scp -i <path_to_private_key> -P <port> [email protected]:/usr/local/nagios/etc/objects/linux_virtual_switch.cfg ." | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#ChatGPT | |
To locate the specified private key file and connect to the remote machine using the OpenSSH client on Windows 11, you can follow these steps: | |
Open Command Prompt or PowerShell: Press the Windows key, type "Command Prompt" or "PowerShell," and click on the respective application to open the command-line interface. | |
Navigate to the Vagrant project directory: Use the cd command to navigate to the directory where your Vagrant project is located. For example: | |
bash | |
cd C:\path\to\your\vagrant\project | |
Retrieve the SSH configuration: Run the following command to retrieve the SSH configuration for the Vagrant machine: | |
arduino | |
vagrant ssh-config vg-ubuntu-01 | |
This command will display the SSH configuration settings for the specified Vagrant machine, including the path to the private key file. | |
Locate the private key file: Look for the line starting with "IdentityFile" in the output of the previous command. It will specify the path to the private key file. | |
Open File Explorer: Press the Windows key + E to open File Explorer or navigate to it through the Start menu. | |
Navigate to the private key file: Use File Explorer to navigate to the directory mentioned in the "IdentityFile" line of the SSH configuration. Make sure you have the appropriate permissions to access the file. | |
Connect using the OpenSSH client: With the private key file located, you can now use the OpenSSH client to establish an SSH connection to the remote machine. Open PowerShell or Command Prompt and run the following command: | |
graphql | |
ssh -i "C:\path\to\private\key\file" [email protected] -p <port> | |
Replace "C:\path\to\private\key\file" with the actual path to the private key file you located, and <port> with the port number specified in the SSH configuration (usually port 2222 for Vagrant). | |
For example: | |
graphql | |
ssh -i "C:\Users\<username>\.vagrant\machines\vg-ubuntu-01\virtualbox\private_key" [email protected] -p 2222 | |
This command will initiate the SSH connection to the remote machine using the specified private key file. | |
Ensure that you have the OpenSSH client installed on your Windows 11 system, and that the Vagrant machine is running and accessible. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#Bard | |
To locate the specified private key file to authenticate to the remote machine with the command vagrant ssh-config vg-ubuntu-01 and connect with this the specified private key with openssh client on Windows 11, you can use the following steps: | |
Run the command vagrant ssh-config vg-ubuntu-01. | |
The output of the command will include a line that starts with IdentityFile. | |
The value of the IdentityFile line is the path to the private key file. | |
For example, if the output of the command looks like this: | |
Code snippet | |
Host vg-ubuntu-01 | |
HostName 192.168.1.10 | |
User vagrant | |
Port 22 | |
IdentityFile ~/.vagrant.d/insecure_private_key | |
Use code with caution. Learn more | |
Then the path to the private key file is ~/.vagrant.d/insecure_private_key. | |
Once you have located the private key file, you can use it to authenticate to the virtual machine using the ssh command. For example, to connect to the virtual machine as the user vagrant, you would use the following command: | |
Code snippet | |
ssh -i ~/.vagrant.d/insecure_private_key [email protected] | |
Use code with caution. Learn more | |
Please note that you may need to install the OpenSSH client on Windows 11 before you can use the ssh command. To do this, open the Windows Store and search for "OpenSSH". Click on the "OpenSSH" app and then click on the "Install" button. Once the OpenSSH client is installed, you can use the ssh command to connect to remote machines. | |
Here are the steps in detail: | |
Open a command prompt or PowerShell window. | |
Run the command vagrant ssh-config vg-ubuntu-01. | |
The output of the command will include a line that starts with IdentityFile. | |
The value of the IdentityFile line is the path to the private key file. | |
Copy the path to the private key file. | |
Open a new command prompt or PowerShell window. | |
Run the command ssh -i <path-to-private-key> [email protected]. | |
For example, if the path to the private key file is C:\Users\<username>\.vagrant.d\insecure_private_key, then the command would be: | |
Code snippet | |
ssh -i C:\Users\<username>\.vagrant.d\insecure_private_key [email protected] | |
Use code with caution. Learn more | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
# Windows HOST, linux vagrant vm guest, run command on vagrant vm guest from windows host | |
>vagrant ssh vg-mrtg-03 -c "ls -lai /etc/snmp" | |
# Linux HOST, linux vagrant vm guest, run command on vagrant vm guest from linux host | |
vagrant ssh -c 'cat - > ~/file_on_guest.txt' | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
The ".hcl" file extension is used for HashiCorp Configuration Language (HCL) files, which are used to define infrastructure as code using HashiCorp tools such as Vagrant and Packer. | |
In the context of Vagrant, the "pkr.hcl" file is used to define how Packer builds machine images that can be used as base boxes for Vagrant. The "pkr.hcl" file specifies the builders (e.g. virtualization providers like VirtualBox, VMware), provisioners (e.g. shell scripts, Ansible, Chef), and post-processors (e.g. compressing the image, uploading to a cloud provider) that Packer should use to create the machine image | |
The "pkr.hcl" file can also include variables, which allow for more dynamic and flexible configuration. These variables can be set via the command line, a separate variables file, or even environment variables. | |
sample: | |
https://gist.github.com/githubfoam/184271fc83075b8cfa9fdd0b44a294e3 | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
# Linux HOST, linux vagrant vm guest | |
from guest to host copy file: | |
vagrant ssh -c 'cat ~/file_on_guest.txt' > ~/file_on_host.txt | |
from host to guest copy file: | |
cat ~/file_on_host.txt | vagrant ssh -c 'cat - > ~/file_on_guest.txt' | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#copy file from host to vagrant vm guest, multiple vagrant vm machines | |
$vagrant upload ~/Desktop/file.sh host1 # /home/vagrant on host1 | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#copy file from host to vagrant vm guest in Vagrantfile | |
config.vm.provision "file", source: "~/otherfolder/.", destination: "/remote/otherlocation" #using globing on the host machine to grab all files within a folder | |
config.vm.provision "file", source: "/otherfolder", destination: "/remote/otherlocation" | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
vagrant port vg-docker-01 #display the full list of guest ports mapped to the host machine ports. | |
------------------------------------------------------------------------------------------ | |
vagrant init --template Vagrantfile.ansible.role.erb | |
vagrant up --provider=libvirt "vg-docker-01" | |
------------------------------------------------------------------------------------------ | |
#ignore SSL certificate behind corporate proxy. | |
vagrant box add --insecure --provider virtualbox "kalilinux/rolling" #self-signed SSL issues | |
------------------------------------------------------------------------------------------ | |
PROBLEM:Error: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate | |
FIX:vagrant box add --insecure | |
FIX:vagrantfile | |
kalicluster.vm.box_download_insecure=true | |
------------------------------------------------------------------------------------------ | |
#bard | |
The vagrant box update --cacert command updates the specified box with the latest version from the remote repository. The --cacert option specifies the path to a file containing a list of trusted CA certificates. This is useful if the box is hosted on a server that uses a self-signed certificate. | |
For example, to update the ubuntu/trusty64 box with the latest version from the Vagrant Cloud repository, you would use the following command: | |
Code snippet | |
vagrant box update --cacert /etc/ssl/certs/ca-certificates.crt ubuntu/trusty64 | |
Use code with caution. Learn more | |
This command will download the latest version of the ubuntu/trusty64 box from the Vagrant Cloud repository and update the local copy. If the box is hosted on a server that uses a self-signed certificate, the --cacert option will ensure that the certificate is trusted and the update can be completed successfully. | |
Here are some additional details about the vagrant box update command: | |
The vagrant box update command can be used to update any box, regardless of where it is hosted. | |
The --cacert option is only necessary if the box is hosted on a server that uses a self-signed certificate. | |
If the --cacert option is not specified, Vagrant will attempt to download the latest version of the box from the remote repository using the default CA certificates. | |
If the download fails due to a certificate verification error, you can specify the path to a file containing a list of trusted CA certificates using the --cacert option. | |
------------------------------------------------------------------------------------------ | |
#chatGPT | |
The vagrant box update --cacert command is used in Vagrant to update a virtual machine (VM) box while specifying a custom Certificate Authority (CA) certificate for SSL/TLS communication. This command allows you to use a CA certificate of your choice to establish secure connections between the Vagrant client and the VM. | |
Here's an explanation of the command and some example use cases: | |
Command: vagrant box update --cacert | |
Explanation: | |
vagrant: Refers to the Vagrant command-line tool used for managing virtual environments. | |
box update: Specifies that the VM box should be updated. | |
--cacert: Indicates that a custom CA certificate will be used for SSL/TLS communication. | |
Example uses: | |
Using a self-signed certificate: If you're working in a development environment that utilizes self-signed certificates, you can use the --cacert option to specify the path to your self-signed CA certificate. This allows Vagrant to establish secure connections with the VM that trusts your custom CA certificate. | |
Example: vagrant box update --cacert /path/to/my/ca.crt | |
Using an internal CA certificate: In enterprise environments, it's common to have an internal CA for issuing SSL/TLS certificates. If your VM box requires communication with services that use certificates signed by your internal CA, you can use the --cacert option to provide the path to your internal CA certificate. | |
Example: vagrant box update --cacert /path/to/internal/ca.crt | |
Testing with different CA certificates: The --cacert option allows you to easily switch between different CA certificates for testing purposes. For instance, you might have multiple test environments with different CA certificates, and you can use this command to update the VM box while specifying the appropriate CA certificate for each environment. | |
Example: vagrant box update --cacert /path/to/test1/ca.crt | |
vagrant box update --cacert /path/to/test2/ca.crt | |
It's important to note that the --cacert option requires a valid path to a CA certificate file in PEM format (.crt or .pem). Ensure that the certificate file is accessible and correctly formatted to establish the SSL/TLS connection with the VM. | |
Using a custom CA certificate can be useful in various scenarios, such as when working with self-signed certificates or internal PKI infrastructures. However, always exercise caution when using custom certificates and ensure that they are obtained from trusted sources to maintain the security and integrity of your systems. | |
------------------------------------------------------------------------------------------ | |
#chatGPT | |
explain `schannel: CertGetCertificateChain trust error CERT_TRUST_REVOCATION_STATUS_UNKNOWN` while running `vagrant box update --cacert` | |
The error message you provided indicates an issue with the trust of a certificate chain in the Windows Schannel library. When you run the vagrant box update --cacert command, Vagrant is attempting to update a virtual machine (VM) box while using a custom Certificate Authority (CA) certificate for SSL/TLS communication. However, during the process, an error occurs when validating the revocation status of a certificate in the chain. | |
The error CERT_TRUST_REVOCATION_STATUS_UNKNOWN typically occurs when the revocation status of a certificate cannot be determined. Revocation status is used to check if a certificate has been revoked by the issuing CA before trusting it. This error suggests that the revocation status check for a certificate in the chain could not be completed due to some unknown reason. | |
Possible causes for this error include: | |
Network connectivity issues: The VM may not have access to the necessary online resources to verify the revocation status of the certificate. This could be due to firewall settings, proxy configurations, or a lack of internet connectivity. | |
Revocation server unavailability: The server responsible for providing revocation status information might be down or inaccessible. In such cases, the revocation status cannot be determined, leading to the UNKNOWN status. | |
Certificate chain configuration: There could be an issue with the certificate chain itself, such as missing intermediate or root certificates, or incorrect certificate configurations. It's important to ensure that the entire certificate chain is properly configured and available. | |
To troubleshoot and resolve this issue, you can try the following steps: | |
Check network connectivity: Ensure that the VM has proper internet connectivity and can access the necessary online resources. Check firewall settings and any proxy configurations that might be blocking the communication. | |
Verify the CA certificate chain: Make sure the CA certificate and any intermediate or root certificates in the chain are correctly installed and accessible within the VM. Ensure that the certificates are not expired or revoked. | |
Test with a different CA certificate: If you have a different CA certificate available, try using it to see if the issue persists. This can help determine if the problem lies specifically with the certificate being used. | |
Update software components: Ensure that you have the latest versions of Vagrant and any related software components, as updates may include bug fixes or improvements related to certificate validation. | |
Seek support: If the issue persists, it may be beneficial to seek support from the Vagrant community or the maintainers of the VM box you are updating. They may have encountered similar issues and can provide further assistance or guidance specific to your setup. | |
Remember to exercise caution when using custom CA certificates, as they bypass the default trust chain and rely on the provided certificate. Only use CA certificates from trusted sources to ensure the security and integrity of your systems. | |
------------------------------------------------------------------------------------------ | |
PROBLEM:Error: | |
Vagrant cannot forward the specified ports on this VM, since they | |
would collide with some other application that is already listening | |
on these ports. The forwarded port to 2201 is already in use | |
on the host machine. | |
Sometimes, Vagrant will attempt to auto-correct this for you. In this | |
case, Vagrant was unable to. This is usually because the guest machine | |
is in a state which doesn't allow modifying port forwarding. You could | |
try 'vagrant reload' (equivalent of running a halt followed by an up) | |
so vagrant can attempt to auto-correct this upon booting. Be warned | |
that any unsaved work might be lost. | |
fix:vagrant reload vg-ubuntu-01 | |
------------------------------------------------------------------------------------------ | |
#linux | |
curl -O https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile && vagrant up | |
#windows | |
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile" -OutFile "Vagrantfile" | |
vagrant up | |
------------------------------------------------------------------------------------------ | |
vagrant ssh vgnode04 -c "hostnamectl" # run command wo logging in | |
vagrant ssh vg-mrtg-03 -c "ls -lai /etc/mrtg" | |
------------------------------------------------------------------------------------------ | |
export USERNAME="testuser" | |
$ vagrant cloud auth login --username $USERNAME | |
In a moment we will ask for your username and password to HashiCorp's | |
Vagrant Cloud. After authenticating, we will store an access token locally on | |
disk. Your login details will be transmitted over a secure connection, and | |
are never stored on disk locally. | |
If you do not have an Vagrant Cloud account, sign up at | |
https://www.vagrantcloud.com | |
Vagrant Cloud username or email: vagrantfoam | |
Password (will be hidden): | |
export TOKEN="testtoken" | |
$ vagrant cloud auth login --username $USERNAME --token $TOKEN | |
The token was successfully saved. | |
You are already logged in. | |
$ vagrant cloud auth whoami | |
Currently logged in as vagrantfoam | |
$ vagrant cloud auth logout | |
You are logged out. | |
$ vagrant cloud auth login --token $TOKEN | |
The token was successfully saved. | |
You are already logged in | |
$ vagrant cloud auth whoami | |
Currently logged in as vagrantfoam | |
$ vagrant cloud auth logout | |
You are logged out. | |
vagrant cloud publish $USERNAME/supertest 1.0.0 virtualbox boxes/my/virtualbox.box -d "A really cool box to download and use" --version-description "A cool version" --release --short-description "Download me!" | |
vagrant cloud search hashicorp --limit 5 | |
------------------------------------------------------------------------------------------ | |
echo "=============================Install Vagrant without generic linux install=============================================================" | |
#https://www.vagrantup.com/downloads | |
# export VAGRANT_CURRENT_VERSION="2.2.9" | |
apt-get install -qqy unzip jq | |
# https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_SHA256SUMS | |
export VAGRANT_CURRENT_VERSION="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/vagrant | jq -r -M '.current_version')" | |
export VAGRANT_URL="https://releases.hashicorp.com/vagrant/${VAGRANT_CURRENT_VERSION}/vagrant_${VAGRANT_CURRENT_VERSION}_x86_64.deb" | |
export VAGRANT_SHA256_URL="https://releases.hashicorp.com/vagrant/$VAGRANT_CURRENT_VERSION/vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS" | |
export VAGRANT_SHA256_SIG_URL="https://releases.hashicorp.com/vagrant/$VAGRANT_CURRENT_VERSION/vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS.sig" | |
# wget -nv "${VAGRANT_URL}" | |
curl -LO "${VAGRANT_URL}" | |
curl -LO "${VAGRANT_SHA256_URL}" | |
curl -LO "${VAGRANT_SHA256_SIG_URL}" | |
export HASHICORP_PUBLIC_KEY_URL="https://keybase.io/hashicorp/pgp_keys.asc" #https://www.hashicorp.com/security | |
`curl -sSL "${HASHICORP_PUBLIC_KEY_URL}" | gpg --import -` # import the public key (PGP key) | |
gpg --verify "vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS.sig" "vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS" 2>/dev/null #Verify the signature file is untampered | |
sha256sum vagrant_${VAGRANT_CURRENT_VERSION}_x86_64.deb # via sha256sum | |
openssl dgst -sha256 vagrant_${VAGRANT_CURRENT_VERSION}_x86_64.deb # via openssl | |
echo $(shasum -a 256 -c "vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS" 2>&1 | grep OK) | |
dpkg -i vagrant_${VAGRANT_CURRENT_VERSION}_x86_64.deb | |
vagrant version | |
------------------------------------------------------------------------------------------ | |
- echo "=============Install Vagrant with generic linux install==============" | |
- #https://www.vagrantup.com/downloads | |
- export VAGRANT_CURRENT_VERSION="2.2.9" | |
- sudo apt-get install -qqy unzip jq | |
- VAGRANT_CURRENT_VERSION="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/vagrant | jq -r -M '.current_version')" | |
- VAGRANT_URL="https://releases.hashicorp.com/vagrant/$VAGRANT_CURRENT_VERSION/vagrant_${VAGRANT_CURRENT_VERSION}_linux_amd64.zip" | |
- VAGRANT_SHA256_URL="https://releases.hashicorp.com/vagrant/$VAGRANT_CURRENT_VERSION/vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS" | |
- VAGRANT_SHA256_SIG_URL="https://releases.hashicorp.com/vagrant/$VAGRANT_CURRENT_VERSION/vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS.sig" | |
- curl -LO "${VAGRANT_URL}" | |
- curl -LO "${VAGRANT_SHA256_URL}" | |
- curl -LO "${VAGRANT_SHA256_SIG_URL}" | |
- HASHICORP_PUBLIC_KEY_URL="https://keybase.io/hashicorp/pgp_keys.asc" #https://www.hashicorp.com/security | |
- 'curl -sSL "${HASHICORP_PUBLIC_KEY_URL}" | gpg --import -' # import the public key (PGP key) | |
- gpg --verify "vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS.sig" "vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS" 2>/dev/null #Verify the signature file is untampered | |
- shasum -a 256 -c "vagrant_${VAGRANT_CURRENT_VERSION}_SHA256SUMS" | sudo tee output.txt # Verify the SHASUM matches the archive. | |
- cat output.txt | grep OK # print OK | |
- unzip "vagrant_${VAGRANT_CURRENT_VERSION}_linux_amd64.zip" | |
- sudo cp vagrant /usr/bin | |
- vagrant version | |
------------------------------------------------------------------------------------------ | |
FIX: | |
vagrant box add "bento/ubuntu-16.04" --provider=virtualbox | |
PROBLEM: | |
$ sudo vagrant box add "bento/ubuntu-19.10" | |
==> box: Loading metadata for box 'bento/ubuntu-19.10' | |
box: URL: https://vagrantcloud.com/bento/ubuntu-19.10 | |
This box can work with multiple providers! The providers that it | |
can work with are listed below. Please review the list and choose | |
the provider you will be working with. | |
1) parallels | |
2) virtualbox | |
3) vmware_desktop | |
Enter your choice: | |
------------------------------------------------------------------------------------------ | |
vagrant up --no-parallel # | |
------------------------------------------------------------------------------------------ | |
# Install missing plugins | |
unless Vagrant.has_plugin?("vagrant-reload") | |
puts 'Installing vagrant-reload Plugin...' | |
system('vagrant plugin install vagrant-reload') | |
end | |
------------------------------------------------------------------------------------------ | |
vagrant plugin list | |
vagrant plugin install vagrant-disksize #plugin to resize disks in VirtualBox | |
vagrant plugin install vagrant-libvirt #The vagrant-libvirt plugin is required when using KVM on Linux | |
vagrant plugin install vagrant-mutate #Convert vagrant boxes to work with different providers | |
vagrant plugin install vagrant-cachier #plugin for caching packages that are downloaded while setting up the environment | |
vagrant plugin install vagrant-hostmanager #plugin that manages hosts files within a multi-machine environment | |
vagrant plugin install vagrant-reload #plugin that adds a reload provisioning step that can be used to do a reload on a VM during provisioning. | |
config.vm.provision :reload #add to your Vagrantfile | |
vagrant plugin install vagrant-vbguest #plugin enables guest support for some VirtualBox features like shared folders,installing guest additions after each and every new installation and keeping them updated after a new version of VirtualBox is released | |
config.vbguest.auto_update = true #add to your Vagrantfile | |
------------------------------------------------------------------------------------------ | |
change something from the Vagrantfile, apply the changes by reloading the VM | |
vagrant reload | |
copy a file to your vagrant machine, | |
scp -P 2222 -i /path/to/private_key someFileName.txt [email protected] | |
use a manually downloaded image, add the box to Vagrant and create a matching Vagrantfile | |
vagrant box add osm/releasesix /path/to/vagrant.box | |
vagrant init osm/releasesix | |
add more forwarded ports | |
config.vm.network "forwarded_port", guest: 3000, host: 3000 | |
vagrant reload | |
------------------------------------------------------------------------------------------ | |
Create a base Vagrantfile | |
vagrant init hashicorp/precise64 | |
Create a minimal Vagrantfile (no comments or helpers) | |
vagrant init -m hashicorp/precise64 | |
Create a Vagrantfile with the specific box, from the specific box URL | |
vagrant init my-company-box https://boxes.company.com/my-company.box | |
Create a Vagrantfile, locking the box to a version constraint | |
vagrant init --box-version '> 0.1.5' hashicorp/precise64 | |
vagrant global-status -> Lists "id" and "name" of virtual machines | |
vagrant global-status --prune | |
vagrant status -> Overview about the virtual machines | |
vagrant destroy -f -> Destroys all virtual machines with force | |
vagrant destroy gluster2 -f -> Destroys only gluster2 | |
vagrant destroy id -> Destroys only vagrant machine | |
vagrant destroy gluster2 -f -> Destroys only gluster2 with force | |
vagrant box remove ubuntu/xenial64 --box-version 20180420.0.0 | |
vagrant box add precise64 https://files.hashicorp.com/precise64.box | |
vagrant up -> Spins up virtual machines which are currently down | |
vagrant up gluster2 -> Spins up gluster2 virtual machine if currently down | |
vagrant halt gluster2 -> Halts gluster2 virtual machine | |
------------------------------------------------------------------------------------------ | |
vagrant provision id -> Runs vagrant machine with ansible shell etc provisioning configured in Vagrant file | |
------------------------------------------------------------------------------------------ | |
#troubleshooting | |
To fix the problem related to the lock file boxa1b7b45e8d6d8e8f6e35726b38958c954bcbe41d.lock at D:/VagrantTemp/tmp/ when running the vagrant up command, you can try changing the environment variable to a different directory. Here's how you can do it: | |
Open the Start menu on your Windows 10 host machine and search for "Environment Variables". Click on the "Edit the system environment variables" option that appears. | |
In the System Properties window, click on the "Environment Variables" button. | |
In the Environment Variables window, under the "User variables" or "System variables" section, locate the variable named "VAGRANT_HOME". | |
If the variable is under "User variables", select it and click on the "Edit" button. | |
If the variable is under "System variables", select it and click on the "Edit" or "New" button. | |
In the Edit Environment Variable window, change the value of the variable to a different directory where you want Vagrant to store its files. For example, you can set it to C:/VagrantData. | |
Click "OK" to save the changes and close the windows. | |
Open a new Command Prompt or PowerShell window and navigate to the directory where your Vagrant project is located. | |
Run the vagrant up command again. This time, Vagrant should use the new directory specified in the environment variable instead of the previous problematic directory. | |
By changing the VAGRANT_HOME environment variable to a different directory, you are instructing Vagrant to use that directory for storing its files, including the lock file. This can help resolve issues related to file permissions or conflicts in the previous directory. | |
------------------------------------------------------------------------------------------ | |
#troubleshooting | |
vagrant up --debug &> vagrant.log -> Runs in debug mode to troubleshoot virtual machine | |
vagrant up --provision --debug &> vagrant.log -> Runs in debug mode to trouble shoot vagrant provisioning | |
On Windows, at command prompt: | |
set VAGRANT_LOG=info | |
vagrant up | |
------------------------------------------------------------------------------------------ | |
#troubleshooting host Windows 11 | |
>> systeminfo | findstr /B /C:"OS Name" /C:"OS Version" | |
OS Name: Microsoft Windows 11 Pro for Workstations | |
OS Version: 10.0.22621 N/A Build 22621 | |
> vagrant version | |
Installed Version: 2.3.4 | |
Latest Version: 2.3.4 | |
> vboxmanage --version | |
7.0.6r155176 | |
PS > Get-ItemProperty HKLM:\system\currentcontrolset\services\vboxsup | |
Problem: | |
Stderr: VBoxManage.exe: error: The virtual machine 'vagrant_provision_pws_vagrant-windows-10-preview_1675418626573_44328' has | |
terminated unexpectedly during startup with exit code 1 (0x1). More details may be available in | |
'C:\Users\user\VirtualBox VMs\vagrant_provision_pws_vagrant-windows-10-preview_1675418626573_44328\Logs\VBoxHardening.log' | |
#'C:\Users\user\VirtualBox VMs\vagrant_provision_pws_vagrant-windows-10-preview_1675418626573_44328\Logs\VBoxHardening.log' | |
Driver is probably stuck stopping/starting. Try 'sc.exe query vboxsup' to get more information about its state. Rebooting may actually hel | |
Fix: | |
C:\Program Files\Oracle\VirtualBox\drivers\vboxsup\VBoxSup.inf # Right Click to install | |
> sc.exe query vboxsup | |
> sc.exe start vboxsup | |
> vagrant destroy -f | |
> vagrant up | |
------------------------------------------------------------------------------------------ | |
VBoxManage list runningvms -> Find running vm to box | |
vagrant package --base xxxxx_1522057296984_52705 --output ubuntu1604.box --> Package running vm as vagrant box | |
vagrant ssh-config ID -> Details of vagrant vm guest | |
ssh vagrant@hostname -i /path/to/vagrantfile/.vagrant/machines/app/virtualbox/private_key -> Connect with vagrant insecure ssh key | |
vagrant ssh-config --host db-server >> ~/.ssh/config -> Add VMs config to ~/.ssh/config | |
------------------------------------------------------------------------------------------ | |
Generating a new SSH key | |
ssh-keygen -t rsa -b 4096 -C "[email protected]" | |
run ssh-agent | |
eval `ssh-agent -s` | |
Ensure the ssh-agent is running | |
$(ssh-agent -s) | |
Agent pid 3906 | |
Add your SSH private key to the ssh-agent | |
$ ssh-add ~/.ssh/id_rsa | |
private key must be available to the local ssh-agent. You can check with ssh-add -L | |
$ ssh-add -L | |
add your public key to ~/.ssh/authorized_keys on the Vagrant VM guest | |
ssh-copy-id -p 2222 vagrant@localhost | |
#copy public key to vagrant VM guest | |
cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" | |
cat ~/.ssh/id_rsa.pub | ssh -p 2200 [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" | |
# Install Chef on the Vagrant box. | |
vagrant plugin install vagrant-omnibus | |
#Berkshelf enabled Chef environment | |
vagrant plugin install vagrant-berkshelf | |
# | |
------------------------------------------------------------------------------------------ | |
----------CONVERTING VBOX VMS INTO VAGRANT BOXES------------------------------------------ | |
------------------------------------------------------------------------------------------ | |
#Create first a CentOS virtualbox VM then convert to a vagrant box | |
#Create a new virtual machine with the following settings: | |
Name: centos74minimal | |
Type: Linux | |
Version: Redhat 64 | |
Memory Size: 1024MB (to taste) | |
New Virtual Disk: [Type: VMDK, Size: 40 GB] | |
Disable floppy | |
Disable audio | |
Disable USB | |
system-processor-2x | |
general-advanced-dragndrop-bidirectional | |
Ensure Network Adapter 1 is set to NAT | |
Add this port-forwarding rule: [Name: SSH, Protocol: TCP, Host IP: blank, Host Port: 2222, Guest IP: blank, Guest Port: 22] | |
#Install operating system | |
standard partition-auto | |
set hostname | |
network disabled | |
sudo passwd root | |
set the user to vagrant and the password to vagrant. | |
make this user administrator | |
#Post install | |
vagrant@vagranthost ~]$ hostnamectl | |
Static hostname: vagranthost | |
Icon name: computer-vm | |
Chassis: vm | |
Machine ID: 0627840c87874e83a094d51ebd04e0d2 | |
Boot ID: 230e703e6a9e4774b4d99ea1ffffd909 | |
Virtualization: kvm | |
Operating System: CentOS Linux 7 (Core) | |
CPE OS Name: cpe:/o:centos:centos:7 | |
Kernel: Linux 3.10.0-693.el7.x86_64 | |
Architecture: x86-64 | |
[vagrant@vagranthost ~]$ cat /etc/hosts | |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 | |
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 | |
[vagrant@vagranthost ~]$ ip a | |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 | |
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | |
inet 127.0.0.1/8 scope host lo | |
valid_lft forever preferred_lft forever | |
inet6 ::1/128 scope host | |
valid_lft forever preferred_lft forever | |
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 | |
link/ether 08:00:27:bf:3e:08 brd ff:ff:ff:ff:ff:ff | |
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 | |
valid_lft 86299sec preferred_lft 86299sec | |
inet6 fe80::a343:aecc:ce58:ed49/64 scope link | |
valid_lft forever preferred_lft forever | |
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 | |
link/ether 52:54:00:89:0f:5d brd ff:ff:ff:ff:ff:ff | |
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 | |
valid_lft forever preferred_lft forever | |
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000 | |
link/ether 52:54:00:89:0f:5d brd ff:ff:ff:ff:ff:ff | |
[vagrant@vagranthost ~]$ ifconfig | |
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 | |
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 | |
inet6 fe80::a343:aecc:ce58:ed49 prefixlen 64 scopeid 0x20<link> | |
ether 08:00:27:bf:3e:08 txqueuelen 1000 (Ethernet) | |
RX packets 33 bytes 5821 (5.6 KiB) | |
RX errors 0 dropped 0 overruns 0 frame 0 | |
TX packets 69 bytes 8057 (7.8 KiB) | |
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | |
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 | |
inet 127.0.0.1 netmask 255.0.0.0 | |
inet6 ::1 prefixlen 128 scopeid 0x10<host> | |
loop txqueuelen 1 (Local Loopback) | |
RX packets 72 bytes 5752 (5.6 KiB) | |
RX errors 0 dropped 0 overruns 0 frame 0 | |
TX packets 72 bytes 5752 (5.6 KiB) | |
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | |
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 | |
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 | |
ether 52:54:00:89:0f:5d txqueuelen 1000 (Ethernet) | |
RX packets 0 bytes 0 (0.0 B) | |
RX errors 0 dropped 0 overruns 0 frame 0 | |
TX packets 0 bytes 0 (0.0 B) | |
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | |
[vagrant@vagranthost ~]$ free -h | |
total used free shared buff/cache available | |
Mem: 1.8G 694M 686M 9.5M 458M 957M | |
Swap: 1.0G 0B 1.0G | |
[vagrant@vagranthost ~]$ df -h | |
Filesystem Size Used Avail Use% Mounted on | |
/dev/sda2 38G 4.1G 34G 11% / | |
devtmpfs 906M 0 906M 0% /dev | |
tmpfs 920M 0 920M 0% /dev/shm | |
tmpfs 920M 8.8M 911M 1% /run | |
tmpfs 920M 0 920M 0% /sys/fs/cgroup | |
/dev/sda1 1014M 173M 842M 18% /boot | |
tmpfs 184M 4.0K 184M 1% /run/user/42 | |
tmpfs 184M 16K 184M 1% /run/user/1000 | |
# VBox Guest Additions. attach CDROM from menu | |
sudo mount /dev/cdrom /mnt | |
cd /mnt | |
sudo ./VBoxLinuxAdditions.run | |
sudo umount /dev/cdrom /mnt | |
verify | |
lsmod | grep vboxguest | |
sudo passwd root | |
su - | |
sudo visudo -f /etc/sudoers.d/vagrant | |
# add vagrant user | |
vagrant ALL=(ALL) NOPASSWD:ALL | |
# test sudoers | |
sudo pwd | |
#firewall && ssh for vagrant connections | |
sudo systemctl stop firewalld | |
sudo systemctl disable firewalld | |
sudo systemctl enable sshd.service | |
sudo systemctl start sshd.service | |
sudo systemctl status sshd.service | |
sudo chkconfig firewalld off | |
sudo yum update -y | |
sudo yum upgrade -y | |
sudo shutdown -r now | |
#Install vagrant key | |
mkdir -p /home/vagrant/.ssh | |
chmod 700 /home/vagrant/.ssh | |
wget --no-check-certificate \ | |
https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \ | |
-O /home/vagrant/.ssh/authorized_keys | |
chmod 600 /home/vagrant/.ssh/authorized_keys | |
chown -R vagrant /home/vagrant/.ssh | |
sudo vi /etc/ssh/sshd_config | |
#Find and uncomment the following line because we added the Vagrant key above to the authorized_keys file: | |
AuthorizedKeysFile %h/.ssh/authorized_keys | |
#zero out the drive | |
sudo yum clean all | |
sudo rm -rf /var/cache/yum | |
sudo dd if=/dev/zero of=/EMPTY bs=1M | |
sudo rm -f /EMPTY | |
cat /dev/null > ~/.bash_history && history -c && exit | |
#Repackaging. On VirtualBox GUI "centos74minima" is seen.Or VBoxManage list runningvms. | |
vagrant package --base centos74minimal --output centos74minimal.box | |
vagrant box add "centos74minimal/v1.0" centos74minimal.box | |
vagrant box list | |
vagrant init "centos74minimal/v1.0" | |
vagrant up | |
vagrant ssh | |
------------------------------------------------------------------------------------------ | |
#Create first a Fedora27 virtualbox VM then convert to a vagrant box | |
#Create a new virtual machine with the following settings: | |
Memory Size: 1024MB (to taste) | |
New Virtual Disk: [Type: VMDK, Size: 40 GB] | |
Disable floppy | |
Disable audio | |
Disable USB | |
system-processor-2x | |
general-advanced-dragndrop-bidirectional | |
Ensure Network Adapter 1 is set to NAT | |
Add this port-forwarding rule: [Name: SSH, Protocol: TCP, Host IP: blank, Host Port: 2222, Guest IP: blank, Guest Port: 22] | |
#Install operating system | |
standard partition-auto | |
set hostname | |
network disabled | |
sudo passwd root | |
set the user to vagrant and the password to vagrant. | |
make this user administrator | |
#Post install | |
[vagrant@vagranthost ~]$ hostnamectl | |
Static hostname: vagranthost | |
Icon name: computer-vm | |
Chassis: vm | |
Machine ID: d555cb57d31d495db0460d58ff0f83d4 | |
Boot ID: b708585c23634769a33e46ed9985f3f1 | |
Virtualization: oracle | |
Operating System: Fedora 27 (Server Edition) | |
CPE OS Name: cpe:/o:fedoraproject:fedora:27 | |
Kernel: Linux 4.13.9-300.fc27.x86_64 | |
Architecture: x86-64 | |
[vagrant@vagranthost ~]$ ip a | |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 | |
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | |
inet 127.0.0.1/8 scope host lo | |
valid_lft forever preferred_lft forever | |
inet6 ::1/128 scope host | |
valid_lft forever preferred_lft forever | |
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | |
link/ether 08:00:27:45:a1:53 brd ff:ff:ff:ff:ff:ff | |
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 | |
valid_lft 86045sec preferred_lft 86045sec | |
inet6 fe80::8ace:6cca:318:283d/64 scope link | |
valid_lft forever preferred_lft forever | |
[vagrant@vagranthost ~]$ ifconfig | |
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 | |
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 | |
inet6 fe80::8ace:6cca:318:283d prefixlen 64 scopeid 0x20<link> | |
ether 08:00:27:45:a1:53 txqueuelen 1000 (Ethernet) | |
RX packets 14023 bytes 2278575 (2.1 MiB) | |
RX errors 0 dropped 0 overruns 0 frame 0 | |
TX packets 8206 bytes 2163779 (2.0 MiB) | |
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | |
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 | |
inet 127.0.0.1 netmask 255.0.0.0 | |
inet6 ::1 prefixlen 128 scopeid 0x10<host> | |
loop txqueuelen 1000 (Local Loopback) | |
RX packets 0 bytes 0 (0.0 B) | |
RX errors 0 dropped 0 overruns 0 frame 0 | |
TX packets 0 bytes 0 (0.0 B) | |
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | |
[vagrant@vagranthost ~]$ free -h | |
total used free shared buff/cache available | |
Mem: 2.0G 112M 1.6G 884K 209M 1.7G | |
Swap: 2.2G 0B 2.2G | |
[vagrant@vagranthost ~]$ df -h | |
Filesystem Size Used Avail Use% Mounted on | |
devtmpfs 987M 0 987M 0% /dev | |
tmpfs 999M 0 999M 0% /dev/shm | |
tmpfs 999M 880K 998M 1% /run | |
tmpfs 999M 0 999M 0% /sys/fs/cgroup | |
/dev/mapper/fedora-root 15G 1.3G 14G 9% / | |
tmpfs 999M 4.0K 999M 1% /tmp | |
/dev/sda1 976M 117M 793M 13% /boot | |
tmpfs 200M 0 200M 0% /run/user/1000 | |
# VBox Guest Additions. | |
wget http://download.virtualbox.org/virtualbox/5.2.6/VBoxGuestAdditions_5.2.6.iso | |
sudo mount -o loop VBoxGuestAdditions_5.2.6.iso /mnt | |
sudo mount /dev/sr0 /mnt | |
cd /mnt | |
sudo dnf -y install elfutils-libelf-devel | |
sudo dnf -y install gcc make perl | |
sudo dnf -y install kernel-devel-4.13.9-300.fc27.x86_64 | |
sudo ./VBoxLinuxAdditions.run | |
sudo ./VBoxLinuxAdditions.run | |
sudo umount /dev/cdrom /mnt | |
verify | |
lsmod | grep vboxguest | |
lsmod | grep vboxsf | |
sudo umount /dev/sr0 /mnt | |
sudo passwd root | |
su - | |
sudo visudo -f /etc/sudoers.d/vagrant | |
# add vagrant user | |
vagrant ALL=(ALL) NOPASSWD:ALL | |
# test sudoers | |
sudo pwd | |
#firewall && ssh for vagrant connections | |
sudo systemctl stop firewalld | |
sudo systemctl disable firewalld | |
sudo systemctl enable sshd.service | |
sudo systemctl start sshd.service | |
sudo systemctl status sshd.service | |
sudo chkconfig firewalld off | |
sudo dnf update -y | |
sudo dnf upgrade -y | |
sudo shutdown -r now | |
#Install vagrant key | |
mkdir -p /home/vagrant/.ssh | |
chmod 700 /home/vagrant/.ssh | |
wget --no-check-certificate \ | |
https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \ | |
-O /home/vagrant/.ssh/authorized_keys | |
chmod 600 /home/vagrant/.ssh/authorized_keys | |
chown -R vagrant /home/vagrant/.ssh | |
sudo vi /etc/ssh/sshd_config | |
#Find and uncomment the following line because we added the Vagrant key above to the authorized_keys file: | |
AuthorizedKeysFile %h/.ssh/authorized_keys | |
#zero out the drive | |
sudo dnf clean all | |
sudo rm -rf /var/cache/dnf | |
sudo dd if=/dev/zero of=/EMPTY bs=1M | |
sudo rm -f /EMPTY | |
cat /dev/null > ~/.bash_history && history -c && exit | |
#Repackaging. On VirtualBox GUI "centos74minimal" is seen.Or VBoxManage list runningvms. | |
vagrant package --base centos74minimal --output centos74minimal.box | |
vagrant box add "centos74minimal/v1.0" centos74minimal.box | |
vagrant box list | |
vagrant init "centos74minimal/v1.0" | |
vagrant up | |
vagrant ssh | |
------------------------------------------------------------------------------------------ | |
Create a new virtual machine with the following settings: | |
Memory Size: 1024MB (to taste) | |
New Virtual Disk: [Type: VMDK, Size: 40 GB] | |
Disable floppy | |
Disable audio | |
Disable USB | |
system-processor-1x | |
general-advanced-dragndrop-bidirectional | |
Ensure Network Adapter 1 is set to NAT | |
Add this port-forwarding rule: [Name: SSH, Protocol: TCP, Host IP: blank, Host Port: 2222, Guest IP: blank, Guest Port: 22] | |
INSTALL THE OPERATING SYSTEM | |
standard partition-auto | |
set hostname ; vagranthost | |
network disabled | |
sudo passwd root | |
set the user to vagrant and the password to vagrant. | |
make this user administrator | |
sudo passwd root | |
su - | |
sudo apt-get xxx | |
update - Retrieve new lists of packages | |
upgrade - Perform an upgrade | |
dist-upgrade - Distribution upgrade, see apt-get(8) | |
autoremove - Remove automatically all unused packages | |
autoclean - Erase old downloaded archive files | |
sudo apt-get install -y gcc make perl | |
sudo mount /dev/cdrom /mnt | |
cd /mnt | |
sudo ./VBoxLinuxAdditions.run | |
sudo umount /dev/cdrom /mnt | |
verify | |
lsmod | grep vboxguest | |
disable firewall | |
sudo systemctl disable ufw | |
sudo systemctl stop ufw | |
sudo systemctl status ufw | |
make sure ssh is working | |
INSTALL AND CONFIGURE OPENSSH SERVER | |
sudo apt-get install -y openssh-server | |
sudo visudo -f /etc/sudoers.d/vagrant | |
# add vagrant user | |
vagrant ALL=(ALL) NOPASSWD:ALL | |
sudo pwd | |
INSTALL THE VAGRANT KEY | |
mkdir -p /home/vagrant/.ssh | |
chmod 700 /home/vagrant/.ssh | |
wget --no-check-certificate \ | |
https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \ | |
-O /home/vagrant/.ssh/authorized_keys | |
chmod 600 /home/vagrant/.ssh/authorized_keys | |
chown -R vagrant /home/vagrant/.ssh | |
#MISSING PART | |
sudo nano /etc/ssh/sshd_config | |
#Find and uncomment the following line because we added the Vagrant key above to the authorized_keys file: | |
AuthorizedKeysFile %h/.ssh/authorized_keys | |
#“zero out” the drive. | |
sudo dd if=/dev/zero of=/EMPTY bs=1M | |
sudo rm -f /EMPTY | |
cat /dev/null > ~/.bash_history && history -c && exit | |
vagrant package --base ubuntu1604 --output ubuntu1604.box | |
vagrant box add "ubuntu1604" ubuntu1604.box | |
vagrant init ubuntu1604 | |
vagrant up | |
------------------------------------------------------------------------------------------ | |
vagrant plugin install vagrant-vbguest -> automatically deploy the VirtualBox Guest Additions | |
#use this plugin confguration only if the plugin is found by Vagrant itself | |
if Vagrant.has_plugin?("vagrant-vbguest") then | |
config.vbguest.auto_update = false | |
end | |
------------------------------------------------------------------------------------------ | |
>vagrant up master | |
The VirtualBox VM was created with a user that doesn't match the | |
current user running Vagrant. VirtualBox requires that the same user | |
be used to manage the VM that was created. Please re-run Vagrant with | |
that user. This is not a Vagrant issue. | |
The UID used to create the VM was: 501 | |
Your UID is: 0 | |
need to delete the .vagrant. | |
need to update the creator_uid file in .vagrant | |
The file : .vagrant/machines/web/virtualbox/creator_uid | |
assign the ownership for :.vagrant/machines/web to the new uid | |
------------------------------------------------------------------------------------------ | |
#bash script | |
if [ "$(vagrant status | grep "${__BOX_NAME}.*running" | wc -l)" -eq "1" ]; | |
then | |
echo "Re-provisioning..." | |
vagrant provision | |
else | |
echo "Booting up the virtual machine..." | |
vagrant up --provision | |
fi | |
------------------------------------------------------------------------------------------ | |
vagrant box outdated #whether or not the box you are using in your current Vagrant environment is outdated | |
vagrant box outdated --global #every installed box will be checked for updates | |
vagrant box update #updates the box for the current Vagrant environment if there are updates available | |
vagrant box prune # | |
vagrant box prune --force #remove all installed boxes that are outdated and not currently in use | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11 | |
Problem: | |
Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter' (VERR_INTNET_FLT_IF_NOT_FOUND). | |
Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND). | |
Fix: | |
Control Panel\Network and Internet\Network Connections\ | |
Disable VMware Virtual Ethernet Adapter for VMnetXXX network connections | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11 | |
The "Timed out while waiting for the machine to boot" error in Vagrant indicates that Vagrant was unable to communicate with the guest machine (the virtual machine managed by Vagrant) within the configured boot timeout period. This can happen due to various reasons, such as networking issues, authentication problems, or resource constraints. | |
Here are some troubleshooting steps you can follow to address the issue: | |
Check the Virtual Machine Status: Ensure that the virtual machine is running and not stuck at any point during the boot process. You can check the status of the virtual machine using the provider-specific commands. For VirtualBox, you can use: | |
bash | |
VBoxManage list runningvms | |
Verify Networking Configuration: Ensure that the networking configuration is set correctly in the Vagrantfile. For example, in the provided Vagrantfile, the forwarded_port settings are used to expose ports from the guest VM to the host machine. Double-check if these settings are correct. | |
Check Resource Allocation: Make sure your host machine has enough resources (CPU, RAM, etc.) to create and run the virtual machine. If your machine is running low on resources, it may prevent the virtual machine from booting properly. | |
Increase Boot Timeout: If the virtual machine takes longer to boot due to limited resources or slow network, you can increase the boot timeout value in the Vagrantfile. Add or modify the following line in the Vagrantfile: | |
ruby | |
config.vm.boot_timeout = 600 # Set the timeout value in seconds (e.g., 600 seconds = 10 minutes) | |
Disable Firewall or Security Software: Temporary disable any firewall or security software on your host machine that might interfere with the virtual machine's network connectivity. | |
Use a Different Vagrant Box: If the issue persists, try using a different Vagrant box to see if the problem is specific to the box you are using. | |
Debug Log: If none of the above steps resolve the issue, enable the debug log to get more detailed information about the Vagrant process. Add the following line to the Vagrantfile: | |
ruby | |
config.vm.provider "virtualbox" do |vb| | |
vb.gui = true | |
vb.customize ["modifyvm", :id, "--uartmode1", "file", "/tmp/vagrant-debug.log"] | |
end | |
After making this change, run vagrant up again, and it will generate a debug log file (vagrant-debug.log) in the /tmp directory of your host machine. Check the log file for any errors or warnings that might provide more insights into the booting issue. | |
Remember to remove or comment out the debug log configuration once you have resolved the issue, as it may generate large log files over time. | |
If you are still facing issues after trying the above troubleshooting steps, the error messages from Vagrant during the boot process (if any) would be helpful in diagnosing the specific problem. Please share any relevant error messages, and I'll be happy to assist further. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11 | |
Problem: | |
windows: WinRM transport: negotiate | |
Timed out while waiting for the machine to boot. This means that | |
Vagrant was unable to communicate with the guest machine within | |
the configured ("config.vm.boot_timeout" value) time period. | |
c | |
When you run the vagrant global-status command and it shows a VM as "inaccessible", it means that Vagrant cannot find the VM's configuration file. This can happen for a number of reasons, such as if the VM has been moved to a different location, if the configuration file has been deleted, or if there is a permissions issue. | |
To fix this, you can try the following: | |
Check the location of the VM's configuration file. It should be in a directory called .vagrant in your home directory. If it is not there, try searching for it. | |
Make sure that the VM's configuration file has the correct permissions. It should be owned by you and have read/write permissions. | |
If you have moved the VM to a different location, you will need to update the Vagrantfile to point to the new location. | |
If you have deleted the VM's configuration file, you can recreate it by running the vagrant init command. | |
Once you have fixed the issue, you should be able to run the vagrant global-status command again and the VM should no longer be listed as "inaccessible". | |
Here are some additional tips: | |
If you are using a version control system, such as Git, you can use it to manage your Vagrant configurations. This will make it easy to keep track of changes and to restore a working configuration if something goes wrong. | |
If you are having trouble troubleshooting a Vagrant issue, you can ask for help on the Vagrant mailing list or on the Vagrant forums. | |
I hope this helps! Let me know if you have any other questions. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11, bard | |
explain how to fix this error when vagrant box update --box kalilinux/rolling --insecure command is run on windows 11 :.vagrant.d/tmp/box96546c45022a150a44c71d0ff6d79a1ed687f339.lock (Errno::EACCES) | |
The error message .vagrant.d/tmp/box96546c45022a150a44c71d0ff6d79a1ed687f339.lock (Errno::EACCES) means that you do not have permission to access the file .vagrant.d/tmp/box96546c45022a150a44c71d0ff6d79a1ed687f339.lock. This file is used to prevent multiple processes from updating the box at the same time. | |
To fix this error, you can do one of the following: | |
Change the ownership of the file to yourself. You can do this using the icacls command. For example, to change the ownership of the file to your user account, you would run the following command: | |
icacls .vagrant.d/tmp/box96546c45022a150a44c71d0ff6d79a1ed687f339.lock /grant "your_username:(OI)(CI)(M)" | |
Remove the lock file. You can do this using the del command. For example, to remove the lock file, you would run the following command: | |
Code snippet | |
del .vagrant.d/tmp/box96546c45022a150a44c71d0ff6d79a1ed687f339.lock | |
Use code with caution. Learn more | |
Use the -f option to force the update. The -f option tells Vagrant to force the update, even if the lock file is present. For example, to update the box with the -f option, you would run the following command: | |
Code snippet | |
vagrant box update --box kalilinux/rolling --insecure -f | |
Use code with caution. Learn more | |
Run the command as an administrator. If you are running the command as a regular user, you may not have the necessary permissions to update the box. To run the command as an administrator, right-click on the command prompt window and select "Run as administrator". | |
I hope this helps! Let me know if you have any other questions. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11, ChatGPT | |
To fix the "Errno::EACCES" error that occurs when running the "vagrant box update" command on Windows 11 and encountering the ".vagrant.d/tmp/box96546c45022a150a44c71d0ff6d79a1ed687f339.lock" file permission issue, you can try the following steps: | |
Run Command Prompt as Administrator: Right-click on the Command Prompt shortcut and select "Run as administrator" to open an elevated command prompt. This will provide the necessary permissions to execute the command. | |
Check File/Folder Permissions: Ensure that you have appropriate read, write, and execute permissions for the ".vagrant.d/tmp" directory and the lock file mentioned in the error message. You can navigate to the directory and manually check the permissions or use the following command to grant full control to the current user: | |
bash | |
icacls .vagrant.d\tmp /grant "%USERNAME%":(F) | |
Delete the Lock File: Remove the lock file that is causing the issue. In the command prompt, navigate to the ".vagrant.d/tmp" directory and delete the lock file manually using the following command: | |
csharp | |
del .vagrant.d\tmp\box96546c45022a150a44c71d0ff6d79a1ed687f339.lock | |
Retry the Command: After deleting the lock file, run the "vagrant box update --box kalilinux/rolling --insecure" command again. Ensure that you are connected to the internet to allow Vagrant to download and update the box file. | |
If the issue persists, you can try the following additional steps: | |
Change Temporary Directory: Set a different temporary directory for Vagrant. You can do this by setting the VAGRANT_HOME environment variable to a new directory path that has appropriate permissions. For example, create a new directory (e.g., "C:\VagrantTemp") and set the VAGRANT_HOME variable using the following command: | |
arduino | |
setx VAGRANT_HOME "C:\VagrantTemp" | |
Reinstall Vagrant: If none of the above steps resolve the issue, consider reinstalling Vagrant. Uninstall the current version, download the latest version from the official Vagrant website, and perform a fresh installation. This process can help resolve any potential configuration issues or conflicts. | |
If the error still persists after following these steps, it is recommended to consult the Vagrant documentation, community forums, or seek support from the Vagrant community for further assistance in troubleshooting the specific error you are encountering on Windows 11. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11, | |
vagrant ssh --debug | |
vagrant ssh vg-ubuntu-01 --debug | |
vagrant ssh -- -vvv | |
vagrant ssh vg-ubuntu-01 -- -vvv | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11 | |
Problem: | |
[email protected]: Permission denied (publickey) | |
C:\WINDOWS\System32\OpenSSH\ssh.EXE when doing debug #vagrant ssh --debug | |
C:\HashiCorp\Vagrant\embedded\usr\bin # Vagrant to use the embedded ssh | |
Fix: | |
#1st method | |
#In the Power Shell | |
# vagrant to use the builtin vagrant ssh rather than using C:\WINDOWS\System32\OpenSSH\/ssh.EXE | |
$Env:VAGRANT_PREFER_SYSTEM_BIN = 0 | |
#2nd method | |
Control Panel-System-Advanced system settings-Environment Variables-System Variables #Set environment variables | |
VAGRANT_PREFER_SYSTEM_BIN = 0 | |
#https://developer.hashicorp.com/vagrant/docs/other/environmental-variables#vagrant_prefer_system_bin | |
If this is set, Vagrant will prefer using utility executables (like ssh and rsync) from the local system instead of those vendored within the Vagrant installation. | |
Vagrant will default to using a system provided ssh on Windows. This environment variable can also be used to disable that behavior to force Vagrant to use the embedded ssh executable by setting it to 0. | |
#This environment variable can also be used to disable that behavior to force Vagrant to use the embedded ssh executable by setting it to 0. | |
DEBUG subprocess: Exit status: 255 | |
INFO ssh: Invoking SSH: C:\HashiCorp\Vagrant\embedded\usr\bin/ssh.EXE ["[email protected]", "-p", "2222", "-o", "LogLevel=FATAL", "-o", "Compression=yes", "-o", "DSAAuthentication=yes", "-o", "IdentitiesOnly=yes", "-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null", "-i", "C:/Users/user1/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-lunar64/20230524.0.0/virtualbox/vagrant_insecure_key"] | |
#removing the Windows 10 built-in SSH client | |
#OpenSSH Client | |
"Settings => Apps => Apps and Features => Optional Features". | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#Bard, windows 11 | |
The command Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 removes the OpenSSH client from Windows 10. OpenSSH is a secure shell protocol that allows users to securely access remote machines over a network. The Remove-WindowsCapability cmdlet is used to remove Windows features and capabilities. The -Online parameter tells the cmdlet to remove the feature from the computer even if it is not currently running. The -Name parameter specifies the name of the feature to remove. In this case, the name of the feature is OpenSSH.Client. The ~~~~0.0.1.0 part of the name is the version of the feature. | |
To use the command, you must have administrative privileges. You can run the command from a command prompt or PowerShell window. | |
This command will remove the OpenSSH client from the computer. | |
Please note that removing the OpenSSH client will also remove the ability to use SSH to access remote machines. If you need to use SSH, you will need to reinstall the OpenSSH client. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#ChatGPT, windows 11 | |
The command you provided, "Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0," is a PowerShell command used to remove the OpenSSH client capability from a Windows system. | |
Let's break down the command: | |
"Remove-WindowsCapability": This is a PowerShell cmdlet (command-let) used to remove a Windows capability from the current system. | |
"-Online": This switch parameter specifies that the operation should be performed on the currently running operating system. | |
"-Name OpenSSH.Client~~~~0.0.1.0": This specifies the name and version of the Windows capability to be removed. In this case, it's "OpenSSH.Client" with version "0.0.1.0". The tilde (~) characters are used as separators in the capability name. | |
Overall, this command targets the OpenSSH client capability and removes it from the Windows system. The OpenSSH client is a set of tools that allow secure communication and remote administration between computers using the SSH (Secure Shell) protocol. By removing this capability, you will no longer have the OpenSSH client installed on your system. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#ChatGPT, windows 11 | |
The command you provided, "Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'," is a PowerShell command used to retrieve information about Windows capabilities related to OpenSSH that are available on the current system. | |
Here's a breakdown of the command: | |
"Get-WindowsCapability": This is a PowerShell cmdlet used to retrieve information about Windows capabilities. | |
"-Online": This switch parameter specifies that the operation should be performed on the currently running operating system. | |
"|": This is a pipeline operator that allows the output of one command to be passed as input to another command. | |
"?": This is an alias for the "Where-Object" cmdlet, which is used for filtering objects based on certain criteria. | |
"Name -like 'OpenSSH*'": This is a filtering expression that selects objects whose "Name" property matches the pattern 'OpenSSH*'. The asterisk (*) is a wildcard character that represents any number of characters. | |
In summary, this command retrieves information about Windows capabilities available on the current system and filters the results to only include capabilities with names starting with "OpenSSH". This allows you to view the OpenSSH-related capabilities installed or available for installation on your system, providing information such as the name, version, and other relevant details. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#Bard, windows 11 | |
The command Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' lists all of the Windows capabilities that are related to OpenSSH. A Windows capability is a unit of functionality that can be enabled or disabled on a Windows computer. OpenSSH is a secure shell protocol that allows users to securely access remote machines over a network. | |
The Get-WindowsCapability cmdlet is used to list Windows capabilities. The -Online parameter tells the cmdlet to list capabilities that are available on the local computer, even if they are not currently enabled. The ? operator is used to filter the results of the command. In this case, the filter is Name -like 'OpenSSH*', which means that only capabilities whose name starts with "OpenSSH" will be returned. | |
To use the command, you must have administrative privileges. You can run the command from a command prompt or PowerShell window. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#Bard, windows 11 | |
To find out which version of OpenSSH client is installed on Windows 11 with the Get-WindowsCapability -Online command, you can use the following steps: | |
Open a PowerShell window as an administrator. | |
Run the following command: | |
Code snippet | |
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' | |
Use code with caution. Learn more | |
This will list all of the Windows capabilities that are related to OpenSSH. | |
The version of the OpenSSH client will be listed in the Version column. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#ChatGPT, windows 11 | |
To find out which version of the OpenSSH client is installed on Windows 11 using the Get-WindowsCapability command, you can follow these steps: | |
Open PowerShell: Press the Windows key, type "PowerShell," and click on "Windows PowerShell" or "Windows PowerShell (Admin)" to open the PowerShell command-line interface. | |
Run the command: Enter the following command and press Enter: | |
sql | |
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*' | |
This command retrieves information about Windows capabilities related to the OpenSSH client. | |
Interpret the output: The command will display information about the OpenSSH client capability, including the name, version, and other relevant details. Look for the entry with the name "OpenSSH.Client" in the output. The version number will be indicated in the output, allowing you to determine the installed version of the OpenSSH client on your Windows 11 system. | |
Note: Ensure that you have administrative privileges when running PowerShell commands to retrieve system information. | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' | |
Name : OpenSSH.Client~~~~0.0.1.0 | |
State : Installed | |
Name : OpenSSH.Server~~~~0.0.1.0 | |
State : NotPresent | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
#troubleshooting, windows 11 | |
#In the Power Shell | |
# vagrant to use C:\WINDOWS\System32\OpenSSH\/ssh.EXE | |
$Env:VAGRANT_PREFER_SYSTEM_BIN = 1 | |
> vagrant ssh vg-ubuntu-01 --debug | |
[email protected]: Permission denied (publickey). | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Import numpy as s
Console=as a numpy impact*[[1,2,3,4,]]
Print array as a code impact
Console==as a array impact*[[1,2,3,4,]]
Print arrya as a code impact