<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Untitled Publication]]></title><description><![CDATA[Untitled Publication]]></description><link>https://cloudengr.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 19:52:04 GMT</lastBuildDate><atom:link href="https://cloudengr.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Vprofile: Project-1: Manual Setup of Multi-Tier Web Application, locally.]]></title><description><![CDATA[Manual Setup Of a Multi-Tier Web Application, Locally.
Project Source
Pre-requisites

Oracle VM Virtualbox

JDK 1.8

Vagrant

GitBash

Maven 3

MySQL 5.6

Maven

MySQL


Flow of Execution

Setup tools in the prerequisite above

Clone source code

cd ...]]></description><link>https://cloudengr.hashnode.dev/vprofile-project-1-manual-setup-of-multi-tier-web-application-locally</link><guid isPermaLink="true">https://cloudengr.hashnode.dev/vprofile-project-1-manual-setup-of-multi-tier-web-application-locally</guid><category><![CDATA[Devops]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[vagrant]]></category><category><![CDATA[SRE]]></category><category><![CDATA[Platform Engineering ]]></category><dc:creator><![CDATA[Afeez Adeboye]]></dc:creator><pubDate>Mon, 24 Apr 2023 11:07:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1682331361543/9cd3be3c-1242-4f59-89d4-7ab4f5cb366c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-manual-setup-of-a-multi-tier-web-application-locally">Manual Setup Of a Multi-Tier Web Application, Locally.</h2>
<p><a target="_blank" href="https://github.com/Afeez-AA/vprofile-project.git">Project Source</a></p>
<h2 id="heading-pre-requisites">Pre-requisites</h2>
<ul>
<li><p>Oracle VM Virtualbox</p>
</li>
<li><p>JDK 1.8</p>
</li>
<li><p>Vagrant</p>
</li>
<li><p>GitBash</p>
</li>
<li><p>Maven 3</p>
</li>
<li><p>MySQL 5.6</p>
</li>
<li><p>Maven</p>
</li>
<li><p>MySQL</p>
</li>
</ul>
<h2 id="heading-flow-of-execution">Flow of Execution</h2>
<ul>
<li><p>Setup tools in the prerequisite above</p>
</li>
<li><p>Clone source code</p>
</li>
<li><p>cd into vagrant dir</p>
</li>
<li><p>Bring up VMs</p>
</li>
<li><p>Validate</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682331427229/92f8faee-f6b8-4bb7-9a8c-c5e92755d337.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h2 id="heading-step1-vm-setup">Step1: VM Setup</h2>
<ul>
<li><p>Clone the repository of the project to your machine</p>
<pre><code class="lang-bash">  git <span class="hljs-built_in">clone</span> https://github.com/Afeez-AA/vprofile-project.git
</code></pre>
</li>
<li><p>Checkout to the local-setup branch</p>
<pre><code class="lang-sh">   git checkout local-setup
</code></pre>
</li>
<li><p>cd to the directory of the vagrant file setup</p>
<pre><code class="lang-sh">    <span class="hljs-built_in">cd</span> vprofile-project/vagrant/Manual_provisioning
</code></pre>
</li>
<li><p>Install vagrant plugins with the following commands</p>
<pre><code class="lang-sh">    vagrant plugin install vagrant-hostmanager
</code></pre>
<pre><code class="lang-sh">    vagrant plugin install vagrant-vbguest
</code></pre>
</li>
<li><p>Now, we can bring up the machine</p>
<pre><code class="lang-sh">    vagrant up
</code></pre>
</li>
<li><p>Verify the VM is now up</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682331703442/1c62cc25-43e2-4cee-b37e-6c71564aa02d.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>We need to check the <code>/etc/hosts</code> file as this should have been updated since the plugins were installed.</p>
<pre><code class="lang-sh">  cat /etc/hosts
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682331763089/c807004e-9af2-4c59-92b0-352157e3da01.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>From web01, ping the other VMs to verify the connectivity</p>
<pre><code class="lang-sh">      ping app01
      ping rmq01
      ping mc01
      ping db01
</code></pre>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682331799202/eca5a047-16fe-444e-adac-9d0afc91e16b.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-step2-service-provisioning">Step2: Service Provisioning</h2>
<ul>
<li><p>Note: We have 6 different services for our application</p>
<ol>
<li><p>Nginx: Web service</p>
</li>
<li><p>Tomcat: Application server</p>
</li>
<li><p>RabbitMQ: Broker/Queuing Agent</p>
</li>
<li><p>Memcache: DB caching</p>
</li>
<li><p>ElasticSearch: Indexing/search service</p>
</li>
<li><p>MySQL (MariaDB): SQL Database</p>
</li>
</ol>
</li>
<li><p>We'll be setting up our services in the order below;</p>
<ol>
<li><p>MySQL (MariaDB) (Database SVC)</p>
</li>
<li><p>Memcache (DB Caching SVC)</p>
</li>
<li><p>RabbitMQ (Broker/Queue SVC)</p>
</li>
<li><p>Tomcat (Application SVC)</p>
</li>
<li><p>Nginx (Web SVC)</p>
</li>
</ol>
</li>
</ul>
<h3 id="heading-provisioning-mysql">Provisioning MySQL</h3>
<ul>
<li><p>ssh to the <code>db01</code> machine</p>
<pre><code class="lang-sh">    vagrant ssh db01
</code></pre>
</li>
<li><p>switch to the root user and update all packages</p>
<pre><code class="lang-sh">   sudo su -
   yum update -y
</code></pre>
</li>
<li><p>then we need to enable EPEL, To enable EPEL ( Extra Packages for Enterprise Linux) respository, run the command below;</p>
<pre><code class="lang-sh">    yum install epel-release -y
</code></pre>
</li>
<li><p>Set up the db password using the DATABASE_PASS environment variable and add it to <code>/etc/profile</code> file</p>
<pre><code class="lang-sh">    DATABASE_PASS=<span class="hljs-string">'****'</span>
</code></pre>
</li>
<li><p>Make the above setup permanent by adding the variable above to the <code>/etc/profile</code> file</p>
<pre><code class="lang-sh">    vi /etc/profile
    <span class="hljs-built_in">source</span> /etc/profile
</code></pre>
</li>
<li><p>Now we can install git to enable us to clone our source code and MariaDB Package</p>
<pre><code class="lang-sh">    yum install git mariadb-server -y
</code></pre>
</li>
<li><p>After the completion of the installation, then we can start, enable and check the status of the MariaDB service.</p>
<pre><code class="lang-sh">   systemctl start mariadb
   systemctl <span class="hljs-built_in">enable</span> mariadb
   systemctl status mariadb
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332024246/87593e48-dfd1-4cf7-9391-e6dc6405f062.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Run MySQL secure installation script</p>
<pre><code class="lang-sh">    mysql_secure_installation
</code></pre>
</li>
<li><p>set the db password and other parameters as shown below</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332078324/cb794707-ee4c-419a-bc6c-5abc42e1ec2c.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>validate the database connection</p>
<pre><code class="lang-sh">    mysql -u root -p
    <span class="hljs-built_in">exit</span>
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332121662/433812ae-ea59-429f-98d0-c0e7cbd25bd2.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Next, clone the source code the change the directory to get the <code>sql queries</code></p>
<pre><code class="lang-sh">    git <span class="hljs-built_in">clone</span> https://github.com/Afeez-AA/vprofile-project.git
    <span class="hljs-built_in">cd</span> vprofile-project/src/main/resources
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682333987340/db007692-a8f7-48e7-8e0a-e17d26158b60.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Run the following commands to create a database <code>accounts</code>, user <code>admin</code></p>
<pre><code class="lang-sh">    mysql -u root -p<span class="hljs-string">"<span class="hljs-variable">$DATABASE_PASS</span>"</span> -e <span class="hljs-string">"create database accounts"</span>
    mysql -u root -p<span class="hljs-string">"<span class="hljs-variable">$DATABASE_PASS</span>"</span> -e <span class="hljs-string">"grant all privileges on accounts.* TO 'admin'@'app01' identified by '****' "</span>
    <span class="hljs-built_in">cd</span> ../../..
    mysql -u root -p<span class="hljs-string">"<span class="hljs-variable">$DATABASE_PASS</span>"</span> accounts &lt; src/main/resources/db_backup.sql
    mysql -u root -p<span class="hljs-string">"<span class="hljs-variable">$DATABASE_PASS</span>"</span> -e <span class="hljs-string">"FLUSH PRIVILEGES"</span>
</code></pre>
</li>
<li><p>Verify if the SQL queries started a database with <code>role</code>,<code>user</code>, and <code>user_role</code> tables.</p>
<pre><code class="lang-sh">    mysql -u root -p<span class="hljs-string">"<span class="hljs-variable">$DATABASE_PASS</span>"</span>
    MariaDB [(none)]&gt; show databases;
    MariaDB [(none)]&gt; use accounts;
    MariaDB [(none)]&gt; show tables;
    <span class="hljs-built_in">exit</span>
</code></pre>
</li>
<li><p>We should restart our mariadb service for the changes to be effective and logout</p>
<pre><code class="lang-sh">    systemctl restart mariadb
    <span class="hljs-built_in">logout</span>
</code></pre>
</li>
</ul>
<h3 id="heading-provisioning-memcache">Provisioning Memcache</h3>
<ul>
<li><p>we'll log in to Memcached vm and switch to the root user</p>
<pre><code class="lang-sh">    vagrant ssh mc01
    sudo su -
</code></pre>
</li>
<li><p>Update the OS and install EPEL repository (similar to the MySQL provisioning)</p>
<pre><code class="lang-sh">    yum update -y
    yum install epel-release -y
</code></pre>
</li>
<li><p>Now, we'll install <code>memcached</code> package</p>
<pre><code class="lang-sh">    yum install memcached -y
</code></pre>
</li>
<li><p>Similar to Mysql, let's start, enable and check the status of the service</p>
<pre><code class="lang-sh">    systemctl start memcached
    systemctl <span class="hljs-built_in">enable</span> memcached
    systemctl status memcache
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332288643/6b251c7d-0aaf-478f-a34b-3793561d8d3f.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Run the command below to enable <code>memcached</code> service listens on TCP port <code>11211</code> and UDP port <code>11111</code></p>
<pre><code class="lang-sh">   memcached -p 11211 -U 11111 -u memcached -d
</code></pre>
</li>
<li><p>Validate if it is running on the right port</p>
<pre><code class="lang-sh">   ss -tunlp | grep 11211
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332314010/6d04b298-bf87-40c2-af1f-ba7b00a86093.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Good work!!!!!! You can exit from the server with the <code>exit</code> command.</p>
</li>
</ul>
<h3 id="heading-provisioning-rabbitmq">Provisioning RabbitMQ</h3>
<ul>
<li><p>Let's log in to RabbitMQ vm and switch to the root user</p>
<pre><code class="lang-sh">    vagrant ssh rmq01
    sudo su -
</code></pre>
</li>
<li><p>Update the OS and download the EPEL repository</p>
<pre><code class="lang-sh">   yum update -y
   yum install epel-release -y
</code></pre>
</li>
<li><p>Before the installation of <code>RabbitMQ</code>, we need to install its dependencies first.</p>
<pre><code class="lang-sh">    yum install wget -y
    <span class="hljs-built_in">cd</span> /tmp/
    wget http://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
    sudo rpm -Uvh erlang-solutions-2.0-1.noarch.rpm
</code></pre>
</li>
<li><p>Now Install the RabbitMQ server. With the command below, install the script and pipe with the shell to execute the script.</p>
<pre><code class="lang-sh">    curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
    sudo yum install rabbitmq-server -y
</code></pre>
</li>
<li><p>Let's start, enable and check the status of our RabbitMQ service.</p>
<pre><code class="lang-sh">    systemctl start rabbitmq-server
    systemctl <span class="hljs-built_in">enable</span> rabbitmq-server
    systemctl status rabbitmq-server
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332361423/5ba3ab92-91bb-474a-beb2-0d4511fad677.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Create a <code>test</code> user with a password <code>test</code>, then create a user_tag for the test user as administrator. When completed, restart the rabbitmq service</p>
<pre><code class="lang-sh">    <span class="hljs-built_in">cd</span> ~
    sh -c <span class="hljs-string">'echo "[{rabbit, [{loopback_users, []}]}]." &gt; /etc/rabbitmq/rabbitmq.config'</span>
    rabbitmqctl add_user <span class="hljs-built_in">test</span> <span class="hljs-built_in">test</span>
    rabbitmqctl set_user_tags <span class="hljs-built_in">test</span> administrator
    systemctl restart rabbitmq-server
</code></pre>
</li>
<li><p>Check the service status to verify the proper configuration.</p>
</li>
<li><p>Good!!! You can exit with the <code>exit</code> command</p>
</li>
</ul>
<h3 id="heading-provisioning-tomcat">Provisioning Tomcat</h3>
<ul>
<li><p>Login to the <code>app01</code> vm and switch to the root user</p>
<pre><code class="lang-sh">    vagrant ssh app01
    sudo su -
</code></pre>
</li>
<li><p>Update the OS with the latest parches and download EPEL repository</p>
<pre><code class="lang-sh">      yum update -y
      yum install epel-release -y
</code></pre>
</li>
<li><p>Install dependencies for the Tomcat server</p>
<pre><code class="lang-sh">      yum install java-1.8.0-openjdk -y
      yum install git maven wget -y
</code></pre>
</li>
<li><p>Now we can download Tomcat. First switch to /tmp/ directory.</p>
<pre><code class="lang-sh">   <span class="hljs-built_in">cd</span> /tmp
   wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz
   tar xzvf apache-tomcat-8.5.37.tar.gz
</code></pre>
</li>
<li><p>Add tomcat user</p>
<pre><code class="lang-sh">    useradd --home-dir /usr/<span class="hljs-built_in">local</span>/tomcat8 --shell /sbin/nologin tomcat
</code></pre>
</li>
<li><p>Copy our data to <code>/usr/local/tomcat8</code></p>
<pre><code class="lang-sh">   cp -r /tmp/apache-tomcat-8.5.37/* /usr/<span class="hljs-built_in">local</span>/tomcat8/ls /usr/<span class="hljs-built_in">local</span>/tomcat8
</code></pre>
</li>
<li><p>Change the ownership of files in <code>/usr/local/tomcat8/</code></p>
<pre><code class="lang-sh">    ls -l /usr/<span class="hljs-built_in">local</span>/tomcat8/
    chown -R tomcat.tomcat /usr/<span class="hljs-built_in">local</span>/tomcat8
    ls -l /usr/<span class="hljs-built_in">local</span>/tomcat8/
</code></pre>
</li>
<li><p>Next, we will setup systemd for Tomcat</p>
<pre><code class="lang-sh">    vi /etc/systemd/system/tomcat.service
    Content to add tomcat.service file:
    [Unit]
    Description=Tomcat
    After=network.target

    [Service]
    User=tomcat
    WorkingDirectory=/usr/<span class="hljs-built_in">local</span>/tomcat8
    Environment=JRE_HOME=/usr/lib/jvm/jre
    Environment=JAVA_HOME=/usr/lib/jvm/jre
    Environment=CATALINA_HOME=/usr/<span class="hljs-built_in">local</span>/tomcat8
    Environment=CATALINE_BASE=/usr/<span class="hljs-built_in">local</span>/tomcat8
    ExecStart=/usr/<span class="hljs-built_in">local</span>/tomcat8/bin/catalina.sh run
    ExecStop=/usr/<span class="hljs-built_in">local</span>/tomcat8/bin/shutdown.sh
    SyslogIdentifier=tomcat-%i

    [Install]
    WantedBy=multi-user.target
</code></pre>
</li>
<li><p>Whenever a change is made to <code>/etc/systemd/sytem/</code>, we need to always run the command below</p>
<pre><code class="lang-sh">    systemctl daemon-reload
</code></pre>
</li>
<li><p>We can now start, enable and check the status of the Tomcat service.</p>
<pre><code class="lang-sh">    systemctl start tomcat
    systemctl <span class="hljs-built_in">enable</span> tomcat
    systemctl status tomcat
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332426096/ca917a0e-5326-45a5-a7c7-e0c220ddc913.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Code Build and Deploy to Tomcat server</p>
</li>
<li><p>We will clone our source code in the <code>/tmp</code> directory, the <code>cd</code> to the <code>vprofile-project</code> directory</p>
<pre><code class="lang-sh">    git <span class="hljs-built_in">clone</span> https://github.com/rumeysakdogan/vprofile-project.git
    ls
    <span class="hljs-built_in">cd</span> vprofile-project/
</code></pre>
</li>
<li><p>Before we build our artefact, we need to update our configuration file that will be connected to our backend services db, Memcached and rabbitmq service.</p>
<pre><code class="lang-sh">      vi src/main/resources/application.properties
</code></pre>
<pre><code class="lang-sh">    <span class="hljs-comment">#JDBC Configutation for Database Connection</span>
    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://db01:3306/accounts?useUnicode=<span class="hljs-literal">true</span>&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull
    jdbc.username=admin
    jdbc.password=admin123

    <span class="hljs-comment">#Memcached Configuration For Active and StandBy Host</span>
    <span class="hljs-comment">#For Active Host</span>
    memcached.active.host=mc01
    memcached.active.port=11211
    <span class="hljs-comment"># For StandBy Host</span>
    memcached.standBy.host=127.0.0.2
    memcached.standBy.port=11211

    <span class="hljs-comment">#RabbitMq Configuration</span>
    rabbitmq.address=rmq01
    rabbitmq.port=5672
    rabbitmq.username=<span class="hljs-built_in">test</span>
    rabbitmq.password=<span class="hljs-built_in">test</span>
</code></pre>
</li>
<li><p>Run mvn install to build the artifact c target/ ls</p>
</li>
<li><p>Stop the tomcat service and remove the ROOT file to be replaced with our artifact</p>
<pre><code class="lang-sh">    systemctl stop tomcat
    rm -rf /usr/<span class="hljs-built_in">local</span>/tomcat8/webapps/ROOT
</code></pre>
</li>
<li><p>Copy our artifact to the <code>/usr/local/tomcat8/webapps</code> directory as ROOT.war</p>
<pre><code class="lang-sh">    cp target/vprofile-v2.war /usr/<span class="hljs-built_in">local</span>/tomcat8/webapps/ROOT.war
    systemctl start tomcat
</code></pre>
</li>
</ul>
<p>Now time to provision the nginx server</p>
<h3 id="heading-provisioning-nginx">Provisioning Nginx</h3>
<ul>
<li><p>Update the OS (ubuntu)</p>
<pre><code class="lang-sh">      sudo apt update &amp;&amp; sudo apt upgrade -y
</code></pre>
</li>
<li><p>Install nginx</p>
<pre><code class="lang-sh">    sudo apt install nginx -y
</code></pre>
</li>
<li><p>Let's create an nginx conf file in the <code>/etc/nginx/sites-available/vproapp</code> directory</p>
<pre><code class="lang-sh">  sudo vi /etc/nginx/sites-available/vproapp
</code></pre>
</li>
<li><p>Add the content below</p>
<pre><code class="lang-sh">    upstream vproapp {
    server app01:8080;
    }
    server {
    listen 80;
    location / {
    proxy_pass http://vproapp;
    }
    }
</code></pre>
</li>
<li><p>Remove the default nginx config file</p>
<pre><code class="lang-sh">   sudo rm -rf /etc/nginx/sites-enabled/default
</code></pre>
</li>
<li><p>Create a symbolic link for our configuration file using the default config location below to enable our site. Then restart and enable nginx server.</p>
<pre><code class="lang-sh">    sudo ln -s /etc/nginx/sites-available/vproapp /etc/nginx/sites-enabled/vproapp
    sudo systemctl restart nginx
    sudo systemctl <span class="hljs-built_in">enable</span> nginx
</code></pre>
</li>
</ul>
<h3 id="heading-step3-validate-the-application-from-the-browser">STEP3: Validate the Application from the Browser</h3>
<ul>
<li><p>From the web01 server, run the <code>ifconfig</code> command to get the IP address for validation.</p>
<pre><code class="lang-sh">    ifconfig
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332483352/7fb10419-ca76-4254-8c1a-77d296cf8571.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Nginx is running on the browser using the ip address of the web01 server</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332547774/97a79ecc-89ca-4366-b935-36f47987658f.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Validate Db connection using credentials admin_vp for both username and password.</p>
</li>
<li><p>Validate app is running on the Tomcat server</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332677779/b519963a-092a-497f-a4d9-be72bfd3ad60.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Validate RabbitMQ connection by clicking <code>RabbitMQ</code></p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332773929/12fbc524-76f7-4801-9847-bcd5377579e1.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Validate Memcache connection by clicking <code>AllUsers</code></p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332804316/1b2c252c-4d32-461f-856d-92b12318b6d1.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Validate data is coming from Database when the user first time requests it.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682332822028/33370ca0-e700-4512-8a17-f8d316d0036c.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h3 id="heading-step4-cleanup">STEP4: CleanUp</h3>
<p>In our manual provisioning directory containing our vagrant file, run the command below to destroy all virtual machines.</p>
<pre><code class="lang-sh">  vagrant destroy
</code></pre>
<p>Violla!!!! See you in project two.</p>
<p>cc: <a target="_blank" href="https://medium.com/@osomudeyazudonu/project-1-vprofile-project-multi-tier-web-application-stack-setup-locally-59ef7917fc42">zudonu osomudeya</a></p>
]]></content:encoded></item></channel></rss>