Kolla部署Pike版本的OpenStack-allinone雲平臺

1  openstack 概述
    openstack概述 :
        OpenStack是一個NASA美國國家航空航天局和Rackspace合做研發    的,以Apache許可證受權,而且是一個自由軟件和開放源代碼項目。
Open是開放,Stack則是堆砌之意,合起來就是將衆多的功能服務堆積起來的集合,讓人們經過Openstack雲計算項目,可以將諸如計算能力、存儲、網絡和軟件等資源抽象成服務,以便讓用戶能夠經過互聯網遠程來享用,付費的形式也變得因需而定,調整方便,擁有極強的虛擬可擴展性,是公共和私有云的建設與管理軟件中的優秀開源項目。
2  openstack的做用
    openstack的做用:
        OpenStack是一個雲平臺管理的項目,它不是一個軟件。這個項目由幾個主要的組件組合起來完成一些具體的工做。
OpenStack是一個旨在爲公共及私有云的建設與管理提供軟件的開源項目。它的社區擁有超過130家企業及1350位開發者,這些機構與我的都將OpenStack做爲基礎設施即服務(簡稱IaaS)資源的通用前端。

       2.1 IaaS(Infrastructure as a Service),即基礎設施即服務。
先生,你用過這個服務嗎? 
消費者經過Internet 能夠從完善的計算機基礎設施得到服務。這類服務稱爲基礎設施即服務。基於 Internet 的服務(如存儲和數據庫)是 IaaS的一部分。
        2.2 PaaS是Platform-as-a-Service的縮寫,意思是開發平臺即服務。 把服務器平臺做爲一種服務提供的商業模式。
        2.3 SaaS是Software-as-a-Service(軟件即服務)的簡稱
        2.4 按擁有者分類:
        公有云(Public Cloud)、私有云(Private Cloud)、混合雲(Hybrid Cloud)
        按照技術廠商分類:
        VMware vSphere、微軟雲計算解決方案、亞馬遜AWS、OpenStack等
        注:國內雲平臺使用opensctack二次開發比較多。
3    openstack核心組成主要有:
     核心組件
 	Keystone(身份認證)
 	Nova(計算)
 	Neutron(網絡)
 	Glance(鏡像存儲)
 	Cinder(塊存儲)
 	Swift(對象存儲)
 	Horizon(web UI界面)
 	Ceilometer(計量)
 	Heat(部署編排)
 	Trove(數據庫)
4.   OpenStack部署方法,主要有如下5種:
	社區手冊
 	http://docs.openstack.org
	RDO
 	https://www.rdoproject.org(http://openstack.redhat.com)
	RedHat Enterprise Linux OpenStack Platform  (E210 考試)
 	http://www.redhat.com/en/technologies/linux-platforms/openstack-platform
	Mirantis(Fuel)
 	https://www.mirantis.com
	高級定製
 	Puppet、Chef
	kolla 基於docker安裝openstack ,把openstack每一個組件作成docker實例 
5.    Kolla概述和openstack全部結點linux系統初始配置
kolla是openstack下面用於自動化部署的一個項目,它基於docker和ansible來實現,docker主要負責鏡像製做,容器管理。而ansible主要負責環境的部署和管理。
Kolla其實是分爲兩大塊的,一部分,Kolla提供了生產環境級別的鏡像,涵蓋了Openstack用到的各個服務,另外一部分是自動化的部署,也就是上面說的ansible部分。最開始兩個部分是在一個項目中的(也就是Kolla),從O版本開始將兩個部分獨立開來,Kolla項目用來構建全部服務的鏡像,Kolla-ansible用來執行自動化部署.   
        
        5.1  關閉selinux和防火牆firewalld
        5.2  安裝epel源,配置hostname
               yum install -y epel-release
               修改/etc/hostname 
                doupo
                vim /etc/hosts
                服務器外網ip    doupo.cn   doupo
        5.3   時間同步
                yum install ntp
                systemctl enable ntpd.service
                systemctl startntpd.service
                配置pip鏡像源,方便快速下載python庫
                mkdir /root/.pip/  --->  vim /root/.pip/pip.config
                    [global]
                    index-url = http://mirrors.aliyun.com/pypi/simple/
                    [install]
                    trusted-host=mirrors.aliyun.com
        5.4    配置網卡信息
                cd /etc/sysconfig/network-scripts
                cp ifcfg-eth0  ./ifcfg-eth1
                    TYPE="Ethernet"
                    BOOTPROTO="none"
                    NAME="eth2"
                    DEVICE="eth2"
                    ONBOOT="yes"
                    重啓以後檢查下網卡配置文件是否有變化
         5.5     安裝基礎包和docker服務
                    yum install python-devel libffi-devel gcc openssl-devel git python-pip -y
                    pip install -U pip  #升級一下pip,否則後,後期安裝會報警告
                    yum install -y yum-utils device-mapper-persistent-data lvm2   #安裝必要的一些系統工具
         5.6     添加docker yum 源安裝docker
                    systemctl stop libvirtd.service && systemctl disable libvirtd.service && systemctl status libvirtd.service
                    若是有的話,卸載舊的Docker,不然可能會不兼容:
                     yum remove  docker*  python-docker-py   mariadb*  httpd*(後期檢查部署環境的時候,會報錯必定要卸載掉)
            報錯以下:fatal: [doupo]: FAILED! => {"changed": false, "elapsed": 1, "msg": "Timeout when waiting for 
122.114.73.247:3306 to stop."} 
                    添加docker-ce yum源配置文件並安裝docker
                     yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
                    安裝 Docker-CE社區版本   yum install -y docker-ce
                       systemctl start  docker  &&  systemctl enable docker && systemctl status docker
                    設置docker volume卷掛載方式
                     mkdir /etc/systemd/system/docker.service.d
                        tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
                        [Service]
                        MountFlags=shared
                        EOF
                        注:加上MountFlags=shared後,當docker宿主機新增分區時,docker服務不用重啓。若是不加docker服務服務重啓,docker中的實例纔可使用新加的磁盤或分區。 添加這個參考後,後期在openstack中使用cinder存儲服務時,新加磁盤比較方便
6.  指定docker 鏡像加速器
        mkdir /etc/docker  ---> vim /etc/docker/daemon.json
          {
            "registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]  
           }
     注:若是須要使用本身的本地私有倉庫,寫成以下:
        {
          "registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]  
          "insecure-registries": ["122.114.73.247:4000"]
        }
        systemctl daemon-reload #修改了啓動腳本,須要執行
7. 安裝kolla-ansible
        yum install -y ansible
     下載kolla-ansible代碼
        cd /root  -->git clone http://git.trystack.cn/openstack/kolla-ansible -b stable/pike         #下載pike版本的openstack
        安裝kolla-ansible依賴包
        cd /root/kolla-ansible
        pip install .
        複製kolla-ansible的相關配置文件
        cp -r etc/kolla /etc/kolla/        cp ansible/inventory/* /etc/kolla/
        ls /etc/kolla
        all-in-one  globals.yml  multinode  passwords.yml
        注:all-in-one #安裝單節點openstack的ansible自動安裝配置文件
              multinode #安裝多節點openstack的ansible自動安裝配置文件
              globals.yml #openstack 部署的自定義配置文件 
              passwords.yml  #openstack中各個服務的密碼
      修改虛擬機類型爲qemu
          注:若是是在虛擬機裏裝kolla,但願能夠啓動再啓動虛擬機,那麼你須要把virt_type=qemu,默認是kvm。若是vmware開了「虛擬化Intel VT」功能,就不用寫這個了。
          mkdir -p /etc/kolla/config/nova
            cat << EOF > /etc/kolla/config/nova/nova-compute.conf
            [libvirt]
            virt_type=qemu
            cpu_mode = none
            EOF
            
8.  自定義kolla-ansible安裝openstack的相關配置文件
        自動生成openstack各服務的密碼文件
            kolla-genpwd
            vim  /etc/kolla/passwords.yml
             keystone_admin_password: HsPbEQHxTqmewKYNoRPpIOyQNdEYpHy36OX67TG3
            keystone_admin_password:密碼
        注:這是登陸Dashboard,admin使用的密碼,你能夠根據本身須要進行修改
        
            編輯 /etc/kolla/globals.yml 自定義openstack中部署事項
             #kolla_base_distro: "centos"    #選擇下載的鏡像爲基於centos版本的鏡像
                kolla_base_distro: "centos"
             #kolla_install_type: "binary"  #去了前面的#號,使用yum安裝二進制包安裝,源碼安裝,指的是使用git clone源碼安裝
              #openstack_release: ""     改成:openstack_release: "pike"    #指定安裝pike版本的openstack,後期下載的openstack相關的docker鏡像的tag標記也都爲pike
             #node_custom_config: "/etc/kolla/config"  #去掉前面的#
                kolla_internal_vip_address: "122.114.73.247"  # 咱們沒有啓用高可用,因此這裏的IP能夠和ens33同樣,也能夠獨立寫一個和ens33同網段的IP。
             注:若是配置了高可用,這裏要使用一個沒被佔用的IP。這個IP是搭建HA高可用的浮動IP。 此IP將由keepalived管理以提供高可用性,應設置爲和network_interface eth0 同一個網段的地址。
             network_interface: "eth0"   # Kolla-Ansible須要設置一些網絡選項。 咱們須要設置OpenStack使用的網絡接口。設置的第一個接口是「network_interface」。 這是openstack內部多個管理類型網絡的默認接口。
             neutron_external_interface: "eth1"    #所需的第二個接口專用於Neutron外部(或公共)網絡,能夠是vlan或flat,取決於網絡的建立方式。 此接口應在沒有IP地址的狀況下處於活動 若是不是,openstack雲平臺中的雲主機實例將沒法訪問外部網絡。 只要網卡啓動着,就能夠了,不要給IP,有IP時br-ex橋接就不成功了。
              #enable_cinder: "no"   #先不開啓cinder
              #enable_haproxy: "yes"    #去了前面的#號,改yes爲no。關閉高可用
9.  基於kolla-ansible安裝openstack私有云
        ssh-keygen
        ssh-copy-id -i ~/.ssh/id_rsa.pub root@doupo
        vim /etc/kolla/all-in-one   #把localhost替換成doupo
      開始部署openstack
        kolla-ansible -i /etc/kolla/all-in-one prechecks   #對主機進行預部署檢查,若是檢查到那個端口異常,需把改服務卸載掉
        沒報錯以後能夠進行拉去鏡像
        kolla-ansible -i /etc/kolla/all-in-one  pull
        docker images | wc -l
      部署openstack
        kolla-ansible -i /etc/kolla/all-in-one deploy   如報如下錯:
        RUNNING HANDLER [common : Initializing toolbox container using normal user] ****
fatal: [xuegod63]: FAILED! => {"changed": false, "cmd": ["docker", "exec", "-t", "kolla_toolbox", "/usr/bin/ansible", "--version"], "delta": "0:00:01.251727", "end": "2018-08-29 22:52:03.283733", "msg": "non-zero return code", "rc": 126, "start": "2018-08-29 22:52:02.032006", "stderr": "", "stderr_lines": [], "stdout": "OCI runtime exec failed: exec failed: container_linux.go:348
        kolla-ansible -i /etc/kolla/all-in-one deploy  #再運行一下。就自行解決了
        kolla-ansible -i /etc/kolla/all-in-one  post-deploy   驗證部署是否成功
        cat admin-openrc.sh  #查看openstack登陸賬號
        訪問:122.114.73.247  使用admin-openrc.sh帳號密碼登陸

  

相關文章
相關標籤/搜索