26 Temmuz 2011 Salı

Jira kurulumda değiştirilmesi gereken dosyalar

 Jira kurulum sırasında düzenleme yapılan dosyalar aşağıdadır. Tabi burada temiz bir kurulumdan bahsediyoruz, değiştirilmiş bir jira kurulumu için bu dosyalardan çok daha fazlasında değişiklik yapmanız gerekebilir.

File JIRA Standalone location JIRA WAR-EAR location Description
jira-application.properties atlassian-jira/WEB-INF/classes webapp/WEB-INF/classes Advanced JIRA configuration properties
setenv.bat (Windows) or setenv.sh (Linux) bin Application Server's bin directory Increasing JIRA Memory
osuser.xml atlassian-jira/WEB-INF/classes webapp/WEB-INF/classes Modified if you have integrated LDAP with JIRA, integrated Crowd with JIRA, or if you are using a custom form of external user management or user authentication.
seraph-config.xml atlassian-jira/WEB-INF/classes webapp/WEB-INF/classes Modified if you have integrated Crowd with JIRA.

18 Temmuz 2011 Pazartesi

To change comment default security level


Jira çağrılarında, yorum güvenliği için sistem standart ayarlarını düzenlemek için,
(TR daha karışık olduğu için ing başlık kullanıyorum :) )

To change comment default security level

edit below details on atlassian-jira/WEB-INF/classes/templates/jira/issue/field/comment-edit.vm

sistem tanımlarında, yazılan yorumlar eğer bir özel olarak seçilmemişse herkese açık olur. Bu tanımı değiştirmek, eğer özel olarak seçilmemişse, kısıtlı kullanıcının erişimine açık olması için, aşağıdaki satırlar değiştirilir.

Bu satırları bulun,


#if ($commentLevel)
#set ($selectedCommentLevel = $commentLevel)
#else
#set ($selectedCommentLevel ="")
#end

aşağıdaki şekilde değiştirin.

#if ($commentLevel)
#set ($selectedCommentLevel = $commentLevel)
#else
#set ($selectedCommentLevel ="role:****")
#end 

Jira üzerinde her tanımın (çağrı, alan, izin şeması, filtre vb) olduğu gibi proje rollerininde bir id değeri vardır. Burada değişikliği yaparken, bu id değerlerini mutlaka doğru olarak aldığınızdan emin olun. Örnek olabilecek id çeşitleri aşağıdadır



Oracle – Servis olarak çalıştırmak

Oracle – Servis olarak çalıştırmak


vi /etc/init.d/oracle

Yukarıdaki komutla dosyanızı oluşturarak, içine aşağıdaki verileri yapıştın.
Renkli satırları kendi sisteminize göre düzenlemeyi unutmayın.. !!!

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle
ORACLE_SID=orcl
export $ORACLE_SID

if [ ! -f $ORA_HOME/bin/dbstart ]

then
echo "Oracle startup: cannot start"
exit
fi

case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
echo "OK"
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
;;
esac

Servisin çalıştırılabilmesi için yetkilendirme yapıyoruz,
chmod 750 /etc/init.d/oracle

ve son olarak açılışta başlaması için,  aşağıdaki satırı çalıştırıp servisimizi tamamlıyoruz.

/sbin/chkconfig --level 345 oracle on





http://www.zekiguven.com/?cat=16 sayfasından destek alınarak hazırlanmıştır.

Mysql Yedek Alma / Yedekten Dönme

Yedek Alma

Tüm veritabanlarının yedeğini almak için;
mysqldump --user=****** --password=****** -A > /path/to/file_dump.SQL


Bazı veritabanlarının yedeğini almak için;
mysqldump --user=****** --password=******  db_1 db_2 db_n> /path/to/file_dump.SQL

Sadece bir veritabanının yedeğini almak için;
mysqldump --user=****** --password=****** db > /path/to/file_dump.SQL
To dump specific tables from a database you must run the command:

Bir veritabanı içindeki, bazı tabloların yedeğini almak için,
mysqldump --user=****** --password=****** db --tables tab1 tab2 > /path/to/file_dump.SQL


*Bu işlemler için kullandığınız kullanıcı mutlaka yedek alma hakkına sahip olmalıdır.

Yedekten Geri Dönme,
mysql --user=****** --password=****** db_name < /path/to/file_dump.SQL

Mysql "max connections" Değişkenini değiştirmek için

Bazen Mysql servisi loglarında aşağıdaki

Mysql ile ilgili tüm değişkenleri aşağıdaki dosyada bulabilirsiniz,

vi /etc/my.cnf

Kırmızı ile belirtilmiş olan değişkeni değiştiriniz. Sistem başlangıç tanımlarında bu değer : 150'dir, bu değer yoksa ekleyiniz.

[mysqld]
safe-show-database
innodb_data_file_path=ibdata1:10M:autoextend
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

max_connections=250

Değişikliğin aktif olması için mysql servisini yeniden başlatınız.

/etc/init.d/mysqld restart

Stopping mysql: [ OK ]
Starting mysql: [ OK ]

Eğer başlatırken hata alırsanız, konfigürasyon dosyasında hata yapmışssınız demektir, kontrol edebilirsiniz.

Linux üzerinde Java Kurulumu


Ubuntu da Sun Java kullanmak için aşağıdaki adımları izleyiniz.

komut satırından dosyaları indirmek için;
$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk

var olan java sürümlerden, sizin ilk tercihinizi tanımlamak için,
$ sudo update-java-alternatives -s java-6-sun

vee en önemli kısım, profil tanımlarınıza JAVA_HOME değişkenini tanımlamak,

önce profil dosyanızı açın,
vi /home/kullanıcı_adınız/.bash_profile

Java için aşağıdaki satırları ekleyin;
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin


java kurulumunu test etmek ve versiyonunu öğrenmek için,

$ java -version

Çıktı;

java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode) 


İlk Java kodunuzu yazmak için,

Dosyanızı açın,
$ vi merhaba.java

İçine aşağıdaki satırları yapıştırın,
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Merhaba, Dunya!");
    }
}


$ javac test.java
$ java merhaba

Çıktı ;

"Merhaba Dünya"

Konsol ekranından MySql Yönetimi

Konsol ekranından MySql Yönetimi

Benim başıma geldi, sizinde başınıza gelebilir ;)
Mysql sunucusunu lokal konsoldan kontrol etmek için aşağıdaki komutları kullanabilirsiniz
mysql sistemine login olmak için;
mysql -u kullanıcı_adı -pşifre
Mevcut tüm veritabanlarını görüntülemek için;
show databases
İşlem yapılacak veritabanını seçmek için;
use veritabanı_adı;
Buradan sonrası sizin sql bilginize kalmış, çalıştırmak istediğini sql kodunu buradan çalıştırabilirsiniz. Benim gibi grafik arayüzde işlem yapmayı, daha kolay ve daha az riskli buluyorsanız, kendi kullanıcınızı sisteme eklemelisiniz, aşağıda mevcut kullanıcıyı farklı IP adresinden bağlanmak için nasıl yetkilendireceğinize dair, kısa bir çalışma var. Sorularınız için bana eposta veya iletişim formu ile ulaşabilirsiniz.

[root@nessrv]# mysql -u usera -pxxxxx
mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| test               |
+——————–+
mysql> use mysql;
mysql> show tables;
+—————————+
| Tables_in_mysql           |
+—————————+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+—————————+
mysql> desc user;
+———————–+———————————–+——+—–+———+——-+
| Field                 | Type                              | Null | Key | Default | Extra |
+———————–+———————————–+——+—–+———+——-+
mysql> select * from user where User like ‘usera’;
+————–+——+——————————————-+————-+————-+————-+————-+————-+———–+————-+—————+————–+———–+————+—————–+————+————+————–+————+———————–+——————+————–+—————–+——————+——————+—————-+———————+——————–+——————+————+————–+———-+————+————-+————–+—————+————-+—————–+———————-+
| Host         | User | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+————–+——+——————————————-+————-+————-+————-+————-+————-+———–+————-+—————+————–+———–+————+—————–+————+————+————–+————+———————–+——————+————–+—————–+——————+——————+—————-+———————+——————–+——————+————+————–+———-+————+————-+————–+—————+————-+—————–+———————-+
| localhost    | usera | D4B0097 | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            |          |            |             |              |             0 |           0 |               0 |                    0 |
| 127.0.0.1    | usera | E7AF0265EDD4B009781 | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            |          |            |             |              |             0 |           0 |               0 |                    0 |
| 10.0.0.25 | usera | 65EDD4B0 | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            |          |            |             |              |             0 |           0 |               0 |                    0 |
+————–+——+——————————————-+————-+————-+————-+————-+————-+———–+————-+—————+————–+———–+————+—————–+————+————+————–+————+———————–+——————+————–+—————–+——————+——————+—————-+———————+——————–+——————+————+————–+———-+————+————-+————–+—————+————-+—————–+———————-+
4 rows in set (0.00 sec)
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO ‘usera’@’10.0.0.26′;
mysql> FLUSH PRIVILEGES;

Oracle servisini konsoldan başlatmak için

Konsol sisteminden oracle servisini başlatmak için;
# su – oracle
# export ssid=mnp
# lsncrtl
# sqlplus ‘/as sys’
# startup
**************************************************

Jira'yı servis olarak çalıştırmak

Servis olarak çalıştırmak

Linux sunucu üzerine kurduğunuz, Jira’yı servis gibi çalıştırmak için aşağıdaki scriptten yararlanabilirsiniz, scripti oluşturma ve çalıştırma adımları yazılmıştır.
vi /etc/init.d/jira
Aşağıdaki scripti kopyalarak, yapıştırın. Koyu renk alanları değiştirmeyi unutmayın.
  1. APP=jira   – {Uygulamanın ismi}
    USER=jiratest – {Servisin çalıştırılacağı kullanıcı}
    BASE=/usr/jira – {Servisin ev dizini}
  2. chmod +x /etc/init.d/jira
Servisimiz hazır, servisi başlatıp/durdurmak için aşağıdaki komutları kullanabilirsiniz.
/etc/init.d/jira start
/etc/init.d/jira stop

#!/bin/sh -e
# JIRA startup script
# Written by Nesrin
#chkconfig: 2345 80 05
#description: JIRA

# Define some variables
# Name of app ( JIRA, Confluence, etc )
APP=jira

# Name of the user to run as
USER=jiratest

# Location of application’s bin directory
BASE=/usr/jira

# Location of Java JDK
export JAVA_HOME=/usr/java/default

case “$1″ in
# Start command
start)
echo “Starting $APP”
/bin/su -m $USER -c “cd $BASE/logs && $BASE/bin/startup.sh &> /dev/null”
;;
# Stop command
stop)
echo “Stopping $APP”
/bin/su -m $USER -c “$BASE/bin/shutdown.sh &> /dev/null”
echo “$APP stopped successfully”
;;
# Restart command
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo “Usage: /etc/init.d/$APP {start|restart|stop}”
exit 1
;;
esac

exit 0
ve son olarak açılışta başlaması için,  aşağıdaki satırı çalıştırıp servisimizi tamamlıyoruz.
/sbin/chkconfig --level 345 jira on

Jira Ekranlarına Not Ekleme

Not Ekleme

Jira kullanımı kolaylaştırmak için, ekranlara yardım notları ekleyebilirsiniz. Bunun için öncelikle Jira Toolkit eklentisini yüklemeniz gereklidir. Daha sonra, “Message Custom Field” tipinde yeni bir alan oluşturun. Default Value alanına gireceğiniz data seçtiğiniz ekranlarda görünecektir.
Aşağıdaki örnek için kullanılan içerik aşağıdadır.
Priority

  • Blocker – Highest priority. Indicates that this issue takes precedence over all others.

  • Critical – Indicates that this issue is causing a problem and requires urgent attention.

  • Major – Indicates that this issue has a significant impact.

  • Minor – Indicates that this issue has a relatively minor impact.

  • Minor – Lowest priority.

Jira Duyuru eklemek için

Duyuru eklemek için,
Jira administration – Options & Settings – Announcement Banner
Jira will be down for system maintenance between 10:30 and 10:35 (GMT+2)

****************************************************************

Jelly Script ile çağrıları otomatik kapatma

Jelly Script ile çağrıları otomatik kapatma

Jelly Script hayatınızı kolaylaştırır, süreçleri daha da otomatikleştirmenize yardım eder. Benim şu ana kadar en çok kullandığım durum, çözümlenmiş çağrıların, kapatılması yani “resolve” –> “Close” durumları arasındaki geçiştir. Çözümlenene kadar sıkı bir takipçisi olduğumuz çağrıları, nedense “resolve” durumunda unuturuz hep. Hepimizin yaşadığını düşündüğüm bu durumu otomatikleştirmek için, kullanabileceğiniz script aşağıdadır. Renkli yerleri uygun şekilde değiştirmeyi unutmayın. Düzenli olarak çalışmasını istediğiniz scriptleri, servis olarak sisteme ekleyebilirsiniz.

Bu betiği çalıştırmadan önce, çözümlenmiş durumdaki çağrıları kapsayan bir filtre oluşturmalısınız. Script içinde kullanacağınız bu filtreyi, kapatılacak çağrıları kontrol etmek içinde kullanabilirsiniz.
user : İşlemi yapmaya yetkili bir kullanıcı
91 : Workflow işlem id
11081 : oluşturduğunuz filtrenin idsi
jira=”jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib” xmlns:core=”jelly:core” xmlns:log=”jelly:log” >
user” password=”*****“>
Running Close issues service


Dear User,

This issue has not been updated for 6 weeks and will be Closed.
Thank you, Jira Admin
91” />
jiraadm” />
CloseJelly” value=”11081” />


CloseJelly}” var=”issues” />


Closing inactive issue ${issue.key}




Sisteminizde jelly script çalıştırabilmek için, Jira’nin başlangıç parametrelerine “-Djira.jelly.on=true” eklemek gereklidir.

Jira Hata Mesajları - Çözümleri


Problem

JIRA Startup Failed

You cannot access JIRA at present. Look at the table below to identify the reasons
 
Description
Unable to clean the cache directory: /usr/install/jira_data/plugins/.osgi-plugins/felix
Çözüm :
Dosya izin haklarının, jira servisini çalıştırdığınız kullanıcı ile aynı olmadığı durumlarda bu karşınıza gelebilir. Genelde jira kurulumunda servisin yönetimi için bir jira hesabı tanımlanır, bu hesap ile tüm işlemleri yapmanız bu ve benzeri hataları engelleyebilir. Çözüm için hem jira program dosyalarında hem jira_data_home dizini için aşağıdaki komutu kullanabilirsiniz.
chown -R kullanıcı_adı dizin_adı


Problem :
JIRA Startup Failed
You cannot access JIRA at present. Look at the table below to identify the reasons
Description
Error occurred while starting component ‘com.atlassian.jira.event.DefaultListenerManager’.
Çözüm :
Bu hata ile çok ilginç bir şekilde, jira servisini jira_home dizini içinden çalıştırmadığım için aldım. Çözüm için jira_home dizini içinden bin/startup.sh yolunu kullandığımda sorun çözüldü.
Problem

JIRA Startup Failed

You cannot access JIRA at present. Look at the table below to identify the reasons
Description
Error occurred while starting Plugin Manager. Duplicate plugin found (installed version is the same or older) and could not be unloaded: ‘com.tott.jira.plugins.project-select-customfield’

Çözüm
Aynı eklentinin farklı sürümlerinin veya aynı sürümünün lib dizinlerinde birden fazla bulunmasından dolayı oluşuyor,
jira_home/plugins/installed_plugins ve jira/atlassian-jira/WEB_INF/lib dizinlerini kontrol edip sorunlu eklentiyi silin.
Problem
Log :
2011-04-27 10:37:05,134 main FATAL      [atlassian.jira.upgrade.ConsistencyLauncher] A fatal error occured during initialisation. JIRA has been locked.
com.atlassian.plugin.osgi.container.OsgiContainerException: Unable to clean the cache directory: /test/jira_home/plugins/.osgi-plugins/felix

JIRA Startup Failed

You cannot access JIRA at present. Look at the table below to identify the reasons
Description
Unable to clean the cache directory: /test/jira_home_new/plugins/.osgi-plugins/felix
Çözüm
chown – R jira /test/jira_home

Jira Issue Security Schemes


Jira – Çağrı Güvenlik Şemaları

Jira üzerinde güvenlik seviyeleri genel olarak üç farklı seviyededir :

Project Security Level "Permission Scheme" : İzin şemaları ile tanımlanır
Issue Security Level "Issue Security Scheme" : Çağrı güvenlik şemaları ile tanımlanır
Comment Securtiy Level "Project roles" : Proje rollerini kullanarak hazırlanır

Issue Security Level : Çağrı güvenlik şemaları, projelerden daha alt adımda gereken güvenlik durumlarında kullanılır. Bazı durumlarda, proje erişimine sahip kişilerin, bazı çağrıları görmesini engellemek için, çağrı güvenlik şemalarından yararlanılır. Örnek bir aşağıda verilmiştir. Müşteri erişimine açık olan bir projede, müşteri projesine ait, ancak kurum içi bazı bilgileri içeren ve müşterinin, çağrının varlığını bile bilmemesi gereken durumlarda kullanılabilir.


Örnek Senaryo :

Güvenlik Seviyeleri:
All-Users : Tüm kullanıcıları kapsar
Unrestricted : Müşteri ve yetkili hesapları kapsar
Restricted : Sadece yetkili kullanıcıları kapsar

Kritik bilgileri içeren bir çağrı açılırken, restricted seviyesi kullanılabilir.

Müşteriye ait özel bilgilerin bulunduğu, şirket içinden de kısıtlı erişim ihtiyacı olan çağrılar için Unrestricted kullanılır.

Şirket ve müşteri tarafındaki tüm kullanıcılara açık çağrılar için "All Users" seviyesi seçilebilir. İstenirse bu alan özel olarak seçilmediğinde otomatik tanımlı olması sağlanabilir. Diğer durumda da çağrı güvenlik seviyesi özel olarak belirtilmemişse, proje güvenlik seviyesini kullanacaktır.


Çağrı Güvenlik Şeması Tanımlanması :

  • Administration tabının altından, Issue Securty Level bağlantısı ile yapılır.



  • Her güvenlik seviyesi ayrı ayrı tanımlanmalı, yetkili kullanıcılar belirlenmelidir. 
     


  • Proje üzerinden güvenlik şeması seçilmeli, o proje için aktif hale getirilmelidir.




  • Çağrı açılış ekranına "Security Level" alanı eklendiğinde işlem tamamlanmış olur.


  • İzin şemalarında, güvenlik seviyesi değiştirmek için yetki verilen kullanıcıların önüne gelecek ekteki ekranda, güvenlik seviyesi çağrıya göre seçilebilir.