# Provision Azure Virtual Machine
## Configure Virtual Machine and Resource Group
On Microsoft Azure navigate to the `Virtual machines` page then create a new Virtual Machine
![[Pasted image 20250411095751.png]]
> [!info] Creating Resource Group
> Once inside the `Basics` tab select `Create new` under the `Resource group` section *(this will create a universal resource group that this virtual machine will go under)*.
> ![[Pasted image 20250411100410.png]]
Navigate to `Instance details > Virtual machine name` type in a name
![[Pasted image 20250411100807.png]]
Navigate to `Instance details > Image` choose `Windows 10 Pro, version 22H2 - x64 Gen2`
![[Pasted image 20250411100912.png]]
Navigate to `Instance details > Size` and select a size that at least 2 virtual CPUs and 8 Gigabytes of memory
![[Pasted image 20250411101139.png]]
Navigate to `Administrator account` and create a `Username` and `Password`
![[Pasted image 20250411101307.png]]
Navigate to `Licensing` and check the box next to `I confirm I have eligible Windows 10/11 license with multi-tenant hosting rights` then select `Review + create`
![[Pasted image 20250411101536.png]]
Select `Review + create`
![[Pasted image 20250411101730.png]]
Once the validation has passed select `Create`
![[Pasted image 20250411101921.png]]
## RDP into Windows Virtual Machine
Go the the `Virtual machine` and copy the IPv4 of the Windows Virtual Machine
![[Pasted image 20250411102433.png]]
Open `Remote Desktop Connection`
![[Pasted image 20250411102536.png]]
Paste the copied IPv4 into the Computer section of `Remote Desktop Connection` then press `Connect`
![[Pasted image 20250411102648.png]]
Type in the `Username` and `Password` you created for your virtual machine and press `Ok`
![[Pasted image 20250411102809.png]]
Select `Yes`
![[Pasted image 20250411102847.png]]
You should now be logging into the virtual machine
![[Pasted image 20250411102933.png]]
Press `Accept`
![[Pasted image 20250411103013.png]]
![[Pasted image 20250411103051.png]]
# Prepare Windows Server Environment
## Enable IIS & CGI Module
I used the search bar to open the `Control Panel`
![[Pasted image 20250414095103.png]]
Select `Uninstall a program` under `Programs`
![[Pasted image 20250414100734.png]]
Then `Turn Windows features on or off`
![[Pasted image 20250414100955.png]]
Check the box next to `Internet Information Services`
![[Pasted image 20250414101118.png]]
After expand `World Wide Web Services` > `Application Development Features` and select `CGI` then select `Ok`
![[Pasted image 20250414101336.png]]
After you see `Windows completed the requested changed`
![[Pasted image 20250414101840.png]]
Go to your web browser of choice and enter a loopback address `127.0.0.1`. The following default webpage should appear.
![[Pasted image 20250414101923.png]]
## Install Supporting Software
Open and install `PHPManagedForIIS_V1.5.0`
![[Pasted image 20250414103203.png]]
![[Pasted image 20250414103238.png]]
#### Installing rewrite_amd64_en-US
Open and install `rewrite_amd64_en-US`
![[Pasted image 20250414103743.png]]
#### Extracting php-7.3.8-nts-Win32-VC15-x86 into C:\PHP
Create the folder C:\PHP then open a new file explorer tab and extract `php-7.3.8-nts-Win32-VC15-x86` into C:\PHP
![[Pasted image 20250414104853.png]]
#### Installing VC_redist.x86
Install `VC_redist.x86`
![[Pasted image 20250414110019.png]]
#### Installing MySQL 5.5.62
Install `MySQL 5.5.62`
![[Pasted image 20250414110249.png]]
- Typical Setup
- Launch Configuration Wizard (after install)
- Standard Configuration
- Username: root
- Password: root
![[Pasted image 20250414110753.png]]
### PHP Manager for IIS
### Register PHP-CGI Handler
Open `Internet Information Services (IIS) Manager` as a admin via the search bar
![[Pasted image 20250414111118.png]]
Open `PHP Manager`
![[Pasted image 20250414111317.png]]
Register the new PHP version `C:\PHP\php-cgi.exe`
![[Pasted image 20250414111705.png]]
### Restart IIS
Reload IIS by stopping then starting
![[Pasted image 20250414111909.png]]
![[Pasted image 20250414111933.png]]
# Deploy osTicket Application
## Upload osTicket Files
Unzip `osTicket-v1.15.8` then copy the `osTicket-v1.15.8 > upload` folder into `C:\inetpub\wwwroot`. After uploading I changed the name to osTicket then restarted IIS
![[Pasted image 20250422131336.png]]
On IIS navigate to `Windows-OS-Ticket > Sites > osTicket` then click the browse port 80 http button
![[Pasted image 20250422131647.png]]
![[Pasted image 20250422131655.png]]
## Verify Installer Page
The site should look like this
![[Pasted image 20250422131729.png]]
## Enable PHP Extensions
On ISS navigate to `Windows-OS-Ticket > Sites > osTicket > PHP Manager > Enable or disable an extension` and enable the following:
- php_imap.dll
- php_intl.dll
- php_opcache.dll
![[Pasted image 20250424201221.png]]
![[Pasted image 20250424201328.png]]
After refresh osTicket in your browser
![[Pasted image 20250422132234.png]]
# Configure osTicket & Database
## Prepare Configuration File
Navigate and change the name of `C:\inetpub\wwwroot\osTicket\include\ost-sampleconfig.php` to `C:\inetpub\wwwroot\osTicket\include\ost-config.php`
![[Pasted image 20250422132621.png]]
On `C:\inetpub\wwwroot\osTicket\include\ost-config.php` in the `Properties > Security > Advanced`assign the following permissions:
- Disable inheritance > Remove All
- New Permissions > Everyone > All
![[Pasted image 20250422132949.png]]
![[Pasted image 20250422133122.png]]
Click `Apply` then `OK`
![[Pasted image 20250422133214.png]]
## Run Web Installer
Go to the osTicket website and press continue
![[Pasted image 20250422133252.png]]
Enter in all information up to `Database Settings`
![[Pasted image 20250422133540.png]]
## Database Setup with HeidiSQL
### Install HeidiSQL
Navigate to `C:\Users\labuser\Downloads\osTicket-Installation-Files\osTicket-Installation-Files` and install `HeidiSQL_12.3.0.6589_Setup.exe` (Press next on everything then install)
![[Pasted image 20250422134103.png]]
### Create osTicket Database
On `HeidiSQL` make the connection to `osTicket`
Select `New`
![[Pasted image 20250422134228.png]]
Choose a username and password and select `Open`
![[Pasted image 20250422134314.png]]
Create a database called `osTicket`. Right click `Unnamed` the select `Create new > Database`
![[Pasted image 20250422134651.png]]
![[Pasted image 20250422134725.png]]
### Finalize Installer
Go back to browser and set up the MySQL database using the information you choose for HeidiSQL the select `Install Now`
![[Pasted image 20250422134837.png]]
![[Pasted image 20250422134929.png]]
New information should now be populated inside the osTicket databse
![[Pasted image 20250422135017.png]]
# Post-Installation Verification
Admin/Analyst Login Page `http://localhost/osTicket/scp/index.php`
![[Pasted image 20250422140247.png]]
End User osTicket URL `http://localhost/osTicket`
![[Pasted image 20250422140325.png]]
## Admin Panel Access
Navigate to `http://localhost/osTicket/scp/login.php` and login using your admin credentials
![[Pasted image 20250422135206.png]]
![[Pasted image 20250422135232.png]]
## End-User Portal
Navigate to `http://localhost/osTicket/` to see the End User URL
![[Pasted image 20250422135354.png]]
# osTicket Administration Configuration
On the `Agent Panel` go to `Admin Panel`
![[Pasted image 20250422140923.png]]
## Roles & Permissions (Supreme Admin)
Add `Supreme Admin` to `Agents > Roles > Add New Role`
![[Pasted image 20250422141351.png]]
Name - `Supreme Admin`
![[Pasted image 20250422141457.png]]
In `Permissions > Tickets` check all boxes
![[Pasted image 20250422141547.png]]
In `Permissions > Tasks` check all boxes
![[Pasted image 20250422141627.png]]
In `Permissions > Knowledgebase` check all boxes
![[Pasted image 20250422141706.png]]
Select `Add Role`
![[Pasted image 20250422141741.png]]
## Departments
Navigate to `Departments` then select `Add New Department`
![[Pasted image 20250422144126.png]]
For `Parent` select `Top-Level Department` and for `Name` select `SysAdmins`
![[Pasted image 20250422144348.png]]
Then select `Create Dept`
![[Pasted image 20250422144434.png]]
## Teams
Navigate to `Teams` and select `Add New Team`
![[Pasted image 20250422144733.png]]
For `Name` choose `Online Banking` then select `Create Team`
![[Pasted image 20250422144920.png]]
## Guest Ticket Submission
Navigate to `Settings > Users`
![[Pasted image 20250422150453.png]]
Deselect `Registration Required` and click `Save Changes`
![[Pasted image 20250422150653.png]]
## Agent Accounts
Navigate to `Agents > Add New`
![[Pasted image 20250422150817.png]]
In `Account` set the following:
![[Pasted image 20250422151348.png]]
Select `Set Password`
![[Pasted image 20250424202615.png]]
Uncheck the `Send the agent a password reset email` and `Require password change at next login` boxes then create a password and press `Set`
![[Pasted image 20250424202740.png]]
In `Access` set the following:
![[Pasted image 20250422151455.png]]
In `Teams` set the following then select `Create`
![[Pasted image 20250422151553.png]]
Navigate to `Agents > Agents > Add New Agent`
![[Pasted image 20250424203237.png]]
Set the following in `Account`
![[Pasted image 20250422151929.png]]
In `Set Password` uncheck the `Send the agent a password reset email` and `Require password change at next login` boxes then create a password and press `Set`
![[Pasted image 20250424202740.png]]
In `Access` set the following
![[Pasted image 20250422152021.png]]
Select `Create`
![[Pasted image 20250422152056.png]]
## Customer Accounts
Navigate to `Agent Panel > Users > Add User` (If you see `Admin Panel` you are in the `Agent Panel`)
![[Pasted image 20250422153951.png]]
Create the user `Karen`
![[Pasted image 20250422154134.png]]
Create the user `Ken`
![[Pasted image 20250422154312.png]]
## Service-Level Agreements (SLAs)
Navigate to `Admin Panel > Manage > SLA > Add New SLA Plan` (If the top right hand side says `Agent Panel` you are in the `Admin Panel`)
![[Pasted image 20250422154544.png]]
### Severity A
Severity A is our highest priority level; helpdesk personnel must contact the client within one hour before the ticket becomes overdue, and these tickets are actioned 24/7.
![[Pasted image 20250423103137.png]]
### Severity B
Severity B is our second-highest priority level; helpdesk personnel must contact the client within four hours before the ticket becomes overdue, and these tickets are actioned 24/7.
![[Pasted image 20250423103349.png]]
### Severity C
Severity C is our standard priority level; helpdesk personnel must contact the client within eight hours before the ticket becomes overdue, and these tickets are actioned during business hours (Monday through Friday, 8:00 AM to 5:00 PM).
![[Pasted image 20250423103607.png]]
## Configuring Help Topics
Navigate to `Admin Panel > Manage > Help Topics > Add New Help Topic` (If the top right hand side says `Agent Panel` you are in the `Admin Panel`)
![[Pasted image 20250423104505.png]]
### Business Critical Outage
![[Pasted image 20250423104750.png]]
### Personal Computer Issues
![[Pasted image 20250423104923.png]]
### Equipment Request
![[Pasted image 20250423105331.png]]
### Password Reset
![[Pasted image 20250423105515.png]]
### Other
![[Pasted image 20250423105625.png]]
# Helpdesk Workflow Scenario
## End-User Ticket Creation (Entire mobile/online banking system is down)
Go to the Support Center with `http://http://localhost/osTicket/`
![[Pasted image 20250423110325.png]]
When creating a ticket, the end user may select the wrong help topic, but as the helpdesk professional, you can correct it once you see what the ticket is actually about. In the example below, they selected `Report a Problem` when it should have been `Report a Problem / Business Critical Outage`.
![[Pasted image 20250423110901.png]]
## Helpdesk Ticket Resolution
Login to `http://localhost/osTicket/scp/login.php` as `Normal Support` which is John Doe
![[Pasted image 20250423111632.png]]
You will see the ticket once you log in
![[Pasted image 20250423111405.png]]
Once inside the ticket you can change the SLA plan depending on how severe the ticket is. in this example I changed it to `Sev-A`
![[Pasted image 20250424205629.png]]
![[Pasted image 20250424205749.png]]
Next I changed the Help Topic to Business Critical Outage
![[Pasted image 20250424205856.png]]
![[Pasted image 20250424205952.png]]
Next I assigned the ticket to an `Asignee`
![[Pasted image 20250424210110.png]]
![[Pasted image 20250424210933.png]]
Login to the agent panel as Jane as she is apart of the `Online Banking`
team then add a update to the ticket.
![[Pasted image 20250424211411.png]]
![[Pasted image 20250424211605.png]]
Now that the issue has been fixed Jane can set the ticket to resolved
![[Pasted image 20250424211719.png]]