Skip to content

Commit

Permalink
Merge pull request #11 from SolaceLabs/SOL-1257
Browse files Browse the repository at this point in the history
Sol 1257
  • Loading branch information
PhilippeKhalife committed Feb 1, 2018
2 parents f8a8b12 + 4715d72 commit 053e6b9
Show file tree
Hide file tree
Showing 11 changed files with 951 additions and 294 deletions.
16 changes: 8 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@ We'd love for you to contribute and welcome your help. Here are some guidelines

## <a name="issue"></a> Did you find a issue?

* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/SolaceLabs/solace-azure-quickstart-template/issues).
* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/SolaceProducts/solace-azure-quickstart-template/issues).

* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/SolaceLabs/solace-azure-quickstart-template/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/SolaceProducts/solace-azure-quickstart-template/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.

## <a name="submitting"></a> Did you write a patch that fixes a bug?

Open a new GitHub pull request with the patch following the steps outlined below. Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.

Before you submit your pull request consider the following guidelines:

* Search [GitHub](https://github.com/SolaceLabs/solace-azure-quickstart-template/pulls) for an open or closed Pull Request
* Search [GitHub](https://github.com/SolaceProducts/solace-azure-quickstart-template/pulls) for an open or closed Pull Request
that relates to your submission. You don't want to duplicate effort.

### Submitting a Pull Request
Expand All @@ -28,11 +28,11 @@ Please follow these steps for all pull requests. These steps are derived from th

#### Step 1: Fork

Fork the project [on GitHub](https://github.com/SolaceLabs/solace-azure-quickstart-template) and clone your fork
Fork the project [on GitHub](https://github.com/SolaceProducts/solace-azure-quickstart-template) and clone your fork
locally.

```sh
git clone https://github.com/<my-github-repo>/solace-samples-semp
git clone https://github.com/<my-github-repo>/solace-azure-quickstart-template
```

#### Step 2: Branch
Expand Down Expand Up @@ -61,7 +61,7 @@ repository.
If you have not set the upstream, do so as follows:

```sh
$ git remote add upstream https://github.com/SolaceLabs/solace-azure-quickstart-template
$ git remote add upstream https://github.com/SolaceProducts/solace-azure-quickstart-template
```

then:
Expand Down Expand Up @@ -96,7 +96,7 @@ git push origin my-fix-branch

#### Step 6: Pull Request

In GitHub, send a pull request to `solace-samples-semp:master`.
In GitHub, send a pull request to `solace-azure-quickstart-template:master`.

When fixing an existing issue, use the [commit message keywords](https://help.github.com/articles/closing-issues-via-commit-messages/) to close the associated GitHub issue.

Expand All @@ -108,7 +108,7 @@ That's it! Thank you for your contribution!

## <a name="features"></a> **Do you have an ideas for a new feature or a change to an existing one?**

* Open a GitHub [enhancement request issue](https://github.com/SolaceLabs/solace-aws-ha-quickstart/issues/new) and describe the new functionality.
* Open a GitHub [enhancement request issue](https://github.com/SolaceProducts/solace-azure-quickstart-template/issues/new) and describe the new functionality.

## <a name="questions"></a> Do you have questions about the source code?

Expand Down
85 changes: 52 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,95 +6,114 @@ The Solace Virtual Message Router (VMR) is enterprise-grade messaging middleware
How to Deploy a VMR
-------------------

VMRs can either be deployed as a 3 node HA cluster or a single node. For simple test environments that need to validate application functionality, a single instance will suffice.
VMRs can either be deployed as a three node HA cluster or a single node. For simple test environments that need to validate application functionality, a single instance will suffice.

![alt text](https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/single-vmr.png "Single Node Deployment")
![alt text](images/single-vmr.png "Single Node Deployment")

Note that in production or any environment where message loss can not be tolerated, an HA cluster is required.

![alt text](https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/ha-cluster.png "HA Cluster Deployment")
![alt text](images/ha-cluster.png "HA Cluster Deployment")


This is a 2 step process:
This is a two step process:

* Go to the Solace Developer portal and request a Solace Community edition VMR or Evaluation edition VMR. This process will return an email with a Download link. Do a right click "Copy Hyperlink" on the "Download the VMR for Docker" hyperlink. This URL link will be needed in the following section. The link below will take you to the correct version of the VMR you require depending on whether you want a single instance or an HA Cluster.
* Go to the Solace Developer portal and request a Solace Community edition VMR or Evaluation edition VMR. This process will send you an email with a Download link. Right click "Copy Hyperlink" on the "Download the VMR for Docker" hyperlink. This URL will be needed in the following section. The link below will take you to the correct version of the VMR you require depending on whether you want a single instance or an HA Cluster.

| COMMUNITY EDITION FOR SINGLE NODE | EVALUATION EDITION FOR HA CLUSTER
| --- | --- |
<a href="http://dev.solace.com/downloads/download_vmr-ce-docker" target="_blank">
<img src="https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/register.png"/>
<img src="images/register.png"/>
</a>

<a href="http://dev.solace.com/downloads/download-vmr-evaluation-edition-docker/" target="_blank">
<img src="https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/register.png"/>
<img src="images/register.png"/>
</a>


* Hit the "Deploy to Azure" button, and in the deployment template add the link to the VMR provided by Solace.

<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FSolaceLabs%2Fsolace-azure-quickstart-template%2Fmaster%2Fazuredeploy.json" target="_blank">
<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FSolaceProducts%2Fsolace-azure-quickstart-template%2Fmaster%2Fazuredeploy.json" target="_blank">
<img src="http://azuredeploy.net/deploybutton.png"/>
</a>
<a href="http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2FSolaceLabs%2Fsolace-azure-quickstart-template%2Fmaster%2Fazuredeploy.json" target="_blank">
<a href="http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2FSolaceProducts%2Fsolace-azure-quickstart-template%2Fmaster%2Fazuredeploy.json" target="_blank">
<img src="http://armviz.io/visualizebutton.png"/>
</a>

The fields that you need to fill out are:
1. Resource Group - A new group, or an existing group that will be available in the pulldown menu once "Use existing" is selected.
2. Location - Select region most suitable to you.
3. Storage Account Name – New or existing storage account, your VHD will be stored here.
4. Admin Username - Username for the virtual Machine.
5. Admin Password - Password for the virtual Machine.
6. Security Group Name – New or existing security group, VMR default ports will be made publicly available.
7. DNS Label – Used for the public DNS name for the virtual machine.
8. CentOS version – Use Centos 7.2 or CentOS 7.3
9. VM Size – Use Standard_D2_V2 or Standard_F2s
10. Solace VMR URI – The URI link from the registration email received during Step 1 of the install process.
11. Deployment Model - High Availability, Single Node

| Field | Value |
|----------------------------|--------------------------------------------------------------------------------|
| **BASICS** | |
| Resource Group | A new group, or an existing group that will be available from the pull-down menu once "Use existing" is selected. |
| Location | Select region most suitable to you. |
| **SETTINGS** | |
| Storage Account Name | New or existing storage account, where your VHD will be stored. |
| Admin Username | Username for the virtual Machine(s). Do not use special characters. |
| Admin Password | Password for the virtual Machine(s) and for the 'admin' SolOS CLI user. |
| Security Group Name | New or existing security group, where VMR default ports will be made publicly available. |
| Workspace Name | New or existing OMS Log Analytics workspace, where logs and diagnostics are monitored. Note that not all regions support workspaces. |
| DNS Label for LB IP | Used for the public DNS name of the Load Balancer. |
| DNS Label for VM IP | Used for the public DNS name of each Virtual Machine(s). |
| CentOS Version | The CentOS version for deploying the Docker containers. Use CentOS 7.2, 7.3, or 7.4. |
| Message Routing VM Size | The size of the VM for the Solace Message Routing Nodes. Use Standard_D2_v2, Standard_DS2_v2, Standard_D2_v3, or Standard_D2s_v3. Note that not all regions support all these VM sizes. |
| Monitor VM Size | The size of the VM for the Solace Monitor Node. Use Standard_D2_v2, Standard_DS2_v2, Standard_D2_v3, or Standard_D2s_v3. Note that not all regions support all these VM sizes. |
| Data Disk Size | The size of the data disk in GB for diagnostics and message spooling on the Solace Message Routing Nodes. Use 0, 20, 40, 80, or 160. |
| Solace VMR URI | The URI link from the registration email received during Step 1 of the install process. |
| Deployment Model | High Availability or Single Node. |

After completing the template fields and accepting the legal terms, you need to purchase the deployment, the cost will only be related to the Azure instance costs.
After completing the template fields and accepting the legal terms, you need to purchase the deployment. The cost will only be related to the Azure instance and storage costs.

Once the deployment has started you can view its progress under the Resource Groups tab. Select the resource group you have deployed into, then select the correct deployment across the top. You can then scroll down and see its progress.
Once the deployment has started, you can view its progress under the Resource Groups tab. Select the resource group you have deployed into, then select the correct deployment across the top. You can then scroll down and see its progress.

In this example the resource group is testvmr3, the Microsoft.Template template is in progress. You can see the VMs have started, SolaceVMR0,1,2; the Docker extensions have been installed and the VMR configurations are taking place. Once the VMRs are configured, the Primary VMR validates the cluster and will signal the deployment complete. After this point you can access the VMRs.
In this example, the resource group is `testvmr3` and the `Microsoft.Template` template is in progress. You can see the VMs `SolaceVMR0`, `SolaceVMR1`, and `SolaceVMR2` have started, the Docker Extensions have been installed on each VM, and the VMR configurations are taking place. Once the VMRs are configured, the Primary VMR validates the cluster and signals the deployment as completed. At this point, you can access the VMRs.

![alt text](images/deployment.png "deployment progress")

In addition to the above resources, the deployment creates an Azure Load Balancer that gives you management and data access to the currently AD-Active VMR.

Microsoft OMS (Operations Management Suite) Agents are also installed on each VMR using the OMS Agent Extension. They collect and send logs to a new or existing Azure Log Analytics workspace resource that aggregates logs and diagnostics from each virtual machine in the deployment.

![alt text](https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/deployment.png "deployment progress")

# Gaining admin access to the VMR

For persons used to working with Solace message router console access, this is still available with the Azure instance. The [connect] button to the upper left displays this information: Use the "Admin Username" and "Admin Password" provided.
If you are used to working with console access to the Solace message router, this is available with the Azure instance. The [connect] button at the upper left of the `SolaceVMR0`, `SolaceVMR1`, or `SolaceVMR2` resource view displays this information:

![alt text](images/remote_access.png "console with SolOS cli")

![alt text](https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/remote_access.png "console with SolOS cli")
Use the specified "Admin Username" and "Admin Password" to log in. Once you have access to the base OS command line you can access the SolOS CLI with the following command:

Once you have access to the base OS command line you can access the SolOS CLI with the following command:
```
sudo docker exec -it solace /usr/sw/loads/currentload/bin/cli -A
```
It would be advised to change the SolOS cli admin user password, as per these [instructions](http://docs.solace.com/Configuring-and-Managing-Routers/Configuring-Internal-CLI-User-Accounts.htm#Changing-CLI-User-Passwords)

If you are unfamiliar with the Solace message router, or would prefer an administration application, the SolAdmin management application is available. For more information on SolAdmin see the [SolAdmin page](http://dev.solace.com/tech/soladmin/). To get SolAdmin, visit the Solace [download page](http://dev.solace.com/downloads/) and select the OS version desired. The Management IP would be the external Public IP associated with your Azure instance and the port would be 8080 by default.

If you are unfamiliar with the Solace message router, or would prefer an administration application, the SolAdmin management application is available. For more information on SolAdmin see the [SolAdmin page](http://dev.solace.com/tech/soladmin/). To get SolAdmin, visit the Solace [download page](http://dev.solace.com/downloads/) and select OS version desired. Management IP will be the External IP associated with your Azure instance and the port will be 8080 by default.
![alt text](images/azure-soladmin.png "soladmin connection to gce")

To manage the currently AD-Active VMR, you can open a CLI SSH connection (on port 2222) or connect SolAdmin (on port 8080) to the Public IP Address associated with the Load Balancer as the 'admin' user. From the Resource Group view for your deployment on the Azure Portal, the Load Balancer is the resource named `myLB`, and its Public IP Address is the resource named `myLBPublicIPD`, which has an IP address and a DNS name that you can connect to.

![alt text](https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/azure-soladmin.png "soladmin connection to gce")

# Testing data access to the VMR

To test data traffic though the newly created VMR instance, visit the Solace developer portal and and select your preferred programming language to [send and receive messages](http://dev.solace.com/get-started/send-receive-messages/). Under each language there is a Publish/Subscribe tutorial that will help you get started.

![alt text](https://raw.githubusercontent.com/SolaceLabs/solace-azure-quickstart-template/master/images/solace_tutorial.png "getting started publish/subscribe")
To connect to the currently AD-Active VMR for messaging, use the Public IP Address associated with the Load Balancer. From the Resource Group view for your deployment on the Azure Portal, the Load Balancer is the resource named `myLB`, and its Public IP Address is the resource named `myLBPublicIPD`, which has an IP address and a DNS name that you can connect to.

![alt text](images/solace_tutorial.png "getting started publish/subscribe")

# Troubleshouting VMR startup

All startup logs are located here: /var/lib/waagent/custom-script/download/0/ and are readable by root only.
All startup logs are located on the host under this path: `/var/lib/waagent/custom-script/download/0/` and are readable by root only.

Host and Container logs and diagnostics are collected and aggregated in a Azure Log Analytics workspace that can be viewed and analyzed from the Azure Portal. The Log Analytics resource can be found under the Resource Groups tab > your Resource Group or under More services > Intelligence + Analytics. The Container Monitoring Solution and the Log Search solution are installed as part of the deployment. VMR container logs are collected under the `Syslog` Type.

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Authors

See the list of [contributors](https://github.com/SolaceLabs/solace-azure-quickstart-template/graphs/contributors) who participated in this project.
See the list of [contributors](../../graphs/contributors) who participated in this project.

## License

Expand Down
Loading

0 comments on commit 053e6b9

Please sign in to comment.