One of the special feature of podman over docker is, podman has the concept of pod. Pod is a feature to group containers together. One example is, is lets say we want to deploy a joomla stack. The stack can be deployed in a pod, so that the containers can be managed together, without having to operate on each single component of the stack.
To create a pod with port 8080 on localhost will be redirected to port 80 in a pod
$ podman pod create --name mypod --publish 8080:80
Next, create a container for database that belongs to our pod above
$ podman run -dit --pod mypod -e MYSQL_DATABASE=joomla -e MYSQL_USER=joomlauser -e MYSQL_PASSWORD=joomlapassword -e MYSQL_ROOT_PASSWORD=rootpw --name mariadb docker.io/library/mariadb
Check whether your mariadb container is ready, by viewing its logs
$ podman logs -f mariadb
After that create a joomla container. Since both the containers are in the same pod, joomla container can refer to mariadb with just 127.0.0.1 since both of them share the same network namespace in a pod
$ podman run -dit --pod mypod -e JOOMLA_DB_HOST=127.0.0.1 -e JOOMLA_DB_USER=joomlauser -e JOOMLA_DB_PASSWORD=joomlapassword -e JOOMLA_DB_NAME=joomla --name joomla docker.io/library/joomla
Similar to mariadb container, you can check whether your joomla container is ready by viewing its logs
$ podman logs -f joomla
Start a browser, and browse to http://0.0.0.0:8080. You should be able to access the joomla web interface. Continue with the installation using the web interface. Make sure you put 127.0.0.1 for the database host information in the web installer.
Thursday, April 30, 2020
Run a Joomla CMS in Podman Pod
Saturday, April 25, 2020
Starting a Web Server using Podman
To start a web server using podman, in this case we are using nginx from docker repository, just run below command to start a webserver and expose it on port 8080 localhost
$ podman run -dit -p 8080:80 docker.io/library/nginx
Test our brand new web server
$ curl -s localhost:8080 | tail
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Friday, April 24, 2020
How to Install Podman on CentOS 8
Thursday, April 23, 2020
Downloading ISO Directly to Proxmox Using Command Line
This is usually the faster way to get any iso to proxmox, especially if you are connecting to proxmox via some not so fast internet connection. But if you still prefer to use the web GUI, please refer to this post on how to do it via the web UI.
Go to the directory where iso's are being kept in proxmox
# cd /var/lib/vz/template/iso
If you have not downloaded the ISO, you can download it directly in this directory. For example I want to download a Centos 8 ISO
# wget http://centos.ipserverone.com/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-20191219-dvd1.iso
Once done, refresh the webUI
Proxmox VE No Subscription Repository
When you install Proxmox VE, by default the system will be configured to use Proxmox VE enterprise repository, which needs subscription in order to use it.
Wednesday, April 22, 2020
Windows in Proxmox Cannot Detect Virtio Network Adapter
I encountered this issue when installing Windows 2019 on proxmox Virtual Environment 6.1-7.
Below is my windows VM setting
In windows, I cannot see any network adapter to be configured.
After looking around in proxmox documentation, I found this gem, whereby you can download driver for the windows so that your windows can recognize the virtio interface.
You can download the iso for the driver from the above link, or using this direct link.
Once downloaded, upload the iso to proxmox using these steps.
Insert it into our windows vm cd drive, like below
You should now be able to see the iso mounted as D drive (depending on how many partition you have in your windows VM)
Now you have to install the driver. Press windows + s, type Device Manager and press Enter.
Expand "Network Adapters", you should see one adapter that is not recognized by windows.
Right click on it, and choose "Update driver"
Click on "Browse my computer for driver software"
Type in D:\ for the location, and tick "Include subfolders"
Click Next, and the wizard will search for a suitable driver for your device. Wait for it to finish.
Once done, it will show that your windows now has recognized the network adapter.
Reboot, if the wizard asks for it.
Done
Monday, April 20, 2020
Adding Internet Based Repositories in Alpine Linux
What I like about alpine linux is, it is very fast to get to a working linux with a shell inside a VM, and I can start testing whatever I need to test straight away. But the default setting of alpine linux does not preconfigured to get any packages from the internet, which is a pity. So we have to add it manually.
To add the main and community repositories manually, run below commands
# echo 'http://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repos
# echo 'http://dl-cdn.alpinelinux.org/alpine/edge/main' >> /etc/apk/repos
Update repository indexes
# apk update
That's it. You can now search for any package
# apk search openssh
And install any package
# apk add openssh-client
Thursday, April 9, 2020
Enable pfsense Web Interface from WAN Temporarily
By default pfsense only allow access to web interface from LAN. But sometimes you need access from WAN, just for a very short time. For example, you do not have any machine in LAN that have web interface, and you need the web interface to make some changes.
The steps are as follows, if you have access to pfsense text based console
1. Access the text based console
2. Choose option 8, to access the pfsense shell
3. Run this command: pfctl -d
4. Once you get the message "pf is disabled", you can now access pfsense web interface using WAN ip, in this case, 192.168.20.3, and make your changes in the web interface. Once you activate the changes, the firewall will be turned on again, so you won't be able to access web interface via WAN anymore.
5. If by any chance you want to enable back firewall manually, run: pfctl -e
If you do not have access to the console, you have to use ssh.
1. ssh into any linux machine on the LAN side
2. From the linux machine, ssh into pfsense
3. Run pfctl -d
4. Access your pfsense web interface via WAN IP. The firewall will automatically started if you "Apply Change" in web interface.
5. If you want to enable pf manuallt, run pfctl -e.
6 Logout from pfsense
Credit to this site for the great tutorial.
Wednesday, April 8, 2020
Uploading iso to Proxmox
To upload iso to proxmox, so that the iso can be used to create VM, please follow below steps
Friday, April 3, 2020
Install and Use Vagrant on Linux Mint 19 with Virtualbox
Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past.