This setup will use 4 instances to run Rancher server, Jenkins, Tomcat and an OpenVPN server. Then you will be able to work, build, deploy over a VPN link to instances in the cloud.
Setup our cloud
Get our credentials
Log on our cloud provider portal and get the account API credentials which you need to expose as environment variables, in my case using exoscale:
export DEMO_API_KEY='<your api key>'
export DEMO_SECRET_KEY='<your secret key>'
export CLOUDSTACK_ENDPOINT='https://api.exoscale.ch/compute'
export CLOUDSTACK_KEY=$DEMO_API_KEY
export CLOUDSTACK_SECRET=$DEMO_SECRET_KEY
Create a security group
Create a security group by using this python script:
# Create a virtual environment named ".venv"
python3 -m venv .venv
source ./.venv/bin/activate
# Install the cs package (1)
pip install cs
# Deploy firewall rules
./scripts/create-security-group.py "demo-devoxx"
Or manually create one in the interface with those rules:
-
Allow 22/tcp, 2376/tcp and 8080/tcp ports from any source, needed for Docker machine to provision hosts.
-
Allow 500/udp and 4500/udp ports from any source, needed for Rancher network.
-
Allow 9345/tcp and 9346/tcp ports from any source, needed for UI features like graphs, view logs, and execute shell.
-
Allow 1194/tcp and 2222/tcp ports from any source, needed to publish our VPN server container.
-
Allow 443/tcp ports from any source, needed to access Rancher UI over HTTPS.
Create a docker machine
-
Start a new docker machine directly from your local machine by using a docker driver since exoscale is providing one:
docker-machine create --driver exoscale \ --exoscale-api-key $DEMO_API_KEY \ --exoscale-api-secret-key $DEMO_SECRET_KEY \ --exoscale-instance-profile 'Tiny' \ --exoscale-disk-size '50' \ --exoscale-image 'ubuntu-16.04' \ --exoscale-security-group 'demo-devoxx' \ --exoscale-availability-zone 'ch-dk-2' \ "devoxxuk-ma"
-
Export the docker machine environment variables for this new machine:
eval $(docker-machine env devoxxuk-ma)
-
Start a docker container with Rancher server on our new docker machine:
docker run -d -p 8080:8080 rancher/server:v1.1.0-dev3
-
Point your browser to the public IP found in the portal for our instance:
http://xxx.xxx.xxx.xxx:8080/
(http://<IP_ADDRESS>:8080/ in my case).
|
Note
|
TLS At the time of writing, there’s a bug in the rancher server UI which loads
content over http only, making impossible to start a NGINX-TLS proxy in
front of it. You’ll find in |
Provisioning Docker hosts
-
First you need to add our cloud provider, exoscale in my case, as it’s not enabled by default.
Figure 2. Only a few provider are enabled by default -
Click on Manage available machine drivers and click the play sign button to the far right to enable exoscale driver.
-
Go back in your browser and you will see the logo for exoscale, click on it and enter your credentials, the same as used before for docker.
-
Next choose the security group you created in the portal (might be buggy)
-
Next choose the number of instances, 3 for our scenario (VPN, Jenkins, Tomcat). Named them as you want and choose a profile size that suits your needs.
Now we have a working rancher server running on a cloud instance with a provision of 3 hosts to run containers on them. Let’s deploy those 3 containers:
-
OpenVPN to create the VPN acess.
-
Jenkins to build our webapp.
-
Tomcat to run our webapp.
Setup containers on Rancher server
Time to deploy a first service, click on Add Service button (you will have to do this add 3 times)
OpenVPN
For the OpenVPN container:
-
Scale it to 1 container.
-
Enter a name for it: rancher-vpn-server.
-
Enter the docker image: nixel/rancher-vpn-server:latest.
-
Add this TCP port map: 1194 (on Host) to 1194 (in Container).
-
Add this TCP port map: 2222 (on Host) to 2222 (in Container).
-
In Volume section add a new volume to persist the VPN configuration:
/etc/openvpn:/etc/openvpn
-
In Security enable the container full access to the host by checking the box.
-
And start the container
After a while the container will be ready. But you don’t need to wait before creating the other ones.
Jenkins
-
Scale it to 1 container.
-
Enter a name for it: jenkins.
-
Enter the docker image: jenkins.
-
No port map is required
-
In Volume section add a new volume to persist the Jenkins configuration:
/var/jenkins_home
-
And start it!.
Tomcat
-
Scale it to 1 container.
-
Enter a name for it: tomcat.
-
Enter the docker image: tutum/tomcat:7.0.
-
No port map is required
-
And start it!.
Now we have 3 services running on our rancher server:
Connect to the VPN
You need to access the logs of the VPN server to get the generated password
to download the configuration. Go in Infrastructure
→ Hosts
to see the
3 instances details. On the vpn server container, clikc the 3 vertical dots
and choose View Logs
.
Using a OpenVPN client
Download the configuration file for OpenVPN through SSH as you will see in the log output with the corresponding command line. In my case I got this command:
sshpass -p Kkd58ew5gEk0QCcZFrWq ssh -p 2222 -o ConnectTimeout=4 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no<EMAIL_ADDRESS>"get_vpn_client_conf.sh <IP_ADDRESS>:1194" > RancherVPNClient.ovpn
Best is it to do the ssh -p 2222 ...
command and enter the password in the
prompt, skipping the use of sshpass
.
ssh -p 2222 -o ConnectTimeout=4 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no<EMAIL_ADDRESS>"get_vpn_client_conf.sh <IP_ADDRESS>:1194" > RancherVPNClient.ovpn
# when prompt enter: Kkd58ew5gEk0QCcZFrWq
And just load it in your OpenVPN client, and start the connection to the server. Now you are able to connect to Jenkins and tomcat using their own container IP address you’ll find on the service view. If you tried before connecting the VPN, you wouldn’t have been able.
Configure Jenkins
First we will need to get the admin password for Tomcat to be able to deploy the app. On the rancher server interface, go to the host view again, and view the Tomcat logs.
Open your browser to the http://JENKINS_CONTAINER:8080 (in my case http://<IP_ADDRESS>:8080/)
Before starting you must install Github Plugin and Maven following these steps:
-
Click Manage Jenkins menu option and then Manage Plugins
-
Go to Available tab and search for Github plugin, named “Github Plugin”. Activate its checkbox
-
Click Download now and install after restart button
-
When the plugin is installed enable checkbox Restart Jenkins when installation is complete and no jobs are running, and then wait for Jenkins to be restarted
-
When Jenkins is running again, go to Manage Jenkins and click Configure System
-
In Maven section click Add Maven button, enter a name for the installation and choose the maven version you want, in my case the latest available 3.3.9.
-
Click Save button to finish
Create a new job in the Dashboard, clikc create new jobs and do as follow:
-
Enter a job name, for example devoxx-demo
-
Choose Maven project and click OK
-
In Source Code Management section choose Git and enter this repository url:
-
In Build section enter the following maven goals and options. Replace TOMCAT_CONTAINER_IP with the IP assigned to your Tomcat container (<IP_ADDRESS> in my case) and TOMCAT_ADMIN_PASSWORD with the password we saw in the Tomcat logs of the container (
2VPRIHq3Lcq4
in my case).clean package tomcat7:redeploy -DTOMCAT_HOST=TOMCAT_CONTAINER_IP -DTOMCAT_PORT=8080 -DTOMCAT_USER=admin -DTOMCAT_PASS=TOMCAT_ADMIN_PASSWORD # In my case clean package tomcat7:redeploy -DTOMCAT_HOST=<IP_ADDRESS> -DTOMCAT_PORT=8080 -DTOMCAT_USER=admin -DTOMCAT_PASS=2VPRIHq3Lcq4
-
Save the job
Now you can click Build Now to run the job. If you check the Console Output you will see at the end a Build success:
Testing the sample app
Now browse to http://TOMCAT_CONTAINER_IP:8080/sample/ (in my case http://<IP_ADDRESS>:8080/sample/) and you will see some information about the Tomcat container and your browser.
Deploying the app from your local machine
Of course you can also deploy the app from your local computer to iterate faster by running the maven command locally:
git clone https://github.com/marcaurele/sample-spring-boot.git
cd sample-spring-boot
# Replace TOMCAT_CONTAINER_IP and TOMCAT_ADMIN_PASSWORD
mvn clean package tomcat7:redeploy -DTOMCAT_HOST=TOMCAT_CONTAINER_IP -DTOMCAT_PORT=8080 -DTOMCAT_USER=admin -DTOMCAT_PASS=TOMCAT_ADMIN_PASSWORD
# In my case
mvn clean package tomcat7:redeploy -DTOMCAT_HOST=<IP_ADDRESS> -DTOMCAT_PORT=8080 -DTOMCAT_USER=admin -DTOMCAT_PASS=2VPRIHq3Lcq4
Conslusion
We have now a development environment running on a public cloud provider, exoscale, with an encrypted connection to stay safe while coding our app, without to have to think anymore about exposing or mapping ports or editing firewall rules. This setup enables you to work from any location (office, home, wifi hotspot) too, or to give access to your environment to other people.
Credits
Based on Manel Martinez Gonzalez post with some modifiations.


An XLR is a circular, usually three-pronged, cable used commonly for carrying audio signals.
The origin of the name is a long story. The "X" comes from the "Cannon X" series, its original manufacturer. The "L" comes from a latching mechanism that was added later on. The "R" comes from the rubber insulation found around the cable.
A quarter-inch cable (also sometimes called a "microphone cable" or a "patch cable") is frequently used along with XLRs to carry audio signals. You'll use this cable for most instruments that need additional amplification or sound processing before the signal is sent to a speaker.
It's so named because the ends fo the cable are 1/4 of an inch in diameter.
A 3.5 mm cable is the cable used by most headphones and earbuds today. It's so named because the ends of the cable are 3.5 mm in diameter.


Rabbit Academy
MADRASATUL BANAAT SEC. SCHOOL
This is an educational institution designed to provide learning spaces and learning environments for the teaching of girl students under the direction of qualified teachers.


{% extends 'main/layout.html' %} {% block content %}
GOJEMS is registered with and licensed by the Federal Government of Nigeria.


Use this page to temporarily take servers out of service during maintenance operations. Out of service means the selected server(s) will not recieve traffic from NGINX and will be temporarily taken out of of their ASG.
Notes:
No servers currently marked as out of service for maintenance.
| Account | Environment | Name | InstanceId | IP Address | Owning Team | Role | Status | |
|---|---|---|---|---|---|---|---|---|
| {{server.AccountName}} | {{server.Environment}} ({{server.EnvironmentType}}) | {{server.Name}} | {{server.InstanceId}} | {{server.Ip}} | {{server.OwningCluster}} | {{server.Role}} | {{server.Status}} |
The following IPs are marked as out of service but no longer relate to an AWS Instance.
| Account | IP Address | |
|---|---|---|
| {{ip.AccountName}} | {{ip.Ip}} |


Installation guide¶
This guide will help install all the necessary software in a virtual environment generated with Anaconda. It is a step by step guide which might not be necessary for everyone. If you want to integrate the dependencies into your existing installation please do so.
Please be aware that I do not cover the installation of the Nvidia CUDA and CuDNN driver, please follow these instructions:
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/
Create a working directory¶
Create a folder, where you download all necessary stuff and keep the rest of your system clean:
mkdir deepatari_stuff && cd deepatari_stuff
Prepare conda environment¶
If you haven’t done it already, install anaconda with instructions from here:
http://conda.pydata.org/docs/installation.html
Create a conda environment with the basic packages and activate it:
conda create --name deepatariEnv python=2.7 pip numpy opencv matplotlib
source activate deepatariEnv
Add non standard packages¶
The rest of the packages should be installed in this order, because they downgrade certain packages which will be upgraded later on again.
Download and install Neon [3]:
git clone https://github.com/NervanaSystems/neon.git
cd neon && make sysinstall && cd ..
Download and install OpenAI gym [4]:
git clone https://github.com/openai/gym.git
cd gym && pip install -e '.[atari]' && cd ..
Install the latest Theano [6] version :
pip install --upgrade https://github.com/Theano/Theano/archive/master.zip
Install the latest Lasagne [2] for Theano :
pip install --upgrade https://github.com/Lasagne/Lasagne/archive/master.zip
Install Tensorflow (Ubuntu/Linux 64-bit, GPU enabled. Requires CUDA toolkit 7.5 and CuDNN v4. Other options on library page.) [5]:
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
Install Keras [1]:
pip install keras
Install deepatari¶
The setup routine installs some runnable scripts to use directly from the command line:
git clone git@github.com:cowhi/deepatari.git
cd deepatari && python setup.py install && cd ..
Now you should be able to test the installation.


Author: Sherif F. Makary
Level: Intermediate
Technologies: EJB, Security
Summary: The ejb-security
quickstart demonstrates the use of Java EE declarative security to control access to Servlets and EJBs in JBoss EAP.
Target Product: JBoss EAP
Source: https://github.com/jbossas/eap-quickstarts/
The ejb-security
quickstart demonstrates the use of Java EE declarative security to control access to Servlets and EJBs in Red Hat JBoss Enterprise Application Platform.
This quickstart takes the following steps to implement EJB security:
Define the security domain. This can be done either in the security
subsytem of the standalone.xml
configuration file or in the WEB-INF/jboss-web.xml
configuration file. This quickstart uses the other
security domain, which is provided by default in the standalone.xml
file.
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="Remoting" flag="optional">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
<login-module code="RealmDirect" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
</authentication>
</security-domain>
Add the @SecurityDomain("other")
security annotation to the EJB declaration to tell the EJB container to apply authorization to this EJB.
@RolesAllowed({ "guest" })
annotation to the EJB declaration to authorize access only to users with guest
role access rights.@RolesAllowed({ "guest" })
annotation to the Servlet declaration to authorize access only to users with guest
role access rights.<login-config>
security constraint to the WEB-INF/web.xml
file to force the login prompt.guest
role access rights to the EJB. This quickstart defines a user quickstartUser
with password quickstartPwd1!
in the guest
role. The guest
role matches the allowed user role defined in the @RolesAllowed
annotation in the EJB.guest
role access rights.The application this project produces is designed to be run on Red Hat JBoss Enterprise Application Platform 7.1 or later.
All you need to build this project is Java 8.0 (Java SDK 1.8) or later and Maven 3.3.1 or later. See Configure Maven for JBoss EAP 7.1 to make sure you are configured correctly for testing the quickstarts.
In the following instructions, replace EAP7_HOME
with the actual path to your JBoss EAP installation. The installation path is described in detail here: Use of EAP7_HOME and JBOSS_HOME Variables.
Using the add-user utility script, you must add the following users to the ApplicationRealm
:
| UserName | Realm | Password | Roles |
|---|---|---|---|
| quickstartUser | ApplicationRealm | quickstartPwd1! | guest |
| user1 | ApplicationRealm | password1! | app-user |
The first application user has access rights to the application. The second application user is not authorized to access the application.
To add the application users, open a command prompt and type the following commands:
For Linux:
EAP7_HOME/bin/add-user.sh -a -u 'quickstartUser' -p 'quickstartPwd1!' -g 'guest'
EAP7_HOME/bin/add-user.sh -a -u 'user1' -p 'password1!' -g 'app-user'
For Windows:
EAP7_HOME\bin\add-user.bat -a -u 'quickstartUser' -p 'quickstartPwd1!' -g 'guest'
EAP7_HOME\bin\add-user.bat -a -u 'user1' -p 'password1!' -g 'app-user'
If you prefer, you can use the add-user utility interactively.
For an example of how to use the add-user utility, see the instructions located here: Add an Application User.
For Linux: EAP7_HOME/bin/standalone.sh
For Windows: EAP7_HOME\bin\standalone.bat
mvn clean install wildfly:deploy
This will deploy target/ejb-security.war
to the running instance of the server.
The application will be running at the following URL http://localhost:8080/ejb-security/.
When you access the application, you are presented with a browser login challenge.
quickstartUser
/quickstartPwd1!
, the browser displays the following security info:
Successfully called Secured EJB
Principal : quickstartUser
Remote User : quickstartUser
Authentication Type : BASIC
Now close and reopen the brower session and access the application using the user1
/password1!
credentials. In this case, the Servlet, which only allows the guest
role, restricts the access and you get a security exception similar to the following:
HTTP Status 403 - Access to the requested resource has been denied
type Status report
message Access to the requested resource has been denied
description Access to the specified resource (Access to the requested resource has been denied) has been forbidden.
Next, change the EJB (SecuredEJB.java) to a different role, for example, @RolesAllowed({ "other-role" })
. Do not modify the guest
role in the Servlet (SecuredEJBServlet.java). Build and redeploy the quickstart, then close and reopen the browser and login using quickstartUser
/quickstartPwd1!
. This time the Servlet will allow the guest
access, but the EJB, which only allows the role other-role
, will throw an EJBAccessException:
HTTP Status 500
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.ejb.EJBAccessException: WFLYEJB0364: Invocation on method: public java.lang.String org.jboss.as.quickstarts.ejb_security.SecuredEJB.getSecurityInfo() of bean: SecuredEJB is not allowed
mvn wildfly:undeploy
You can also start the server and deploy the quickstarts or run the Arquillian tests from Eclipse using JBoss tools. For general information about how to import a quickstart, add a JBoss EAP server, and build and deploy a quickstart, see Use JBoss Developer Studio or Eclipse to Run the Quickstarts.
ejb-security
project and choose Run As
--> Run on Server
.If you want to debug the source code of any library in the project, run the following command to pull the source into your local repository. The IDE should then detect it.
mvn dependency:sources


State Trooper stops domestic assault in car in Lexington
by EndPlayLEXINGTON, Mass. - A Massachusetts State Trooper stopped a domestic assault Sunday afternoon in Lexington along Route 2 and a man was taken into custody.
Around 1:10 p.m., trooper Michael Sierra was patrolling Route 2 eastbound when he saw a 2009 Nissan Altima on the side of the road near exit 52A. He stopped, walked up to the car and saw a man and two women inside.
Related Headlines
The driver exited the car and allegedly lunged at Sierra and assaulted him in the right travel lane. Sierra responded and placed him in custody.
Other troopers, Lexington firefighters and EMS assisted.
An investigation revealed that when Sierra arrived, the 30-year-old suspect, of Lowell, was committing domestic assault against the two women passengers: a 29-year-old friend of Woburn and a 57-year-old relative from Burlington.
The older woman was taken to Lahey Hospital to be evaluated, while the younger woman declined medical attention. She was arrested for an outstanding warrant and taken to Concord State Police.
The suspect was found to be under the influence of drugs and taken to Lahey Hospital in Burlington for a psychiatric evaluation, where he remains as of Monday. State Police is charging him with five counts:
1. Assault and battery with a dangerous weapon
2. Assault and battery on a police officer
3. Domestic assault and battery
4. Operating under the influence of drugs
5. Disorderly conduct.


ACCOUNT NUMBER:<PHONE_NUMBER>.   1. YOUR NAME: .............................. 2. YOUR FULL ADDRESS: ................................... 3. YOUR TELEPHONE: .................................. 4. FAX: ................................................... 5. AGE: ............................. 6. SEX: ..................... 7. YOUR OCCUPATION: ................. 8. YOUR VALID ACCOUNT DETAILS: .................... AS SOON AS WE RECIEVE THIS, WE WILL COMMENCE WITH ALL NESSCCARY PROCEEDURES IN OTHER TO REMMIT THIS MONEY INTO YOUR ACCOUNT.  HOWEVER, WE SHALL PROCEED TO ISSUE ALL PAYMENTS DETAILS TO THE SAID MRS. WHITE, IF WE DO NOT HEAR FROM YOU WITHEN THE NEXT SEVEN WORKING DAYS FROM TODAY.  BEST REGARDS, PROF CHARLES SOLUDO CENTRAL BANK GOVERNOR CC: ALL FOREIGN INHERITTANCE FUNDS CC: SENATE PRESIDENT


Menu
Great
Start
Home
About
Events
Projects
Create investment interest
Goal
Start-ups and investment projects
Venture loans to business
Business acquisition
Description
Category
Cost
Add