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

實驗環境部署python

image.png

image.png

主機名 IP 備註
controllre 192.168.80.184 控制節點
compute01 192.168.80.185 計算節點

注:計算節點可有多個mysql


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


  • 分別配置主機名和hosts文件web

# hostnamectl set-hostname controller # hostnamectl set-hostname compute01  //重啓生效 # vi /etc/hosts   192.168.80.184 controller
  192.168.80.185 compute01
sql


  • 關閉禁用 防火牆及SELinux數據庫

# systemctl stop firewalldbootstrap

# systemctl disable firewalldvim

# setenforce 0centos

# 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

image.png



添加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:keystone@192.168.80.184/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

image.png


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

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

image.png

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


使用默認的domain,建立service項目:用作服務。
# openstack project create --domain default \
  --description "Service Project" service

image.png


建立myproject項目:用作常規(非管理員)任務應使用非特權項目和用戶。
# openstack project create --domain default \
  --description "Demo Project" myproject

image.png


建立myuser用戶:

建立用戶須要設置密碼
# openstack user create --domain default \
  --password-prompt myuser

image.png

注:密碼自定義


建立myrole角色:
# openstack role create myrole

image.png

將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

image.png

注:

image.png 用戶名密碼皆爲admin


做爲myuser用戶,請求身份驗證令牌:
# openstack --os-auth-url http://192.168.80.184:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name myproject --os-username myuser token issue

image.png

注:上面註冊以後輸入的密碼

image.png


建立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_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=myproject
    export OS_USERNAME=myuser
    export OS_PASSWORD=myuser
    export OS_AUTH_URL=http://192.168.80.184:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2



使用腳本

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

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

相關文章
相關標籤/搜索