kolla-ansible安裝openstack(rocky)企業級高可用叢集
一.環境準備
1.hosts設定
每臺裝置兩塊網路卡:
第一塊:NAT模式,用於下載軟體包,設定好IP可以上網
第二塊:橋接模式,用於External網路,用於虛擬機器連線外部網路,不用設定IP
hosts:
host | eth0 | eth1 |
---|---|---|
deploy | 9.110.187.130 |
|
controller01 | 9.110.187.131 | 不需要IP |
controller02 | 9.110.187.132 | 不需要IP |
compute01 | 9.110.187.133 | 不需要IP |
compute02 | 9.110.187.134 | 不需要IP |
storage | 9.110.187.135 | 不需要IP |
2.ssh免密登入
ssh-keygen
ssh-copy-id root@controller01
ssh-copy-id root@controller02
ssh-copy-id root@compute01
ssh-copy-id root@compute02
ssh-copy-id root@storage
3.儲存節點配置
-
要啟動cinder儲存服務,需先新增一塊新的硬碟,然後建立pv、vg
[root@storage ~]# pvcreate /dev/sdb
[root@storage ~]# vgcreate cinder-volumes /dev/sdb //vg名取名為 cinder-volumes,這裡主要跟 kolla配置檔案裡vg名一致
-
只允許vm例項訪問塊儲存卷,對LVM可能出現異常做設定
vim /etc/lvm/lvm.conf
#修改 devices 下面的,有多少塊硬碟就寫多少塊,如果不想使用系統盤,則不寫a|sda
filter = [ "a|sda|", "a|sdb|", "r|.*|" ]
#重啟lvm服務
systemctl restart lvm2-lvmetad.service
4.配置國內PIP源
所有節點都需要配置
mkdir ~/.pip
cat << EOF > ~/.pip/pip.conf
[global]
index-url =
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
EOF
5.安裝PIP
#安裝依賴
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python
#安裝PIP
yum install -y python-pip
pip install --upgrade pip
6.安裝docker
-
所有節點都安裝
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo
yum install docker-ce
-
配置Docker共享掛載
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
-
使用阿里加速地址
mkdir -p /etc/docker
systemctl daemon-reload && systemctl enable docker && systemctl restart docker
systemctl status docker
二.部署節點安裝
1.安裝docker模組
pip install docker //這個其它節點也需要安裝,否則後面會報錯
2.ansible安裝
yum install -y ansible
pip install -U ansible
3.安裝kolla和kolla-ansible
-
Kolla-Ansible 可以從pip安裝,也可以從git安裝,這裡演示從pip安裝
pip install kolla kolla-ansible
錯誤解決方案
Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
解決:強制更新
pip install --ignore-installed PyYAML
如果出現
requests 2.20.0 has requirement idna<2.8,>=2.5, but you'll have idna 2.4 which is incompatible.
錯誤,則強制更新requets
庫pip install --ignore-installed requests
-
配置kolla-ansible
1)複製globals.yml 和passwords.yml 到 /etc/kolla 目錄
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
2)複製kolla-ansible的主機清單檔案(all-in-one和multinode)
cp /usr/share/kolla-ansible/ansible/inventory/* /home/
注:如果是在虛擬機器裡再啟動虛擬機器,那麼需要把virt_type=qemu,預設是kvm
mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF
4.生成密碼檔案
kolla-genpwd
修改下面欄位,使用方便的密碼
vim /etc/kolla/passwords.yml
keystone_admin_password: devops
5.修改配置檔案
-
grep -Ev "^$|^[#;]" /etc/kolla/globals.yml
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "rocky"
kolla_internal_vip_address: "9.110.187.180"
network_interface: "eth0"
api_interface: "{{ network_interface }}"
neutron_external_interface: "eth1"
neutron_plugin_agent: "openvswitch"
enable_cinder: "yes"
enable_cinder_backend_iscsi: "yes"
enable_cinder_backend_lvm: "no"
enable_haproxy: "yes"
enable_heat: "yes"
glance_enable_rolling_upgrade: "no"
ironic_dnsmasq_dhcp_range:
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:
-
編輯/home/multinode檔案
[control]
controller01
controller02
[network]
controller01
controller02
[inner-compute]
[external-compute]
compute01
compute02
[compute:children]
inner-compute
external-compute
[monitoring]
deploy
[storage]
storage
[deployment]
localhost ansible_connection=local
........
6.閘道器配置
這裡physnet1是對外網路的名字,在dashboard裡建立供應商網路的名字要和這裡對應
vim /usr/share/kolla-ansible/ansible/roles/neutron/templates/ml2_conf.ini.j2
[ml2_type_vlan]
{% if enable_ironic | bool %}
network_vlan_ranges = physnet1
{% else %}
network_vlan_ranges = physnet1
{% endif %}
三.openstack叢集安裝
1.提前拉取映象
kolla-ansible -i ./multinode pull -vvv
2.確認inventory配置檔案是否正確
ansible -m ping all -i ./multinode
3.Bootstrap服務的依賴安裝
kolla-ansible -i ./multinode bootstrap-servers
4.檢查
kolla-ansible -i ./multinode prechecks
5.部署
kolla-ansible -i ./multinode deploy
注:可以加-vvv,顯示更多
6.使用openstack
-
生成環境變數和指令碼
kolla-ansible -i ./multinode post-deploy
此時會在/etc/kolla下面生成admin-openrc.sh指令碼,執行一下
至此multinodes部署完成,瀏覽器輸入外網訪問地址: ,即可訪問Openstack的登陸頁面,使用者名稱和密碼都是之前設定的
-
各節點上服務常用目錄
/etc/kolla 服務配置目錄
/var/lib/docker/volumes/kolla_logs/_data 服務日誌目錄
/var/lib/docker/volumes 服務資料對映的目錄
銷燬openstack
kolla-ansible destroy -i ./multinode --yes-i-really-really-mean-it
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8686538/viewspace-2639941/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- openstack--rocky 安裝注意
- Kubernetes — 在 OpenStack 上使用 kubeadm 部署高可用叢集
- Linux原始碼安裝RabbitMQ高可用叢集Linux原始碼MQ
- 高可用叢集corosync+pacemaker之pcs安裝使用ROS
- 在 Rainbond 中一鍵安裝高可用 Nacos 叢集AI
- 如何安裝一個高可用K3s叢集?
- 【工具-Nginx】從入門安裝到高可用叢集搭建Nginx
- PostgreSQL repmgr高可用叢集+keepalived高可用SQL
- 使用kubeadm安裝kubernetes 1.13高可用叢集(使用calico網路)
- centos7 安裝k8s1.30.1高可用叢集(非獨立etcd叢集)CentOSK8S
- 二進位制安裝k8s高可用叢集(七):安裝外掛K8S
- zookeeper 高可用叢集搭建
- MongoDB高可用叢集搭建MongoDB
- 搭建 Kubernetes 高可用叢集
- Redis叢集與高可用Redis
- PostgreSQL patroni高可用叢集SQL
- Kolla-ansible部署openStack
- RabbitMQ從零到叢集高可用(.NetCore5.0) -高可用叢集構建落地MQNetCore
- WEB叢集- 高可用服務Web
- 高可用mongodb叢集(分片+副本)MongoDB
- 10、redis哨兵叢集高可用Redis
- mysql高可用叢集之MMMMySql
- Redis快取高可用叢集Redis快取
- Redis高可用-主從,哨兵,叢集Redis
- 高可用叢集之corosync+pacemakerROS
- 使用Kubeadm搭建高可用Kubernetes叢集
- 第一章 1.1.1節 Kubeadm安裝K8S高可用叢集K8S
- 二進位制安裝k8s高可用叢集(六):Node節點配置K8S
- redis通訊與高可用叢集原理Redis
- Oracle的三種高可用叢集方案Oracle
- 高可用叢集環境搭建-留檔
- 搭建高可用kubernetes叢集(keepalived+haproxy)
- RabbitMQ和Kafka的高可用叢集原理MQKafka
- 高可用Flink on YARN叢集快速配置Yarn
- 使用Keepalived構建LVS高可用叢集
- 基於 ZooKeeper 搭建 Spark 高可用叢集Spark
- 基於 ZooKeeper 搭建 Hadoop 高可用叢集Hadoop
- Kubernetes-高可用叢集證書更新