JIRA 7 Essentials - Patrick Li - E-Book

JIRA 7 Essentials E-Book

Patrick Li

0,0
47,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Atlassian JIRA is an enterprise-issue tracker system. One of its key strengths is its ability to adapt to the needs of the organization, ranging from building Atlassian application interfaces to providing a platform for add-ons to extend JIRA's capabilities.

JIRA 7 Essentials, now in its fourth edition, provides a comprehensive explanation covering all major components of JIRA 7, which includes JIRA Software, JIRA Core, and JIRA Service Works.

The book starts by explaining how to plan and set up a new JIRA 7 instance from scratch for production use before moving on to the more key features such as e-mails, workflows, business processes, and so on. Then you will understand JIRA's data hierarchy and how to design and work with projects in JIRA.

Issues being the corner stone of using JIRA, you will gain a deep understanding of issues and their purpose. Then you will be introduced to fields and how to use custom fields for more effective data collections. You will then learn to create new screens from scratch and customize it to suit your needs. The book then covers workflows and business processes, and you will also be able to set up both incoming and outgoing mail servers to work with e-mails. Towards the end, we explain JIRA's security model and introduce you to one of JIRA’s new add-ons: JIRA Service Desk, which allows you to run JIRA as a computer support portal.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 413

Veröffentlichungsjahr: 2016

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

JIRA 7 Essentials - Fourth Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Getting Started with JIRA
JIRA Core, JIRA Software, and JIRA Service Desk
The JIRA architecture
High-level architecture
Web browsers
Application services
Data storage
The JIRA installation directory
The JIRA home directory
System requirements
Hardware requirements
Software requirements
Operating systems
Java platforms
Databases
Application servers
Installation options
Installing and configuring JIRA
Installing Java
Installing MySQL
Preparing MySQL for JIRA
Installing JIRA
Obtaining and installing JIRA
Installing MySQL driver
The JIRA setup wizard
Starting and stopping JIRA
Post-installation configurations
Increasing JIRA's memory
Changing JIRA's port number and context path
Configuring HTTPS
Summary
2. Using JIRA for Business Projects
Understanding project types
Business projects
JIRA permissions
Creating projects
Changing the project key format
Project user interfaces
Project browser
The Summary tab
The Issues tab
The Versions and Components tabs
The Project Administration interface
The Summary tab
The Components tab
Creating components
The component lead and a default assignee
The Versions tab
Creating versions
Managing versions
Other tabs
Importing data into JIRA
Importing data through CSV
The HR project
Creating a new project
Creating new components
Putting it together
Summary
3. Using JIRA for Agile Projects
Scrum and Kanban
Scrum
Kanban
Running a project with Scrum
Creating a Scrum project
Working with the backlog
Prioritizing and estimating work
Creating a new sprint
Running through a sprint
Running a project with Kanban
Creating a Kanban project
Using the Kanban board
Configuring agile boards
Configuration columns
Setting up column constraints
Configuring swimlanes
Defining quick filters
Creating new agile board for project
Including multiple projects on a board
Summary
4. Issue Management
Understanding issues
JIRA issue summary
Working with issues
Creating an issue
Editing an issue
Deleting an issue
Moving an issue between projects
Casting a vote on an issue
Receiving notifications on an issue
Assigning issues to users
Sharing issues with other users
Issue linking
Linking issues with other issues
Linking issues with remote contents
Issue cloning
Time tracking
Specifying original estimates
Logging work
Issues and comments
Adding comments
Permalinking a comment
Attachments
Attaching files
Attaching screenshots
Issue types and subtasks
Creating issue types
Deleting issue types
Subtasks
Creating subtasks
Issue type schemes
Adding issue types to an issue type scheme
Issue priorities
The HR project
Adding new issue types
Updating the issue type scheme
Putting it together
Summary
5. Field Management
Built-in fields
Custom fields
Custom field types
Standard fields
Advanced fields
Searchers
Custom field context
Managing custom fields
Adding a custom field
Editing/deleting a custom field
Configuring a custom field
Adding custom field contexts
Configuring select options
Setting default values
Field configuration
Adding a field configuration
Managing field configurations
Field description
Field requirement
Field visibility
Field rendering
Screens
Field configuration scheme
Managing field configuration schemes
Adding a field configuration scheme
Configuring a field configuration scheme
Associating a field configuration scheme with a project
The HR project
Setting up a custom field
Setting up the field configuration
Setting up a field configuration scheme
Putting it together
Summary
6. Screen Management
JIRA and screens
Working with screens
Adding a new screen
Editing/deleting a screen
Copying a screen
Configuring screens
Adding a field to a screen
Deleting a field from a screen
Using screen tabs
Adding a tab to a screen
Editing/deleting a tab
Working with screen schemes
Adding a screen scheme
Editing/deleting a screen scheme
Copying a screen scheme
Configuring a screen scheme
Associating screens to issue operations
Editing/deleting an association
Issue type screen scheme
Adding an issue type screen scheme
Editing/deleting an issue type screen scheme
Copying an issue type screen scheme
Configuring an issue type screen scheme
Associating issue types to screen schemes
Editing/deleting an association
Associating an issue type screen scheme with a project
The HR project
Setting up screens
Setting up screen schemes
Setting up issue type screen schemes
Putting it together
Summary
7. Workflow and Business Process
Mapping business processes
Understanding workflows
Managing workflows
Issue statuses
Transitions
Triggers
Conditions
Validators
Post functions
Using the workflow designer
Authoring a workflow
Adding a trigger to transitions
Adding a condition to transitions
Adding a validator to transitions
Adding a post function to transitions
Updating an existing workflow
Workflow schemes
Creating a workflow scheme
Configuring a workflow scheme
Assigning an issue type to a workflow
Editing or deleting an association
Applying a workflow scheme to projects
Extending workflow with workflow add-ons
JIRA Suite Utilities
JIRA Workflow Toolbox
JIRA Misc Workflow Extensions
Workflow Enhancer for JIRA
Script Runner
The HR project
Setting up workflows
Applying the workflow
Putting it together
Summary
8. E-mails and Notifications
JIRA and e-mail
Mail servers
Working with outgoing mail
Adding an outgoing mail server
Disabling outgoing mail
Enabling SMTP over SSL
Sending a test e-mail
Mail queues
Viewing the mail queue
Flushing the mail queue
Manually sending e-mails
Events
Adding a mail template
Adding a custom event
Firing a custom event
Notifications
The notification scheme
Adding a notification scheme
Deleting a notification scheme
Managing a notification scheme
Adding a notification
Deleting a notification
Assigning a notification scheme
Troubleshooting notifications
Incoming e-mails
Adding an incoming mail server
Mail handlers
Creating a new issue or adding a comment to an existing issue
Adding a comment with the entire e-mail body
Adding a comment from the non-quoted e-mail body
Creating a new issue from each e-mail message
Adding a comment before a specified marker or separator in the e-mail body
Adding a mail handler
Editing and deleting a mail handler
Advanced mail handler
The HR project
Setting up mail servers
Updating workflow post functions
Setting up a notification scheme
Setting up notifications
Putting it together
Summary
9. Securing JIRA
User directories
Connecting to LDAP
Users
User browser
Adding a user
Enabling public signup
Enabling CAPTCHA
Groups
Group browser
Adding a group
Editing group memberships
Deleting a group
Project roles
Project role browser
Adding a project role
Managing default members
Assigning project role members
JIRA permissions hierarchy
Application access
Global permissions
JIRA System Administrator versus JIRA Administrator
Configuring global permissions
Granting global permissions
Revoking global permissions
Project permissions
Permission schemes
Adding a permission scheme
Configuring a permission scheme
Granting a permission
Revoking a permission
Applying a permission scheme
Issue security
Issue security scheme
Adding an issue security scheme
Configuring an issue security scheme
Adding a security level
Assigning users to a security level
Setting a default security level
Applying an issue security scheme
Troubleshooting permissions
Workflow security
The HR project
Setting up groups
Setting up user group association
Setting up permission schemes
Setting up permissions
Putting it together
Summary
10. Searching, Reporting, and Analysis
Search interface and options in JIRA
Issue navigator
Basic search
Advanced search with JQL
Quick search
Working with search results
Switching result views
Exporting search results
Customizing the column layout
Sharing search results
Filters
Creating a filter
Managing filters
Sharing a filter
Subscribing to a filter
Deleting a filter
Changing the ownership of a filter
Reports
Generating a report
Dashboards
Managing dashboards
Creating a dashboard
Configuring a dashboard
Setting a layout for the dashboard
Changing the ownership of a dashboard
Gadgets
Placing a gadget on the dashboard
Moving a gadget
Editing a gadget
Deleting a gadget
The HR project
Setting up filters
Setting up dashboards
Setting up gadgets
Putting it together
Summary
11. JIRA Service Desk
JIRA Service Desk
Installing JIRA Service Desk
Getting started with JIRA Service Desk
Creating a new service desk
Branding your customer portal
Service desk users
Adding an agent to service desk
Adding a customer to service desk
Adding a collaborator to service desk
Request types
Setting up request types
Organizing request types into groups
Setting up fields
Setting up workflow
Service-level agreement
Setting up SLA
Setting up custom calendars
Queues
Creating a new queue
Creating knowledge base articles
Process automation
Summary

JIRA 7 Essentials - Fourth Edition

JIRA 7 Essentials - Fourth Edition

Copyright © 2016 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: May 2011

Second edition: April 2013

Third edition: April 2015

Fourth edition: November 2016

Production reference: 1181116

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham 

B3 2PB, UK.

ISBN 978-1-78646-251-0

www.packtpub.com

Credits

Author

Patrick Li

Copy Editor

Pranjali Chury

Reviewer

Miroslav Kralik

Project Coordinator

Izzat Contractor 

Commissioning Editor

Kunal Parikh

Proofreader

Safis Editing

Acquisition Editor

Chaitanya Nair

Indexer

Rekha Nair 

Content Development Editor

Rohit Kumar Singh

Graphics

Jason Monteiro

Technical Editor

Vivek Pala

Production Coordinator

Aparna Bhagat

About the Author

Patrick Li is the cofounder of AppFusions and now works as a senior engineer there. AppFusions is one of the leading Atlassian experts, specializing in integration solutions with many enterprise applications and platforms, including IBM Connections, Jive, Google Apps, Box, SugarCRM, and more. He has worked in the Atlassian ecosystem for over 9 years, developing products and solutions for the Atlassian platform and providing expert consulting services.

He has authored numerous books and video courses covering JIRA 4 to 7, including JIRA Agile and JIRA Service Desk. He has extensive experience in designing and deploying Atlassian solutions from the ground up and customizing existing deployments for clients across verticals such as healthcare, software engineering, financial services, and government agencies.

You can check out his LinkedIn profile at https://www.linkedin.com/in/patrickliangli or visit his company website at https://www.appfusions.com/display/Dashboard/Bringing+it+together%2C+NOW.

About the Reviewer

Miroslav Kralik is a product owner and Atlassian Tools Evangelist at MSD IT Global Innovation Center, and he cofounded Podporuj.cz.

His passion is to help customers succeed and make products, services, and processes better and innovative. His focus is now on DevOps and the integration of different tools in the whole development chain, where JIRA as an issue-and bug-tracking system belongs.

Besides this, Miroslav has dedicated his time to the Podporuj.cz project, which was created to support non-profit organizations in the Czech Republic and people with irreversible physical disabilities who depend on others to take care of their basic needs. Thanks to this project, it is now possible for people around the world to freely contribute with their daily activities—shopping--to the campaigns and running of NGOs.

Miroslav can be found on LinkedIn at https://www.linkedin.com/in/mikralik.

With this opportunity, I would like to thank all the DevOps Stack team members for their time, effort, and passion, and for the opportunity of being part of such a great team, to whom this book is also dedicated.

www.PacktPub.com

For support files and downloads related to your book, please visit www.PacktPub.com.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

https://www.packtpub.com/mapt

Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.

Why subscribe?

Fully searchable across every book published by PacktCopy and paste, print, and bookmark contentOn demand and accessible via a web browser

Preface

Over the years, JIRA has grown from a simple bug-tracking system designed for engineers to manage their projects to an all-purpose issue-tracking solution. As it has matured over time, JIRA has become more than an application—it has transformed into a platform with a suite of other products that are built on it, enabling it to adapt and deliver value to a wide variety of use cases.

Starting with JIRA 7, the term JIRA now refers to a family of products suite, including JIRA Software, JIRA Service Desk, and JIRA Core. With this change, each product is more focused on what they do and the value they bring. It is now easier than ever for customers to choose the product best suited to their needs, whether they are running an Agile software development project, a customer support portal, or simply a generic task management system.

In this book, we will cover all the basics of JIRA and the core capabilities of each product in the family along with the add-ons that add additional features to the JIRA platform.

Packed with real-life examples and step-by-step instructions, this book will help you become a JIRA expert.

What this book covers

This book is organized into eleven chapters. The first chapter starts with setting up your own JIRA, and the subsequent chapters will introduce key features and concepts. With each chapter, you will learn about important concepts such as business processes, workflows, e-mails, and notifications. You will also have the opportunity to put your newly acquired knowledge into practice by following a live JIRA sample implementation.

Chapter 1, Getting Started with JIRA, serves as the starting point of the book and aims to guide you to set up a local copy of a JIRA Software application that will be used throughout the book. For seasoned JIRA experts, this will both refresh your knowledge and also introduce you to the changes in JIRA 7. By the end of this chapter, you should have a running JIRA application.

Chapter 2, Using JIRA for Business Projects, covers using JIRA for projects that are not based on software development, for example, a generic task management solution. This chapter focuses on use the basic features of JIRA, which are offered through the JIRA Core product, which is bundled with JIRA Software.

Chapter 3, Using JIRA for Agile Projects, covers features specific to JIRA Software. This chapter focuses on using JIRA for software development projects, especially using Agile methodologies such as Scrum and Kanban.

Chapter 4, Issue Management, covers everything related to issue creation and the operations that can be performed on an issue (excluding workflow transitions). Furthermore, this chapter touches on the various aspects of issues, as they are the focal point of JIRA. This chapter also serves as an opportunity to show and allow you to set up dummy data that will be used by the sample project.

Chapter 5, Field Management, covers how JIRA collects data through the use of fields and how to expand on this ability through the use of custom fields. This chapter then continues with the various behaviors that can be configured for fields.

Chapter 6, Screen Management, builds on the preceding chapter and explores the concept of screens and how users can create and manage their own screens. This chapter ties in all the previous chapters to show the power behind JIRA's screen design capabilities.

Chapter 7, Workflow and Business Process, explores the most powerful feature offered by JIRA, workflows. The concept of issue life cycles is introduced, and various aspects of workflows explained. This chapter also explores the relationship between workflows and other various JIRA aspects that have been previously covered, such as screens. The concept of JIRA add-ons is also briefly touched upon in the sample project, using some popular add-ons.

Chapter 8, E-mails and Notifications, focuses on how to get automatic e-mail notifications from JIRA and explores the different settings that can be applied. This is a very important and powerful feature of JIRA and also a critical part of the example project featured in this book. This chapter also ties in the workflow chapter and explains in detail how JIRA manages its notification mechanism.

Chapter 9, Securing JIRA, focuses on the different security control features offered by JIRA. As this topic affects all aspects of JIRA, all previous topics are touched on, explaining how security can be applied to each. It also covers LDAP integration, where you can hook up your JIRA with an existing LDAP system for user management.

Chapter 10, Searching, Reporting, and Analysis, focuses on how data captured in JIRA can be retrieved to provide various types of reporting features. It also covers the changes introduced in JIRA 7.

Chapter 11, JIRA Service Desk, covers the new JIRA Service Desk product from the JIRA 7 product family. It transforms JIRA into a fully fledged service desk solution. This chapter looks at setting up and customizing service desks, integrating with Atlassian Confluence to set up a knowledge base, and defining custom SLA metrics.

What you need for this book

The installation package used in this book will be the Windows Installer standalone distribution, which you can get directly from Atlassian at https://www.atlassian.com/software/jira/download for JIRA Software and https://www.atlassian.com/software/jira/service-desk/download for JIRA Service Desk.

You will also need additional software, including Java SDK, which you can get from http://www.oracle.com/technetwork/java/javase/downloads/index.html and MySQL, which you can get from http://dev.mysql.com/downloads.

Who this book is for

This book will be especially useful for project managers, but it's also intended for other JIRA users, including developers, and any other industry besides software development who would like to leverage JIRA’s powerful task management and workflow features to better manage their business processes.

Conventions

In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "Find and open the web.xml file in the JIRA_INSTALL/atlassian-jira/WEB-INF directory."

A block of code is set as follows:

<Connector port="8443" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"  
  useBodyEncodingForURI="true"/>

Any command-line input or output is written as follows:

keytool –genkey –alias tomcat –keyalg RSA

New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "If you do not have your e-mail server information handy, you can skip this step now by selecting the Later option and clicking on Finish."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book-what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of. To send us general feedback, simply e-mail [email protected], and mention the book's title in the subject of your message. If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books-maybe a mistake in the text or the code-we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.

To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.

Piracy

Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at [email protected] with a link to the suspected pirated material.

We appreciate your help in protecting our authors and our ability to bring you valuable content.

Questions

If you have a problem with any aspect of this book, you can contact us at [email protected], and we will do our best to address the problem.

Chapter 1. Getting Started with JIRA

In this chapter, we will start with a high-level view of JIRA, going through each of the components that make up the overall application. We will then examine the various deployment options, system requirements for JIRA 7, and platforms/software that are supported. Finally, we will get our hands dirty by installing our very own JIRA 7 from scratch with the newly improved installation wizard. In the end, we will also cover some post-installation steps, such as setting up SSL to secure our new instance.

By the end of this chapter, you will have learned about the following:

The different product offerings from the new JIRA 7 familyThe overall architecture of JIRAThe basic hardware and software requirements to deploy and run JIRAPlatforms and applications supported by JIRAInstalling JIRA and all of the required softwarePost-installation configuration options to customize your JIRA

JIRA Core, JIRA Software, and JIRA Service Desk

Starting with JIRA 7, JIRA is split into three different products, and the term JIRA now refers to the common platform that all these products are built on. The three products that make up the new JIRA family are the following:

JIRA Core: This is similar to the classic JIRA, with all the field customizations and workflow capabilities. This is perfect for general-purpose task management.JIRA Software: This is JIRA Core with agile capabilities (previously known as JIRA Agile). This is well suited for software development teams that want to use agile methodologies, such as Scrum and Kanban.JIRA Service Desk: This is JIRA Core with service desk capabilities. This is designed for running JIRA as a support ticketing system, with a simplified user interface for the end users, and a focus on customer satisfaction with SLA goals.

As you can see, JIRA Core is at the center, providing all the base functionalities such as user interface customization, workflows, and e-mail notifications, while JIRA Software and JIRA Service Desk add specialized features on top of it.

In this book, we will mostly focus on JIRA Software. However, since JIRA Core provides many of the common features, most of the knowledge is also applicable to JIRA Core, and features that are only available to JIRA Software will be highlighted. For this reason, the term JIRA will be used to cover both JIRA Core and JIRA Software, unless a distinction is required. We will also cover JIRA Service Desk in Chapter 11, JIRA Service Desk.

The JIRA architecture

Installing JIRA is simple and straightforward. However, it is important for you to understand the components that make up the overall architecture of JIRA and the installation options available. This will help you make an informed decision and be better prepared for future maintenance and troubleshooting.

High-level architecture

Atlassian provides a comprehensive overview of the JIRA architecture at https://developer.atlassian.com/jiradev/jira-platform/jira-architecture/jira-technical-overview. However, for the day-to-day administration and usage of JIRA, we do not need to get into details; the information provided can be overwhelming at first glance. For this reason, we have summarized a high-level overview, which highlights the most important components in the architecture, as shown in the following figure:

Web browsers

JIRA is a web application, so there is no need for users to install anything on their machines. All they need is a web browser that is compatible with JIRA. The following table summarizes the browser requirements for JIRA:

Browsers

Compatibility

Internet Explorer

10.0, 11.0

Mozilla Firefox

Latest stable versions

Safari

Latest stable versions on Mac OSX

Google Chrome

Latest stable versions

Mobile

Mobile Safari

Mobile Chrome

Application services

The application services layer contains all the functions and services provided by JIRA. These services include various business functions, such as workflow and notification, which will be discussed in depth in Chapter 6, Workflows and Business Processes and Chapter 7, E-mails and Notifications, respectively. Other services such as REST/Web Service provide integration points to other applications The OSGi service provides the base add-on framework to extend JIRA's functionalities.

Data storage

The data storage layer stores persistent data in several places within JIRA. Most business data, such as projects and issues, are stored in a relational database. Content such as uploaded attachments and search indexes are stored in the file system in the JIRA_HOME directory, which we will talk about in the next section. The underlying relational database used is transparent to users, and you can migrate from one database to another with ease, as referenced at https://confluence.atlassian.com/display/JIRA/Switching+Databases.

The JIRA installation directory

The JIRA installation directory is where you install JIRA. It contains all the executable and configuration files of the application. JIRA neither modifies the contents of the files in this directory during runtime, nor does it store any data files inside the directory. The directory is used primarily for execution. For the remainder of the book, we will refer to this directory as JIRA_INSTALL.

The JIRA home directory

The JIRA home directory contains key data and configuration files specific to each JIRA instance, such as JIRA's database connectivity details. As we will see later in this chapter, setting the path to this directory is part of the installation process.

There is a one-to-one relationship between JIRA and this directory. This means each JIRA instance must (and can) have only one home directory, and each directory can serve only one JIRA instance. In the old days, this directory was sometimes called the data directory. It has now been standardized as the JIRA Home. It is for this reason that, for the rest of the book, we will refer to this directory as JIRA_HOME.

The JIRA_HOME directory can be created anywhere on your system or even on a shared drive. It is recommended to use a fast disk drive with low network latency to get the best performance from JIRA.

This separation of data and application makes tasks such as maintenance and future upgrades an easier process. Within JIRA_HOME, there are several subdirectories that contain vital data, as shown in the following table:

Directory

Description

data

This directory contains data that is not stored in the database, for example, uploaded attachment files.

export

This directory contains the automated backup archives created by JIRA. This is different from a manual export executed by a user; manual exports require the user to specify where to store the archive.

import

This directory contains the backups that can be imported. JIRA will only load backup files from this directory.

log

This directory contains JIRA log files, useful to track down errors. Some of the key log files include:

atlassian-jira.log: Information about JIRA Software and the JIRA Core application.atlassian-servicedesk.log: Information about the JIRA Service Desk application.atlassian-jira-security.log: Information about user sessions, logins, and logouts.

plugins

This directory is where installed add-ons are stored. In the previous versions of JIRA, add-ons were installed by copying add-on files to this directory manually; however, in JIRA 7, you will no longer need to do this, unless specifically instructed to do so. Add-ons will be discussed further in later chapters.

caches

This directory contains cache data that JIRA uses to improve its performance at runtime. For example, search indexes are stored in this directory.

tmp

This directory contains temporary files created at runtime, such as file uploads.

When JIRA is running, the JIRA_HOME directory is locked. When JIRA shuts down, it is unlocked. This locking mechanism prevents multiple JIRA instances from reading/writing to the same JIRA_HOME directory and causing data corruption.

JIRA locks the JIRA_HOME directory by writing a temporary file called jira-home.lock into the root of the directory. During the shutdown, this file will be removed. However, sometimes JIRA may fail to remove this file, such as during an ungraceful shutdown. In this case, you can manually remove this locked file to unlock the directory so that you can start up JIRA again.

Tip

You can manually remove the locked file to unlock the JIRA_HOME directory if JIRA fails to clean it up during the shutdown.

System requirements

Just like any other software application, a set of base requirements needs to be met before you can install and run JIRA. Therefore, it is important for you to be familiar with these requirements so that you can plan out your deployment successfully. Note that these requirements are for a behind-the-firewall deployment, also known as the JIRA Server. Atlassian also offers a Cloud-based alternative called JIRA Cloud, available at https://www.atlassian.com/software#cloud-products.

The cloud version of JIRA is similar to the behind-the-firewall JIRA deployment in most areas, and it is perfect for organizations that do not want to have the overhead of the initial setup and just want to get up-and-running quickly. One major limitation of JIRA Cloud is that you cannot use many of the third-party add-ons available. If you want to have all the power and flexibility of the JIRA Server and worry-free server management, you may consider managed hosting for JIRA offered by third-party vendors.

Hardware requirements

For evaluation purposes, where there will only be a small number of users, JIRA will run happily on any server that has a 1.5 GHz processor and 1 GB to 2 GB of RAM. As your JIRA usage grows, a typical server will have a quad core 2 GHz CPU and 4 GB of RAM dedicated to the JIRA application.

For production deployment, as in most applications, it is recommended that you run JIRA on its own dedicated server. There are many factors that you should consider when deciding the extent of the resources to allocate to JIRA; keep in mind how JIRA will scale and grow. When deciding on your hardware needs, you should consider the following:

The number of active users in the systemThe number of issues and projects in the systemThe number of configuration items such as custom fields and workflowsThe number of concurrent users, especially during peak hours

It can be difficult at times to estimate these figures. As a reference, a server running with over 2.0 GHz of dual/quad CPU and 2 GB of RAM will be sufficient for most instances with around 200 active users. If you start to get into thousands of active users, you will need to have at least 8 GB of RAM allocated to JIRA (JVM).

Officially, JIRA only supports x86 hardware and 64-bit derivatives of it. When running JIRA on a 64-bit system, you will be able to allocate more than 4 GB of memory to JIRA, the limit if you are using a 32-bit system. If you are planning to deploy a large instance, it is recommended that you use a 64-bit system.

Software requirements

JIRA has four requirements when it comes to software. It needs a supported operating system and a Java environment. It also needs an application server to host and serve its contents and a database to store all of its data. In the following sections, we will discuss each of these requirements and the options that you have to install and run JIRA. You can find the latest information online at https://confluence.atlassian.com/adminjiraserver071/supported-platforms-802592168.html.

Operating systems

JIRA supports most of the major operating systems, so the choice of which operating system to run JIRA on becomes a matter of expertise, comfort, and in most cases the existing organization's IT infrastructure and requirements.

The operating systems supported by Atlassian are Windows and Linux. There is a JIRA distribution for Mac OSX, but it is not officially supported. With both Windows and Linux, Atlassian provides an executable installer wizard package, which bundles all the necessary components to simplify the installation process (only available for standalone distribution).

There are minimal differences when it comes to installing, configuring, and maintaining JIRA on different operating systems. If you do not have any preferences and would like to keep the initial cost down, Linux is a good choice.

Java platforms

JIRA is a Java-based web application, so it needs to have a Java environment installed. This can be a Java Development Kit (JDK) or a Java Runtime Environment (JRE). The executable installer that comes with Windows or Linux contains the necessary files and will install and configure the JRE for you. However, if you want to use archive distributions, you will need to make sure that you have the required Java environment installed and configured.

JIRA 7 requires Java 8. If you run JIRA on an unsupported Java version, including its patch version, you may run into unexpected errors. The following table shows the supported Java versions for JIRA:

Java platforms

Support status

Oracle JDK/JRE

Java 8 (1.8)

Databases

JIRA stores all its data in a relational database. While you can run JIRA with HyperSQL Database (HSQLDB), the in-memory database that comes bundled with JIRA, it is prone to data corruption. You should only use this to set up a new instance quickly for evaluation purposes, where no important data will be stored. For this reason, it is important that you use a proper database such as MySQL for production systems.

Most relational databases available on the market today are supported by JIRA, and there are no differences when you install and configure JIRA. Just like operating systems, your choice of database will come down to your IT staff's expertise, experience, and established corporate standards. If you run Windows as your operating system, then you might probably want to go with the Microsoft SQL Server. On the other hand, if you run Linux, then you should consider Oracle (if you already have a license), MySQL, or PostgreSQL.

The following table summarizes the databases that are currently supported by JIRA. It is worth mentioning that both MySQL and PostgreSQL are open source products, so they are excellent options if you are looking to minimize your initial investments.

Database

Support status

MySQL

MySQL 5.1 and newer

This requires the latest JDBC driver

PostgreSQL

PostgreSQL 9.0 and newer

This requires the latest PostgreSQL driver

Microsoft SQL Server

SQL Server 2008 and newer

This requires latest JTDS driver

Oracle

Oracle 12C

This requires the latest Oracle driver

HSQLDB

This is bundled with the standalone distribution, for evaluation only

Take a special note of the driver requirement on each database, as some drivers that come bundled with the database vendor (for example, the SQL Server) are not supported.

Application servers

JIRA 7 officially only supports Apache Tomcat as the application server. While it is possible to deploy JIRA into other application servers, you will be doing this at your own risk, and it is not recommended.

The following table shows the versions of Tomcat supported by JIRA 7:

Application server

Support status

Apache Tomcat

Tomcat 8.0.17 and newer

By default, JIRA 7 ships with 8.0.17, so it is recommended that you use that version or newer.

Installation options

JIRA comes in two flavors: an executable installer and a ZIP archive. The executable installer provides a wizard-driven interface that will walk you through the entire installation process. It even comes with a Java installer to save you some time. The ZIP archive flavor contains everything except for a Java installer, which means you will have to install Java yourself. You will also need to perform some post-installation steps manually, such as installing JIRA as a service. However, you do get the advantage of learning what really goes on under the hood.

Installing and configuring JIRA

Now that you have a good understanding of the overall architecture of JIRA, the basic system requirements, and the various installation options, we are ready to deploy our own JIRA instances.

In the following exercise, we will be installing and configuring a fresh JIRA instance for a small production team. We will perform our installation on a Windows platform with a MySQL database server. If you are planning to use a different platform or database, refer to the vendor documentation on installing the required software for your platform.

In this exercise, you will do the following:

Install a fresh instance of JIRA SoftwareConnect JIRA to a MySQL database

We will continue to use this JIRA instance in our subsequent chapters and exercises as we build our help desk implementation.

For our deployment, we will use the following:

JIRA standalone distribution 7.1.8MySQL 5.7.13Microsoft Windows 7

Installing Java

Since we will be using the installer package with Java bundled, you can skip this section. However, if you are using the ZIP archive or WAR distribution, you need to make sure that you have Java installed on your system.

JIRA 7 requires JRE version 8 (1.8) or a newer run. You can verify the version of Java you have by running the following command in a Command Prompt:

java -version

The preceding command tells us which version of Java is running on your system, as shown in the following screenshot:

If you do not see a similar output, then chances are you do not have Java installed. You will need to perform the following steps to set up your Java environment. We will start by installing JDK on your system:

Download the latest JDK from http://www.oracle.com/technetwork/java/javase/downloads/index.html.

Note

At the time of writing this, the latest version of Java 8 is JDK 8 Update 91.

Double-click on the downloaded installation file to start the installation wizard.Select where you would like to install Java, or you can simply accept the default values. The location where you install JDK will be referred to as JAVA_HOME for the rest of this book.Create a new environment variable named JAVA_HOME with the value set to the full path of the location where you installed Java. You can do this as follows:
Open the System Properties window by holding down your Windows key and pressing the Pause key on your keyboard.Select the Advanced system settings option.Click on the Environment Variable button from the new popup.
Edit the PATH environment variable and append the following to the end of its current value: ;%JAVA_HOME%\bin Test the installation by typing the following command in a new Command Prompt:java -version

This will display the version of Java installed, if everything is done correctly. In Windows, you have to start a new Command Prompt after you have added the environment variable to see the change.

Installing MySQL

The next step is to prepare an enterprise database for your JIRA installation. JIRA requires a fresh database. If, during the installation process, JIRA detects that the target database already contains any data, it will not proceed. If you already have a database system installed, then you may skip this section.

To install MySQL, simply perform the following steps:

Download MySQL from http://dev.mysql.com/downloads, select MySQL Community Server, and then select the MSI installer for Windows.

Note

At the time of writing, the latest version of MySQL is 5.7.13.

Double-click on the downloaded installation file to start the installation wizard.Click on Install MySQL Products on the welcome screen.Read and accept the license agreement and click on the Next button.Select the Server only option on the next screen. If you are an experienced database administrator, you can choose to customize your installation. Otherwise, just accept the default values for all subsequent screens.Configure the MySQL root user password. The username will be root. Do not lose this password, as we will be using it in the next section.Complete the configuration wizard by accepting the default values.

Preparing MySQL for JIRA

Now that you have MySQL installed, you need to first create a user for JIRA to connect MySQL with, and then create a fresh database for JIRA to store all its data:

Start the MySQL Command Line Client by navigating to Start | All Programs | MySQL | MySQL Server 5.7 | MySQL 5.7 Command Line Client.Enter the MySQL root user password you set during installation.Use the following command to create a database:create database jiradb character set utf8;Here, we are creating a database called jiradb. You can name the database anything you like. As you will see later in this chapter, this name will be referenced when you connect JIRA to MySQL. We have also set the database to use UTF-8 character encoding, as this is a requirement for JIRA. Using the following command, you need to ensure that the database uses the InnoDB storage engine to avoid data corruption:grant all on jiradb.* to 'jirauser'@'localhost' identified by 'jirauserpassword';

We are doing several things here. First, we create a user called jirauser and assign the password jirauserpassword to him. You should change the username and password to something else.

We have also granted all the privileges to the user for the jiradb database that we just created so that the user can perform database operations, such as create/drop tables and insert/delete data. If you have named your database something other than jiradb, then make sure that you change the command so that it uses the name of your database.

This allows you to control the fact that only authorized users (specified in the preceding command) are able to access the JIRA database to ensure data security and integrity.

To verify your setup, exit the current interactive session by issuing the following command:quit;Start a new interactive session with your newly created user:mysql -u jirauser -pYou will be prompted for a password, which you have set up in the preceding command as jirauser.Use the following command:show databases;

This will list all the databases that are currently accessible by the logged-in user. You should see jiradb among the list of databases.

Examine the jiradb database by issuing the following commands:use jiradb;show tables;

The first command connects you to the jiradb database, so all of your subsequent commands will be executed against the correct database.

The second command lists all the tables that exist in the jiradb database. Right now, the list should be empty, since no tables have been created for JIRA; but don't worry, as soon as we connect to JIRA, all the tables will automatically be created.

Installing JIRA

With the Java environment and database prepared, you can now move on to install JIRA. Normally, there are only two steps:

Download and install the JIRA application.Run through the JIRA setup wizard.

Obtaining and installing JIRA

The first step is to download the latest stable release of JIRA. You can download Atlassian JIRA from http://www.atlassian.com/software/jira/download.

The Atlassian website will detect the operating system you are using and automatically suggest an installation package for you to download. If you intend to install JIRA on a different operating system from the one you are currently on, make sure that you select the correct operating system package.

As mentioned earlier, with Windows there is a Windows installer package and a self-extracting ZIP package. For the purpose of this exercise, we will use the installer package (Windows 64-bit Installer):

Double-click on the downloaded installation file to start the installation wizard and click on the Next button to continue.Select the Custom Install option and click on the Next button to continue. Using the custom installation will let us decide where to install JIRA and will also provide many configuration options.Select the directory where JIRA will be installed. This will become the JIRA_INSTALL directory. Click on the Next button to continue.Select where JIRA will store its data files, such as attachments and log files. This will become the JIRA_HOME directory. Click on the Next button to continue.Select where you would like to create shortcuts to the start menu and click on the Next button to continue.In the Configure TCP Ports step, we need to select the port on which JIRA will be listening for incoming connections. By default, JIRA will run on port 8080. If 8080 is already taken by another application or if you want JIRA to run on a different port such as port 80, select the Set custom value for HTTP and Control ports option and specify the port numbers you want to use. Click on the Next button to continue.Select whether you would like JIRA to run as a service. If you enable this option, JIRA will be installed as a system service and can be configured to start automatically with the server; see the Starting and stopping JIRA section for more details.For the last step, review all the installation options and click on the Install button to start the installation.Once the installation is complete, check the Launch JIRA Software in browser option and click on Finish. This will close the installation wizard and open up your web browser to access JIRA. This might take a few minutes to load as JIRA starts up for the first time.

Note

Since we need to install the MySQL database driver for JIRA, we are launching JIRA in the browser now to verify that the installation was successful.

Installing MySQL driver

JIRA does not come bundled with the MySQL database driver, so we have to install it manually. You can download the required driver from http://dev.mysql.com/downloads/connector/j/. Once downloaded, you can install the driver by copying the driver JAR file into the JIRA_INSTALL/lib directory. After that, you need to restart JIRA. If you have installed JIRA as a Windows service in step 9, refer to the Starting and stopping JIRA section.

Note

Make sure that you select the Platform Independent option and download the JAR or TAR archive.

The JIRA setup wizard

JIRA comes with an easy-to-use setup wizard that will walk you through the installation and configuration process in six simple steps. You will be able to configure the database connections, default language, and much more. You can access the wizard by opening http://localhost:<port number> in your browser, where the <port number> is the number you have assigned to JIRA in step 6 of the installation.

In the first step of the wizard, we need to select how we want JIRA to be set up. Since we are installing JIRA for production use, we will select the I'll set it up myself option.

For the second step, we will need to select the database we want to use. This is where we configure JIRA to use the MySQL database we have created earlier in this chapter. If you select the Built In option, JIRA will use its bundled in-memory database, which is good for evaluation purposes. If you want to use a proper database, such as in our case, you should select the My Own Database option.

Note

The Built In option is great to get JIRA up and running quickly for evaluation purposes.

After you have selected the My Own Database option, the wizard will expand for you to provide the database connection details. If you do not have the necessary database driver installed, JIRA will prompt you for it, as shown in the preceding screenshot.

Once you have filled in the details for your database, it is a good idea to first click on the Test Connection button to verify that JIRA is able to connect to the database. If everything is set up correctly, JIRA will report a success message. You should be able to move onto the next step by clicking on the Next button. This may take a few minutes, as JIRA will now create all the necessary database objects. Once this is done, you will be taken to step 3 of the wizard.

In the third step, you will need to provide some basic details about this JIRA instance. Once you have filled in the required fields, click on Next to move on to step 4 of the wizard.

In the fourth step, we need to provide a license key for JIRA. If you have already obtained a license from Atlassian, you can paste it into the Your License Key text box. If you do not have a license, you can generate an evaluation license by clicking on the generate a JIRA trial license link. The evaluation license will grant you access to JIRA's full set of features for one month. After the evaluation period ends, you will lose the ability to create new issues, but you can still access your data.