Install Jira Software Server on CentOS 8 - CentLinux - Installation Guides & HowTos

Latest

Monday, 20 April 2020

Install Jira Software Server on CentOS 8

Install Jira Software Server on CentOS 8

In this article, We are installing and configuring a production ready Jira Software Server on CentOS 8.

 

This Article Provides:

 

What is Jira? :

Jira is a family of products built to help all types of teams in management of their work. Jira offers several products and deployment options that are purpose-built for Software, IT, Business, Ops teams, and more. Jira products are proprietary and developed by Atlassian.

Jira Software is an issue tracking product that allows bug tracking and agile project management. Jira Software is not free but we can download and use Jira software under a 30 days trial license.

 

Environment Specification:

We are using a minimal installed CentOS 8 virtual machine with following specification.

  • CPU - 3.4 Ghz (2 cores)
  • Memory - 4 GB
  • Storage - 40 GB
  • Operating System - CentOS 8.0
  • Hostname – jira-01.centlinux.com
  • IP Address - 192.168.116.206 /24

 

Install Fontconfig on CentOS 8:

Jira Software requires Java and the Java requires fontconfig utilities. Although, it is not necessary to explicitly install fontconfig prior to Jira installation. Because Jira installer will automatically install fontconfig package if not already installed.

But for the sake of segregation, we are installing it before moving forward to Jira Software installation.

[root@jira-01 ~]# dnf install -y fontconfig
Last metadata expiration check: 0:01:08 ago on Sun 19 Apr 2020 01:51:45 PM PKT.
Dependencies resolved.
================================================================================
 Package                      Arch        Version             Repository   Size
================================================================================
Installing:
 fontconfig                   x86_64      2.13.1-3.el8        BaseOS      275 k
Installing dependencies:
 dejavu-fonts-common          noarch      2.35-6.el8          BaseOS       74 k
 dejavu-sans-fonts            noarch      2.35-6.el8          BaseOS      1.5 M
 fontpackages-filesystem      noarch      1.44-22.el8         BaseOS       16 k

Transaction Summary
================================================================================
Install  4 Packages

Total download size: 1.8 M
Installed size: 6.2 M
Downloading Packages:
(1/4): dejavu-fonts-common-2.35-6.el8.noarch.rp 271 kB/s |  74 kB     00:00
(2/4): fontpackages-filesystem-1.44-22.el8.noar 106 kB/s |  16 kB     00:00
(3/4): fontconfig-2.13.1-3.el8.x86_64.rpm       321 kB/s | 275 kB     00:00
(4/4): dejavu-sans-fonts-2.35-6.el8.noarch.rpm  932 kB/s | 1.5 MB     00:01
--------------------------------------------------------------------------------
Total                                           874 kB/s | 1.8 MB     00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : fontpackages-filesystem-1.44-22.el8.noarch             1/4
  Installing       : dejavu-fonts-common-2.35-6.el8.noarch                  2/4
  Installing       : dejavu-sans-fonts-2.35-6.el8.noarch                    3/4
  Installing       : fontconfig-2.13.1-3.el8.x86_64                         4/4
  Running scriptlet: fontconfig-2.13.1-3.el8.x86_64                         4/4
  Verifying        : dejavu-fonts-common-2.35-6.el8.noarch                  1/4
  Verifying        : dejavu-sans-fonts-2.35-6.el8.noarch                    2/4
  Verifying        : fontconfig-2.13.1-3.el8.x86_64                         3/4
  Verifying        : fontpackages-filesystem-1.44-22.el8.noarch             4/4

Installed:
  fontconfig-2.13.1-3.el8.x86_64
  dejavu-fonts-common-2.35-6.el8.noarch
  dejavu-sans-fonts-2.35-6.el8.noarch
  fontpackages-filesystem-1.44-22.el8.noarch

Complete!

 

Install MySQL 5.7 on CentOS 8:

Jira applications come with pre-configured with the H2 database, which is suitable for evaluation or demonstration purposes. But we can also configure Oracle, MySQL, PostreSQL and other popular databases as the Jira backend.

Here, we are configuring a MySQL database as the Jira applications backend.

Jira is compatible with MySQL 5.7, which is not available in default yum repositories of CentOS 8 server. Therefore, we need to add the Oracle MySQL yum repository and then install MySQL 5.7 from it.

Create a repo file in /etc/yum.repos.d directory.

[root@jira-01 ~]# vi /etc/yum.repos.d/mysql57.repo

And add following lines therein.

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=0

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=0

Build cache for newly added yum repositories.

[root@jira-01 ~]# yum makecache
CentOS-8 - AppStream                            3.1 kB/s | 4.3 kB     00:01
CentOS-8 - Base                                 2.0 kB/s | 3.8 kB     00:01
CentOS-8 - Extras                               1.3 kB/s | 1.5 kB     00:01
MySQL 5.7 Community Server                      316 kB/s | 1.7 MB     00:05
MySQL Connectors Community                       38 kB/s |  64 kB     00:01
MySQL Tools Community                           180 kB/s | 392 kB     00:02
Metadata cache created.

Disable MySQL module in default yum repository.

[root@jira-01 ~]# dnf module disable mysql
Last metadata expiration check: 0:00:42 ago on Sun 19 Apr 2020 03:16:09 PM PKT.
Dependencies resolved.
================================================================================
 Package           Architecture     Version             Repository         Size
================================================================================
Disabling modules:
 mysql

Transaction Summary
================================================================================

Is this ok [y/N]: y
Complete!

Now, we can install MySQL 5.7 using dnf command.

[root@jira-01 ~]# dnf --enablerepo=mysql57-community install -y mysql-community-server
...
Installed:
  mysql-community-server-5.7.29-1.el7.x86_64
  perl-IO-Socket-IP-0.39-5.el8.noarch
  perl-IO-Socket-SSL-2.066-3.el8.noarch
  perl-Mozilla-CA-20160104-7.el8.noarch
  perl-Digest-1.17-395.el8.noarch
  perl-Digest-MD5-2.55-396.el8.x86_64
  perl-Net-SSLeay-1.88-1.el8.x86_64
  perl-URI-1.73-3.el8.noarch
  perl-libnet-3.11-3.el8.noarch
  ncurses-compat-libs-6.1-7.20180224.el8.x86_64
  net-tools-2.0-0.51.20160912git.el8.x86_64
  perl-Carp-1.42-396.el8.noarch
  perl-Data-Dumper-2.167-399.el8.x86_64
  perl-Encode-4:2.97-3.el8.x86_64
  perl-Errno-1.28-416.el8.x86_64
  perl-Exporter-5.72-396.el8.noarch
  perl-File-Path-2.15-2.el8.noarch
  perl-File-Temp-0.230.600-1.el8.noarch
  perl-Getopt-Long-1:2.50-4.el8.noarch
  perl-HTTP-Tiny-0.074-1.el8.noarch
  perl-IO-1.38-416.el8.x86_64
  perl-MIME-Base64-3.15-396.el8.x86_64
  perl-PathTools-3.74-1.el8.x86_64
  perl-Pod-Escapes-1:1.07-395.el8.noarch
  perl-Pod-Perldoc-3.28-396.el8.noarch
  perl-Pod-Simple-1:3.35-395.el8.noarch
  perl-Pod-Usage-4:1.69-395.el8.noarch
  perl-Scalar-List-Utils-3:1.49-2.el8.x86_64
  perl-Socket-4:2.027-3.el8.x86_64
  perl-Storable-1:3.11-3.el8.x86_64
  perl-Term-ANSIColor-4.06-396.el8.noarch
  perl-Term-Cap-1.17-395.el8.noarch
  perl-Text-ParseWords-3.30-395.el8.noarch
  perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch
  perl-Time-Local-1:1.280-1.el8.noarch
  perl-Unicode-Normalize-1.25-396.el8.x86_64
  perl-constant-1.33-396.el8.noarch
  perl-interpreter-4:5.26.3-416.el8.x86_64
  perl-libs-4:5.26.3-416.el8.x86_64
  perl-macros-4:5.26.3-416.el8.x86_64
  perl-parent-1:0.237-1.el8.noarch
  perl-podlators-4.11-1.el8.noarch
  perl-threads-1:2.21-2.el8.x86_64
  perl-threads-shared-1.58-2.el8.x86_64
  mysql-community-client-5.7.29-1.el7.x86_64
  mysql-community-common-5.7.29-1.el7.x86_64
  mysql-community-libs-5.7.29-1.el7.x86_64

Complete!

Enable and start MySQL database service.

[root@jira-01 ~]# systemctl enable --now mysqld.service

Retrieve temporary password for root user as follows.

[root@jira-01 ~]# grep 'A temporary password' /var/log/mysqld.log
2020-04-19T10:40:23.859366Z 1 [Note] A temporary password is generated for root@localhost: y?yc,ew7>4mO

Configure MySQL database server.

[root@jira-01 ~]# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!

Connect with MySQL shell as root user.

[root@jira-01 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.7.29 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Create a database and user for Jira software.

mysql> CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL on jiradb.* TO 'juser'@'localhost' IDENTIFIED BY 'Ahmer@1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.23 sec)

mysql> QUIT;
Bye

Edit MySQL configuration file accoridng to Jira Software requirements.

[root@jira-01 ~]# vi /etc/my.cnf

Add following directives under [mysqld] section in this file.

default-storage-engine=INNODB  
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G
sql_mode = NO_AUTO_VALUE_ON_ZERO

Restart MySQL service to load new configurations.

[root@jira-01 ~]# systemctl restart mysqld.service

 

Download Jira Software for CentOS 8:

Jira software is available to download at Jira official website. Currently, Jira Software 8.8.0 latest stable release is available for download.

01-install-jira-software-server-centos-8-download

Select your required Operating System and click on Submit.

02-install-jira-software-server-centos-8-user-agreement

Read and accept the User Agreement and click on Submit.

03-install-jira-software-server-centos-8-thank-you

You download will be started shortly.

04-install-jira-software-server-centos-8-start-download

Transfer the downloaded file to jira-01.centlinux.com machine by using WinSCP or similar tool.

 

Install Jira Software Server on CentOS 8:

Connect with jira-01.centlinux.com as root user by using ssh tool.

We have transferred the Jira Software installation file to the home directory of root user.

[root@jira-01 ~]# ls -lh
total 384M
-rw-------. 1 root root 1.4K Sep 29  2019 anaconda-ks.cfg
-rw-r--r--. 1 root root 384M Apr 19 10:41 atlassian-jira-software-8.8.0-x64.bin

The Jira Software installation file does not have the necessary execute permissions, therefore we need to grant the execute permissions to this file.

[root@jira-01 ~]# chmod u+x atlassian-jira-software-8.8.0-x64.bin

Start Jira Software Installer by running the downloaded package.

[root@jira-01 ~]# ./atlassian-jira-software-8.8.0-x64.bin
Unpacking JRE ...
Starting Installer ...

This will install Jira Software 8.8.0 on your computer.
OK [o, Enter], Cancel [c]
o
Click Next to continue, or Cancel to exit Setup.

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing Jira installation [3]
1

Details on where Jira Software will be installed and the settings that will be used.
Installation Directory: /opt/atlassian/jira
Home Directory: /var/atlassian/application-data/jira
HTTP Port: 8080
RMI Port: 8005
Install as service: Yes
Install [i, Enter], Exit [e]
i

Extracting files ...


Please wait a few moments while Jira Software is configured.

Installation of Jira Software 8.8.0 is complete
Start Jira Software 8.8.0 now?
Yes [y, Enter], No [n]
y

Please wait a few moments while Jira Software starts up.
Launching Jira Software ...

Installation of Jira Software 8.8.0 is complete
Your installation of Jira Software 8.8.0 is now ready and can be accessed
via your browser.
Jira Software 8.8.0 can be accessed at http://localhost:8080
Finishing installation ...

Allow default service port of Jira Software in Linux firewall.

[root@jira-01 ~]# firewall-cmd --permanent --add-port=8080/tcp
success
[root@jira-01 ~]# firewall-cmd --reload
success

 

Install MySQL JDBC drivers on CentOS 8:

To connect Jira with the MySQL database, we need to install MySQL JDBC drivers as follows.

[root@jira-01 ~]# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip
--2020-04-19 16:28:49--  https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip
Resolving dev.mysql.com (dev.mysql.com)... 137.254.60.11
Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.18.zip [following]
--2020-04-19 16:28:51--  https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.18.zip
Resolving cdn.mysql.com (cdn.mysql.com)... 23.43.33.86
Connecting to cdn.mysql.com (cdn.mysql.com)|23.43.33.86|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4573467 (4.4M) [application/zip]
Saving to: âmysql-connector-java-8.0.18.zipâ

mysql-connector-jav 100%[===================>]   4.36M  1.18MB/s    in 3.9s

2020-04-19 16:28:56 (1.11 MB/s) - âmysql-connector-java-8.0.18.zipâ saved [4573467/4573467]

Unzip downloaded zip file as follows.

[root@jira-01 ~]# unzip mysql-connector-java-8.0.18.zip
...
  inflating: mysql-connector-java-8.0.18/src/test/java/testsuite/x/internal/MysqlxSessionTest.java
  inflating: mysql-connector-java-8.0.18/src/test/java/testsuite/x/internal/XProtocolAsyncTest.java
  inflating: mysql-connector-java-8.0.18/src/test/java/testsuite/x/internal/XProtocolAuthTest.java
  inflating: mysql-connector-java-8.0.18/src/test/java/testsuite/x/internal/XProtocolTest.java
  inflating: mysql-connector-java-8.0.18/src/test/java/testsuite/x/internal/package-info.java

Copy the mysql-connector-java-8.0.18.jar file into /opt/atlassian/jira/lib directory.

[root@jira-01 ~]# cp mysql-connector-java-8.0.18/mysql-connector-java-8.0.18.jar /opt/atlassian/jira/lib

Restart the Jira service to apply changes.

[root@jira-01 ~]# service jira stop
...
[root@jira-01 ~]# service jira start

To run Jira in the foreground, start the server with start-jira.sh -fg
executing using dedicated user: jira

                  `sMMMMMMMMMMMMMM+
                     MMMMMMMMMMMMMM
                     :sdMMMMMMMMMMM
                             MMMMMM
          `sMMMMMMMMMMMMMM+  MMMMMM
             MMMMMMMMMMMMMM  +MMMMM
              :sMMMMMMMMMMM   MMMMM
                     MMMMMM    `UOJ
   `sMMMMMMMMMMMMM+  MMMMMM
     MMMMMMMMMMMMMM  +MMMMM
      :sdMMMMMMMMMM   MMMMM
             MMMMMM    `UOJ
             MMMMMM
             +MMMMM
              MMMMM
               `UOJ

      Atlassian Jira
      Version : 8.8.0


If you encounter issues starting or stopping Jira, please see the Troubleshooting guide at https://docs.atlassian.com/jira/jadm-docs-088/Troubleshooting+installation


Server startup logs are located in /opt/atlassian/jira/logs/catalina.out
Using CATALINA_BASE:   /opt/atlassian/jira
Using CATALINA_HOME:   /opt/atlassian/jira
Using CATALINA_TMPDIR: /opt/atlassian/jira/temp
Using JRE_HOME:        /opt/atlassian/jira/jre/
Using CLASSPATH:       /opt/atlassian/jira/bin/bootstrap.jar:/opt/atlassian/jira/bin/tomcat-juli.jar
Using CATALINA_PID:    /opt/atlassian/jira/work/catalina.pid
Tomcat started.

 

Generate a Trial License for Jira Software:

Browse Atlassian website by using a client's browser e.g. Google Chrome.

05-install-jira-software-server-centos-8-atlassian-login

Login to Atlassian website. We can also used Google or Microsoft user accounts to login or we can create an Atlassian user account as well.

06-install-jira-software-server-centos-8-generate-license

After successful login, you will be asked to generate a license for your respective Jira product.

Fill the required information and click on "Generate License" button.

07-install-jira-software-server-centos-8-licenses

The Atlassian will generate a 30 days trail license for Jira software. You should copy and save the License key in a text file, because we will need it later, during the setup of the Jira software.

 

Configure Jira Software Server on CentOS 8:

Browse URL http://jira-01.centlinux.com:8080 in a client's browser.

08-install-jira-software-server-centos-8-setup

Select option "I'll set it up myself" and click on Next button.

09-install-jira-software-server-centos-8-database-setup

Provide the database connection information here and click on "Test Connection" to test connectivity with the MySQL database server.

Click on Next.

10-install-jira-software-server-centos-8-applications-setup

Set Application properties here and click on Next.

11-install-jira-software-server-centos-8-license-key

Specify your Jira license key and click on Next.

12-install-jira-software-server-centos-8-admin-user

Create an Admin user for your Jira Software. Click on Next.

13-install-jira-software-server-centos-8-email-notifications

If you want to set email notifications, then you can configure it here. Otherwise, this settings can be configured later.

14-install-jira-software-server-centos-8-language

Choose your preferred language and click on Continue.

15-install-jira-software-server-centos-8-avatar

Choose an Avatar for your user account and click on Next.

16-install-jira-software-server-centos-8-welcome

We have successfully installed and configured Jira Software Server on CentOS 8. Before that you start using Jira, we highly recommend you to read Jira 8 Essentials: Effective issue management and project tracking with the latest Jira features, 5th Edition by Packt Publishing. It will develop your understanding about the Jira software and its usage.

1 comment:

  1. Very nice article, easy to understand. I followed same steps and install successfully.
    Thanks

    ReplyDelete