Doküman

Ubuntu 20.04’te Rundeck Nasıl Kurulur

Rundeck, otomasyon hizmetleri için ücretsiz bir açık kaynaklı yazılımdır. İşlerini yapmak için ihtiyaç duydukları süreçlere ve araçlara self servis erişim sağlar. Rundeck’i kullanarak mevcut araçlardan veya komut dosyalarından otomasyon iş akışları oluşturabilirsiniz. Otomasyon görevlerini çalıştırmak için bir web konsolu, CLI araçları ve bir Web API’si sağlar.

Ön koşullar

  • En az 2 CPU’lu bir Ubuntu 20.04
  • 4 GB RAM
  • 20 GB hard disk
  • Java 8 veya üstü
  • Bir veritabanı – MySQL/MariaDB, Oracle veya PostgrSQL
  • Varsayılan dosya sistemi veya S3 uyumlu nesne deposu olan günlükler için Günlük Deposu
  • 4440 (http) ve 4443 (https) bağlantı noktaları açılmalı

Adım 1: Java’yı Ubuntu’ya yükleme

Rundeck’in düzgün çalışması için Java 8 veya Java 11 gerekir. Varsayılan olarak yüklenmemişse, aşağıdaki komutları kullanarak Java’yı yükleyin.

İlk olarak, deponun önbelleğini güncelleyin

$ sudo apt update

Şimdi Java 11’i yüklemek için aşağıdaki komutu çalıştırın:

$ sudo apt install openjdk-11-jre-headless

Sürümü doğrulayabilirsiniz:

java -version

Adım 2: MySQL’i Ubuntu’ya yükleme

Rundeck, verilerini depolamak için MySQL, PostgreSQL, Oracle ve MS SQL Server’ı destekler. Bizim örneğimizde MySQL kullanacağız.

MySQL’i Ubuntu’ya kurmak için aşağıdaki komutu çalıştırın:

$ sudo apt install mysql-server

Ardından, başlangıçta MySQL hizmetini etkinleştirin, şunu yazın:

$ sudo systemctl enable mysql-server

Şimdi veritabanına erişim:

$ mysql -u root -p

Rundeck veritabanını ve kullanıcısını oluşturun:

mysql> CREATE DATABASE rundeckdb;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'rundeck_user'@'localhost' IDENTIFIED BY 'PASSWORD';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'rundeck_user'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

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

mysql> exit
bye

Adım 3: Rundeck’i Ubuntu 20.04’e yükleme

Burada Rundeck topluluk sürümünü kuracağız. Deb paketi dosyasını doğrudan web sitesinden formu doldurarak veya resmi depodan indirebilirsiniz.

Burada, her zaman en son sürüme sahip olmayı sağlayan resmi depodan kurulum yapacağız.

Bunu yapmak için önce repo imzalama anahtarını içe aktaracağız.

$ curl -L https://packages.rundeck.com/pagerduty/rundeck/gpgkey | sudo apt-key add -

Ardından Rundeck /etc/apt/sources.list.d/rundeck.list dosyasının kaynak listesi dosyasını ekleyelim.

$ sudo vim /etc/apt/sources.list.d/rundeck.list
deb https://packages.rundeck.com/pagerduty/rundeck/any/ any main
deb-src https://packages.rundeck.com/pagerduty/rundeck/any/ any main

Deponun önbelleğini güncelleyin

$ sudo apt update

Şimdi, apt komutunu kullanarak Rundeck’i kurun:

$ sudo apt install rundeck

Şimdi Rundeck’e veritabanına nasıl bağlanacağını söylememiz gerekiyor. Yapılandırma dosyasını bazı güncellemelerle düzenleyeceğiz. Halihazırda var olan satırları, yapılandırmanızla eşleşen doğru değerlerle değiştirdiğinizden emin olun.

$ sudo vim /etc/rundeck/rundeck-config.properties
grails.serverURL=http://YOUR_SERVER_IP:4440
dataSource.driverClassName = org.mariadb.jdbc.Driver
dataSource.url = jdbc:mysql://localhost/rundeckdb?autoReconnect=true&useSSL=false
dataSource.username = rundeck_user
dataSource.password = PASSWORD

Başka bir veritabanı kurduysanız, bazı konfigürasyonların değişmesi gerekir.

Şimdi başlangıçta hizmeti etkinleştirin

$ sudo systemctl enable rundeckd.service 

Ardından Rundeck hizmetini başlatın:

$ sudo systemctl start rundeckd.service 

durumu kontrol edebilirsiniz

$ sudo systemctl status rundeckd.service 
● rundeckd.service - LSB: rundeck job automation console
     Loaded: loaded (/etc/init.d/rundeckd; generated)
     Active: active (running) since Sat 2021-11-06 01:05:34 UTC; 2s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 229955 ExecStart=/etc/init.d/rundeckd start (code=exited, status=0/SUCCESS)
   Main PID: 229976 (java)
      Tasks: 12 (limit: 2279)
     Memory: 114.7M
     CGroup: /system.slice/rundeckd.service
             └─229976 java -Drundeck.jaaslogin=true -Djava.security.auth.login.config=/etc/rundeck/jaas-loginmodule.conf -Dloginmodule.name=RDpropertyfilelogin -Drdeck.config=/etc/rundeck -Drundeck.server.configDir=/etc/rundeck -D>

Nov 06 01:05:34 li663-64 systemd[1]: Starting LSB: rundeck job automation console...
Nov 06 01:05:34 li663-64 rundeckd[229955]:  * Starting rundeckd
Nov 06 01:05:34 li663-64 rundeckd[229955]:    ...done.
Nov 06 01:05:34 li663-64 systemd[1]: Started LSB: rundeck job automation console.

Varsayılan parola hala admin olduğundan, önce admin kullanıcısının varsayılan parolasını değiştirmeliyiz.

$ sudo vim /etc/rundeck/realm.properties
admin:NEW_ADMIN_PASSWORD,user,admin,architect,deploy,build

Bu noktada her şeyin çalışıp çalışmadığını kontrol etmek isterseniz Rundeck’e IP ve port 4440 ile erişmeyi deneyebilirsiniz ancak öncesinde güvenlik duvarında açmanız gerekecektir.

Nginx’i kullanacağımız için Rundeck’in URL’sini değiştirmek için diğer bazı konfigürasyon dosyalarını düzenlememiz gerekecek. Nginx’in Rundeck’e erişmek için kullanacağı URL’yi belirtmemiz gerekecek. Önce /etc/rundeck/framework.properties yapılandırma dosyasını düzenleyeceğiz

$ sudo vim /etc/rundeck/framework.properties
framework.server.url = http://rundeck.domain.com

Ardından /etc/rundeck/rundeck-config.properties yapılandırma dosyasını yeniden düzenleyeceğiz. Sunucunun IP adresini ve varsayılan bağlantı noktasını belirtmek için kullandığımız, ancak şimdi alan adını koyacağız.

$ sudo vim /etc/rundeck/rundeck-config.properties
grails.serverURL=http://rundeck.websitefortesting.com

4. Adım: SSL Sonlandırılmış Proxy

Burada Nginx’i SSL Sonlandırma için ters proxy olarak kullanacağız. Bu, Rundeck’e SSL/HTTPS desteği ile yardımcı olur.

Nginx, apt deposunda mevcuttur, aşağıdaki komutu kullanarak kolayca yükleyebilirsiniz:

$ sudo apt install nginx

Şimdi Rundeck alanınızın sertifikasını kopyalamanız gerekiyor.

$ sudo cp rundeck.domain.com.crt /etc/nginx/certs/rundeck.domain.com.crt

Ayrıca anahtarı kopyalamanız gerekir

$ sudo cp rundeck.domain.com.key /etc/nginx/certs/rundeck.domain.com.key

Herhangi bir çakışmayı önlemek için varsayılan yapılandırma dosyasını kaldıralım

$ sudo rm /etc/nginx/sites-enabled/default

Şimdi Rundeck’in konfigürasyon dosyasını oluşturalım.

$ sudo vim /etc/nginx/sites-available/rundeck.conf
server {
         server_name rundeck.domain.com;
         listen 80 ;
         access_log /var/log/nginx/rundeck.log;
         return 301 https://$host$request_uri;
 }
 server {
         server_name rundeck.domain.com;
         listen 443 ssl http2 ;
         access_log /var/log/nginx/rundeck.log;
         
                     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
         ssl_prefer_server_ciphers on;
         ssl_certificate /etc/nginx/certs/rundeck.domain.com.crt;
         ssl_certificate_key /etc/nginx/certs/rundeck.domain.com.key;
         add_header Strict-Transport-Security "max-age=31536000";
         
                     location / {
                 proxy_pass http://localhost:4440;
                 proxy_set_header X-Forwarded-Host $host:$server_port;
                 proxy_set_header X-Forwarded-Server $host;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
 }

Şimdi yapılandırma dosyasını etkinleştirelim

$ sudo ln -s /etc/nginx/sites-available/rundeck.conf /etc/nginx/sites-enabled/rundeck.conf

Nginx yapılandırmasını kontrol edin

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Adım 5: Rundeck Arayüzüne Erişim

Artık tarayıcınıza gidebilir ve Rundeck’e http://rundeck.domainadınız.com URL’si ile erişebilirsiniz.

Rundeck web arayüzü erişimi için kullanıcı adı admin ve şifre daha önce düzenlediğimiz NEW_ADMIN_PASSWORD.

Rundeck login screen

Artık Rundeck’inize erişiminiz var

Rundeck dashboard

Yapılandırmanızla başlamak için yeni bir proje oluşturabilirsiniz.

Yazının orijinalini buradan okuyabilirsiniz.