Keystone adalah layanan identitas OpenStack, menyediakan fungsionalitas pelacakan pengguna dan izin mereka; fungsi katalog melalui titik akhir API. Ini sebenarnya tidak memberi Anda fungsi pengelolaan pengguna apa pun, melainkan menyediakan antarmuka plug-in untuk memilih antara layanan autentikasi saat ini atau layanan identitas pihak ketiga yang tersedia di pasar.
Sebelum melanjutkan, lihat desain Infrastruktur kami di artikel sebelumnya.
Panduan ini menunjukkan cara menginstal dan mengonfigurasi layanan OpenStack Identity, keystone dengan nama kode, pada node pengontrol.
Prasyarat:
Sebelum menginstal layanan identitas OpenStack, Anda harus membuat database dan token administrasi.
# mysql -u root -p
buat basis data keystone.
CREATE DATABASE keystone;
Setel akses yang tepat ke basis data keystone.
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'PASSWD'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'PASSWD';
Ganti PASSWD dengan kata sandi yang sesuai.
Hasilkan nilai acak dan itu dapat digunakan sebagai token administrasi untuk konfigurasi awal.
# openssl rand -hex 10
Instal dan Konfigurasikan KeyStone:
Nonaktifkan layanan keystone dari memulai secara otomatis setelah instalasi.
# echo "manual" > /etc/init/keystone.override
* Dalam Kilo, server HTTP Apache digunakan untuk melayani permintaan keystone pada port 5000 dan 35357 dengan bantuan mod_wsgi alih-alih Eventlet yang disusutkan dalam versi OpenStack ini.
Pasang batu kunci.
# apt-get install keystone python-openstackclient apache2 libapache2-mod-wsgi memcached python-memcache
Edit file konfigurasi keystone.
# nano /etc/keystone/keystone.conf
Tempatkan entri berikut di bagian yang tepat dari file di atas.
[DEFAULT] ... admin_token = 43405b090eda983ddde2 ## Replace 43405b090eda983ddde2 with a random that you generated earlier verbose = True [database] ... connection = mysql://keystone:PASSWD@controller/keystone ## Replace PASSWD with your KeyStone DB password [memcache] ... servers = localhost:11211 [token] ... provider = keystone.token.providers.uuid.Provider driver = keystone.token.persistence.backends.memcache.Token [revoke] ... driver = keystone.contrib.revoke.backends.sql.Revoke
Jalankan perintah berikut untuk mengisi database layanan identitas.
# keystone-manage db_sync
Konfigurasikan server HTTP Apache:
Edit /etc/apache2/apache2.conf dan konfigurasikan opsi ServerName untuk mereferensikan node pengontrol.
ServerName controller
Buat file di bawah ini.
# nano /etc/apache2/sites-enabled/wsgi-keystone.conf
Tempel konten berikut ke file di atas.
Listen 5000 Listen 35357 <VirtualHost *:5000> WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP} WSGIProcessGroup keystone-public WSGIScriptAlias / /var/www/cgi-bin/keystone/main WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> LogLevel info ErrorLog /var/log/apache2/keystone-error.log CustomLog /var/log/apache2/keystone-access.log combined </VirtualHost> <VirtualHost *:35357> WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP} WSGIProcessGroup keystone-admin WSGIScriptAlias / /var/www/cgi-bin/keystone/admin WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> LogLevel info ErrorLog /var/log/apache2/keystone-error.log CustomLog /var/log/apache2/keystone-access.log combined </VirtualHost>
Buat direktori untuk komponen WSGI.
# mkdir -p /var/www/cgi-bin/keystone
Jalankan perintah berikut untuk mengunduh komponen WSGI dari repositori upstream.
# curl http://git.openstack.org/cgit/openstack/keystone/plain/httpd/keystone.py?h=stable/kilo | tee /var/www/cgi-bin/keystone/main /var/www/cgi-bin/keystone/admin
Ubah kepemilikan dan izin.
# chown -R keystone:keystone /var/www/cgi-bin/keystone # chmod 755 /var/www/cgi-bin/keystone/*
Mulai ulang layanan Apache.
# service apache2 restart
Hapus database SQLite karena kami menggunakan database MySQL.
# rm -f /var/lib/keystone/keystone.db
Selanjutnya adalah Membuat entitas layanan dan titik akhir API.