Setting up a local production Jira installation with MySQL

Download the Jira server install from here.

Follow the steps here to download and add the JDBC driver to your Jira server. Download and copy the mysql connector jar to

/opt/atlassian/jira/lib/

Chose the ‘set up myself’ option, and complete the form to point to your already installed MySQL db instance:

Configure your install properties:

On the next screen you’ll be prompted for your license key, or head over to the Atlassian site to purchase or create a trial key. When you enter your organization name (above) on the license site it will pick up your site id.

Create an admin user, continue and now you’re up and running!

Fixing npm global install permissions on MacOS

By default npm on MacOS tries to install global modules (npm install -g somemodule) to /usr/local/lib/node_modules and you get this error:

Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'

The npm docs here have a couple of steps to avoid this by telling npm to install to a location where you have have access to:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

Edit your .profile or .bash_profile to add the new location to your PATH:

export PATH=~/.npm-global/bin:$PATH

Now you should be all set!

 

:

 

AWS CloudWatch default metrics for EC2 instances

AWS CloudWatch allows you to monitor events and logs from the services you are running. There are a set of default metrics provided, and you can also create you own custom metrics.

From a running EC2 instance, let’s look at the metrics displayed beneath your selected instance, on the Monitoring tab:

By default we get metrics displayed for:

  • CPU utilization
  • Disk reads/writes bytes and operations
  • Network in/out bytes and packets
  • Status checks failed

Now let’s create a new CloudWatch dashboard and add some metrics. Press ‘Create Dashboard’:

Next you can select a chart type, and then select from the available metrics. For EC2 there are 105 metrics to pick from:

Let’s see what options we have – you can enter filter values in the entry field. Let’s say I’m interested in disk reads/writes:

Notice the second column is by InstanceId, so if you have many instances (including it seems terminated instances which are showing in my list), make sure you pick the stats for the instance you want to monitor – here I’ve added a widget for Disk read/write bytes, and CPU utilization:

 

Troubleshooting User Data scripts when creating AWS EC2 instances

When an AWS EC2 User Data script fails, you’ll see something like this in /var/log/cloud-init.log in your instance:

2018-02-03 06:08:16,536 - util.py[DEBUG]: Failed running /var/lib/cloud/instance/scripts/part-001 [127]

Traceback (most recent call last):

  File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 806, in runparts

    subp(prefix + [exe_path], capture=False)

  File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1847, in subp

    cmd=args)

cloudinit.util.ProcessExecutionError: Unexpected error while running command.

Command: ['/var/lib/cloud/instance/scripts/part-001']

Exit code: 127

Reason: -

Stdout: -

Stderr: -

2018-02-03 06:08:16,541 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)

2018-02-03 06:08:16,541 - handlers.py[DEBUG]: finish: modules-final/config-scripts-user: FAIL: running config-scripts-user with frequency once-per-instance

It tells you something failed, but not what. The trouble seems that output from your user data script does not go to the cloud-init.log by default.

One of the answers in this post suggests to pipe your script commands and output to logger into a separate log file like this:

set -x
exec > >(tee /var/log/user-data.log|logger -t user-data ) 2>&1
echo BEGIN
date '+%Y-%m-%d %H:%M:%S'

Now running my script with a ‘apt-get update -y’ looks like:

+ echo BEGIN
BEGIN
+ date '+%Y-%m-%d %H:%M:%S'
2018-02-03 23:37:55
+ apt-get update -y
... output continues here

And further down, here’s my specific error I was looking for:

+ java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.2.jar nogui

/var/lib/cloud/instance/scripts/part-001: line 11: java: command not found

My EC2 running the Ubuntu AMI does not have Java installed by default, so I need to install it with (adding to my User Data script):

apt-get install openjdk-8-jre-headless -y

… and now my script runs as expected.