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-headlessSürümü doğrulayabilirsiniz:
java -versionAdı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-serverArdından, başlangıçta MySQL hizmetini etkinleştirin, şunu yazın:
$ sudo systemctl enable mysql-serverŞimdi veritabanına erişim:
$ mysql -u root -pRundeck 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
byeAdı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.listdeb https://packages.rundeck.com/pagerduty/rundeck/any/ any main
deb-src https://packages.rundeck.com/pagerduty/rundeck/any/ any mainDeponun ö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.propertiesgrails.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 = PASSWORDBaş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.propertiesadmin:NEW_ADMIN_PASSWORD,user,admin,architect,deploy,buildBu 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.propertiesframework.server.url = http://rundeck.domain.comArdı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.propertiesgrails.serverURL=http://rundeck.websitefortesting.com4. 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.crtAyrıca anahtarı kopyalamanız gerekir
$ sudo cp rundeck.domain.com.key /etc/nginx/certs/rundeck.domain.com.keyHerhangi 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.confserver { 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.confNginx yapılandırmasını kontrol edin
$ sudo nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulAdı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.

Artık Rundeck’inize erişiminiz var

Yapılandırmanızla başlamak için yeni bir proje oluşturabilirsiniz.
Yazının orijinalini buradan okuyabilirsiniz.