天天看點

OpenStack搭建私有雲一:認證服務

實驗環境部署

OpenStack搭建私有雲一:認證服務
OpenStack搭建私有雲一:認證服務

主機名

IP

備注

controllre

192.168.80.184

控制節點

compute01

192.168.80.185

計算節點

注:計算節點可有多個

控制節點和計算節點  環境搭建

分别配置主機名和hosts檔案

# hostnamectl set-hostname controller

# hostnamectl set-hostname compute01  //重新開機生效

# vi /etc/hosts

  192.168.80.184 controller

  192.168.80.185 compute01

關閉禁用 防火牆及SELinux

# systemctl stop firewalld

# systemctl disable firewalld

# setenforce 0

# vi /etc/sysconfig/selinux

  SELINUX=disabled

時間同步

# yum install -y ntp

# ntpdate time1.aliyun.com //同步阿裡雲網絡時間

# date   //檢視時間是否同步

安裝必要軟體

# yum install -y vim net-tools wget telnet

安裝openstack包

安裝對應版本的epel庫:

   # yum install centos-release-openstack-rocky -y   

安裝openstack用戶端:

    # yum install python-openstackclient -y

RHEL和CentOS 預設啟用SELinux。安裝 openstack-selinux軟體包以自動管理OpenStack服務的安全政策:

    # yum install openstack-selinux -y

資料庫安裝

安裝包:

# yum install mariadb mariadb-server python2-PyMySQL -y

建立和編輯配置檔案 /etc/my.cnf.d/openstack.cnf:

# vi  /etc/my.cnf.d/openstack.cnf

            [mysqld]

            bind-address = 192.168.80.184

            default-storage-engine = innodb

            innodb_file_per_table = on

            max_connections = 4096

            collation-server = utf8_general_ci

            character-set-server = utf8

設定啟動資料庫:

# systemctl enable mariadb.service

# systemctl start mariadb.service

通過運作mysql_secure_installation 腳本來保護資料庫服務。特别是,為資料庫root帳戶選擇合适的密碼 :

# mysql_secure_installation

        # Enter current password for root (enter for none):     Enter(回車)     //輸入根目錄的目前密碼(輸入表示無)

        # Set root password? [Y/n]   y   //是否設定root密碼

        # New password:

        # Re-enter new password:

        # Remove anonymous users? [Y/n] y  // 是否删除匿名使用者

        # Disallow root login remotely? [Y/n] y  // 是否禁止root遠端登陸

        # Remove test database and access to it? [Y/n] y  //是否删除test庫

        # Reload privilege tables now? [Y/n] y  //加載權限表

        Thanks for using MariaDB!     

安裝消息隊列

安裝rabbitmq:

# yum install rabbitmq-server -y

啟動rabbitmq:

# systemctl enable rabbitmq-server.service

# systemctl start rabbitmq-server.service

使用此插件實作web管理:

# rabbitmq-plugins enable rabbitmq_management

驗證是否開啟成功

# netstat -anpt | grep 5672

浏覽器通路:192.168.80.184:15672

使用者名 密碼皆為 guest

OpenStack搭建私有雲一:認證服務

添加openstack使用者

添加的使用者名為openstack,密碼也是openstack

# rabbitmqctl add_user openstack openstack

對openstack使用者進行讀寫授權:

# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

安裝Memcached

安裝Memacached:

# yum install memcached python-memcached -y

編輯/etc/sysconfig/memcached,修改配置

# vi /etc/sysconfig/memcached

    PORT="11211"

    USER="memcached"

    MAXCONN="1024"

    CACHESIZE="64"

    OPTIONS="-l 127.0.0.1,::1,192.168.80.184"

注:  修改部分為     ( ,+本機ip)

啟動memcached:

# systemctl enable memcached.service

# systemctl start memcached.service

驗證有沒有開啟

# netstat -anpt | grep memcache

到此環境部署完成。

控制節點: 開始安裝openstack服務

keystone服務安裝

配置keystone資料庫:

使用資料庫通路用戶端以root使用者身份連接配接到資料庫伺服器:

# mysql -u root -p

建立keystone資料庫,授予對keystone資料庫的适當通路權限:

> CREATE DATABASE keystone;

> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';

> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';

> quit

安裝配置keystone

運作以下指令以安裝軟體包:

# yum install openstack-keystone httpd mod_wsgi -y

編輯/etc/keystone/keystone.conf檔案并完成以下操作:

# cd /etc/keystone/

# cp keystone.conf keystone.conf.bak     //以防誤操作,盡量先将配置檔案備份一份

# egrep -v "^#|^$" keystone.conf.bak > keystone.conf      

# vi keystone.conf

    [database]

    connection = mysql+pymysql://keystone:[email protected]/keystone

    [token]

    provider = fernet

填充Identity服務資料庫:

# su -s /bin/sh -c "keystone-manage db_sync" keystone

驗證資料庫表

# mysql -ukeystone -pkeystone -e "use keystone; show tables;"

初始化Fernet密鑰存儲庫:

# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

引導身份服務:

admin為管理使用者的密碼,這裡是設定密碼。

# keystone-manage bootstrap --bootstrap-password admin \

  --bootstrap-admin-url http://192.168.80.184:5000/v3/ \

  --bootstrap-internal-url http://192.168.80.184:5000/v3/ \

  --bootstrap-public-url http://192.168.80.184:5000/v3/ \

  --bootstrap-region-id RegionOne

配置Apache HTTP服務

編輯/etc/httpd/conf/httpd.conf

# vi /etc/httpd/conf/httpd.conf

    ServerName 192.168.80.184

建立/usr/share/keystone/wsgi-keystone.conf檔案的連結:

# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

啟動服務

啟動Apache HTTP服務并将其配置為在系統引導時啟動:

# systemctl enable httpd.service

# systemctl start httpd.service

配置管理帳戶

# export OS_USERNAME=admin

# export OS_PASSWORD=admin

# export OS_PROJECT_NAME=admin

# export OS_USER_DOMAIN_NAME=Default

# export OS_PROJECT_DOMAIN_NAME=Default

# export OS_AUTH_URL=http://192.168.80.184:5000/v3

# export OS_IDENTITY_API_VERSION=3

檢視全局變量是否生效

# env|grep ^OS

OpenStack搭建私有雲一:認證服務

建立domain(域),projects(項目),users(使用者) and roles(角色)

# openstack domain create --description "An Example Domain" example

OpenStack搭建私有雲一:認證服務

注:OpenStack 是動态生成 ID 的,是以您看到的輸出會與示例中的指令行輸出不相同。

使用預設的domain,建立service項目:用做服務。

# openstack project create --domain default \

  --description "Service Project" service

OpenStack搭建私有雲一:認證服務

建立myproject項目:用做正常(非管理者)任務應使用非特權項目和使用者。

  --description "Demo Project" myproject

OpenStack搭建私有雲一:認證服務

建立myuser使用者:

建立使用者需要設定密碼

# openstack user create --domain default \

  --password-prompt myuser

OpenStack搭建私有雲一:認證服務

注:密碼自定義

建立myrole角色:

# openstack role create myrole

OpenStack搭建私有雲一:認證服務

将myuser添加到myproject項目中并賦予myrole的角色:

# openstack role add --project myproject --user myuser myrole

驗證使用者

取消設定臨時 變量OS_AUTH_URL和OS_PASSWORD環境變量:

# unset OS_AUTH_URL OS_PASSWORD

作為admin使用者,請求身份驗證令牌:

 執行後需要輸入admin密碼   

# openstack --os-auth-url http://192.168.80.184:5000/v3 \

  --os-project-domain-name Default --os-user-domain-name Default \

  --os-project-name admin --os-username admin token issue

OpenStack搭建私有雲一:認證服務

注:

OpenStack搭建私有雲一:認證服務

使用者名密碼皆為admin

作為myuser使用者,請求身份驗證令牌:

  --os-project-name myproject --os-username myuser token issue

OpenStack搭建私有雲一:認證服務

注:上面注冊之後輸入的密碼

OpenStack搭建私有雲一:認證服務

建立openstack 用戶端環境腳本

openstack用戶端通過添加參數或使用環境變量的方式來與Identity服務進行互動,為了提高效率,建立環境腳本:

建立admin使用者環境腳本:admin-openstack.sh

# vi admin-openstack.sh

    export OS_USERNAME=admin

    export OS_PASSWORD=admin

    export OS_PROJECT_NAME=admin

    export OS_USER_DOMAIN_NAME=Default

    export OS_PROJECT_DOMAIN_NAME=Default

    export OS_AUTH_URL=http://192.168.80.184:5000/v3

    export OS_IDENTITY_API_VERSION=3

建立myuser使用者環境腳本:demo-openstack.sh

# vi demo-openstack.sh

    export OS_PROJECT_NAME=myproject

    export OS_USERNAME=myuser

    export OS_PASSWORD=myuser

    export OS_IMAGE_API_VERSION=2

使用腳本

# source           admin-openstack.sh  或者  demo-openstack.sh

# openstack token issue   //請求身份驗證令牌

OpenStack搭建私有雲一:認證服務

繼續閱讀