使用kolla-ansible搭建安裝OpenStack Tacker開發環境
先關掉防火牆和SELinux
systemctl disable firewalld vi /etc/sysconfig/selinux SELINUX=disabled
重啟系統
安裝epel源yum install epel-release
安裝並升級pipyum install python-pip
pip install -U pip
安裝依賴yum install python-devel libffi-devel gcc openssl-devel libselinux-python
安裝ansiblepip install -U ansible
安裝dockercurl -sSL https://get.docker.io | bash
CentOS 7開始用Systemd取代之前的SysVinit作為初始化系統,Ubuntu系統用的是upstart,參考官網配置時注意區分。設定docker自啟動systemctl enable docker
systemctl start docker
安裝docker python librarypip install -U docker
在實際多node部署時,時間同步很重要,但這裡是all-in-one環境,所以NTP不是必須的。配置時間同步服務yum install ntp
systemctl enable ntpd.service
systemctl start ntpd.service
強制同步ntpd -gq
設定時區timedatectl set-timezone Asia/Shanghai
修改時區的命令實際上是建立了一個連結檔案[[email protected] ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Dec 8 17:20 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
按照官網說法,docker需要設定MountFlags為shared,否則neutron-dhcp-agent會部署失敗# Create the drop-in unit directory for docker.service
mkdir -p /etc/systemd/system/docker.service.d
# Create the drop-in unit file
tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EOF
使用pip安裝kolla-ansiblepip install kolla-ansible
複製配置檔案global.yml和password.yml到/etc/kolla/,global.yml是Kolla-ansible最主要的配置檔案,password.yml包含keystone和資料庫的全部密碼。cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
複製ansible的inventory檔案到當前目錄,inventory檔案告訴ansible要在哪些node上執行命令,這裡有all-in-one和multinode兩種cp /usr/share/kolla-ansible/ansible/inventory/* .
使用下面的命令檢查當前主機是否支援硬體加速,由於是在virtualbox的虛機上安裝,所以這裡返回是0egrep -c '(vmx|svm)' /proc/cpuinfo
在這種情況下要配置libvirt使用QEMU,而不能是KVMmkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type = qemu
cpu_mode = none
EOF
Kolla-ansible擁有快速搭建或重建整個OpenStack的能力,有人說十幾分鍾就可以搭建完成。但是這有一個重要的前提,即所有Kolla image都已經ready,否則在天朝直接從官網下載docker image很容易讓人怨從心中起,惡向膽邊生,安裝過程大多數錯誤都是由於pull image引起的,所以推薦使用本地docker registry。考慮到今後可能多次重建整個虛機,我將docker registry搭建在OSX上,而不在虛機中。步驟:1. 在OSX上從官網下載registry壓縮包
wget https://tarballs.openstack.org/kolla/images/centos-source-registry-pike.tar.gz
mkdir /Users/alexli/kolla_registry
sudo tar xzf centos-binary-registry-ocata.tar.gz -C /Users/alexli/kolla_registry
2. 在OSX上下載Kolla原始碼,並修改啟動指令碼git clone https://github.com/openstack/kolla
vi tools/start-registry
#!/bin/bash
docker run -d \
--name registry \
--restart=always \
-p 5000:5000 \
-v /Users/alexli/kolla_registry:/var/lib/registry \
registry:2
3.在OSX上啟動registry,這裡的前提是OSX上已經裝好了dockercd kolla
tools/start-registry
檢視registry,192.168.56.1是OSX上的地址,也是虛機的閘道器地址curl -X GET http://192.168.56.1:5000/v2/_catalog
檢視tag,這裡應該顯示的是5.0.1curl -X GET http://192.168.56.1:5000/v2/lokolla/centos-source-mongodb/tags/list
{"name":"lokolla/centos-source-mongodb","tags":["5.0.1"]}
4.在虛機上配置docker允許連線不安全的registryvi /etc/sysconfig/docker
INSECURE_REGISTRY="--insecure-registry 192.168.56.1:5000”
5.為避免拉映象時出現“server gave HTTP response to HTTPS client”的錯誤,修改虛機上的配置vi /etc/docker/daemon.json
{
"insecure-registries": ["192.168.56.1:5000"]
}
6.最後統一重啟一下虛擬機器上的docker,讓配置生效systemctl daemon-reload
systemctl restart docker
不放心的話,可以手工pull一下image,看看有沒有問題docker pull 192.168.56.1:5000/lokolla/centos-source-mongodb:5.0.1
下面關鍵的一步,修改global.yml配置檔案,只安裝tacker,其它無關的OpenStack元件不安裝
kolla_install_type: “source” #開發用環境,用source
openstack_release: "" # 留空,kolla會根據kolla-ansible版本自動填
kolla_internal_vip_address: “192.168.56.101”
docker_registry: "192.168.56.1:5000" #剛剛配置的私有registry
Docker_namespace: “lokolla” #官網下載的就是這個名字
enable_glance: "no"
enable_haproxy: "no"
enable_keystone: "yes"
enable_mariadb: "yes"
enable_memcached: "yes"
enable_neutron: "no"
enable_nova: "no"
enable_barbican: "yes"
enable_mistral: "yes"
enable_tacker: "yes"
enable_heat: "no"
enable_openvswitch: "no"
enable_horizon: "yes"
enable_horizon_tacker: "{{ enable_tacker | bool }}"
預檢查配置是否有問題kolla-ansible prechecks -i ./all-in-one
生成密碼,如果覺得生成的密碼太複雜的話,可以手工改password.yml,改為容易記的密碼kolla-genpw
執行ansible playbook部署OpenStack,這裡花的時間會稍微長點,大概十幾分鍾吧kolla-ansible deploy -i ./all-in-one
如果一切順利,這是OpenStack所有服務應該已經啟動起來了,ansible結果:PLAY RECAP ************************************************************************************************************************************
localhost : ok=267 changed=57 unreachable=0 failed=0
生成admin-openrc.sh,以後在命令列執行openstack命令之前要先source一下這個檔案,就是更新環境變數。kolla-ansible post-deploy
安裝openstack命令列pip install python-openstackclient
到這裡實際上整個ansible部署就已經完成了,下面我們在這個環境基礎上搭建Tacker開發環境。
現在Pike版本的已經支援開發模式,但是目前只支援heat、horizon等幾個專案,要想讓tacker也支援開發模式,其實也很簡單,對照一下heat的ansible配置,修改下面Tacker的3個role檔案。
1.增加變數定義及volume配置,/usr/share/kolla-ansible/ansible/roles/tacker/defaults/main.yml
tacker_services:
tacker-server:
container_name: "tacker_server"
group: "tacker-server"
enabled: true
image: "{{ tacker_server_image_full }}"
volumes:
- "{{ node_config_directory }}/tacker-server/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "{{ kolla_dev_repos_directory ~ '/tacker/tacker:/var/lib/kolla/venv/lib/python2.7/site-packages/tacker' if tacker_dev_mode | bool else '' }}"
- "kolla_logs:/var/log/kolla/“
…
####################
# Kolla
####################
tacker_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
tacker_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
tacker_dev_mode: "{{ kolla_dev_mode }}”
2.增加clone tacker程式碼的playbook,/usr/share/kolla-ansible/ansible/roles/tacker/tasks/clone.yml---
- name: Cloning source repositories for development
git:
repo: "{{ tacker_git_repository }}"
dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
update: "{{ tacker_dev_repos_pull }}”
3.將clone程式碼包含在deploy過程中,/usr/share/kolla-ansible/ansible/roles/tacker/tasks/deploy.yml- include: clone.yml
when:
- tacker_dev_mode | bool
- inventory_hostname in groups['tacker-server’]
4.在global.yml配置檔案最後增加如下配置項tacker_dev_mode: true
5.停止並刪除tacker server container6.重新執行部署kolla的命令,kolla-ansible -i ./all-in-one deploy,可以看到多了兩個ansible的taskTASK [tacker : include] ***********************************************************************************************************************
included: /usr/share/kolla-ansible/ansible/roles/tacker/tasks/clone.yml for localhost
TASK [tacker : Cloning source repositories for development] ***********************************************************************************
changed: [localhost]
再檢視/opt[[email protected] tacker]# ll /opt/stack/
total 4
drwxr-xr-x 13 root root 4096 Dec 16 20:01 tacker
到這裡可以看出,kolla-ansible專案所說的開發環境就是講相關專案的程式碼克隆在host中,然後mount到docker裡,這樣修改host中的程式碼,docker中的程式碼也會改變,當然如果希望生效,還需要重啟docker。清理環境docker stop $(docker ps -q)
kolla-ansible -i ./all-in-one destroy --yes-i-really-really-mean-it
reboot now
在使用kolla-ansible安裝過程中,遇到各種各樣的問題,簡單記錄一下。1.沒啟動Docker daemon導致錯誤fatal: [localhost]: FAILED! => {"changed": true, "msg": "'Traceback (most recent call last):\\n File \"/tmp/ansible_S7JoMg/ansible_module_kolla_docker.py\", line 795, in main\\n dw = DockerWorker(module)\\n File \"/tmp/ansible_S7JoMg/ansible_module_kolla_docker.py\", line 218, in __init__\\n self.dc = get_docker_client()(**options)\\n File \"/usr/lib/python2.7/site-packages/docker/api/client.py\", line 149, in __init__\\n self._version = self._retrieve_server_version()\\n File \"/usr/lib/python2.7/site-packages/docker/api/client.py\", line 176, in _retrieve_server_version\\n \\'Error while fetching server API version: {0}\\'.format(e)\\nDockerException: Error while fetching server API version: (\\'Connection aborted.\\', error(2, \\'No such file or directory\\'))\\n’"}
2.kolla-ansible版本跟依賴的Jinja2版本不匹配,錯誤提示找不到“equalto” filter。單就這個問題,可以手工將“equalto”替換為“match”。3.keystone的playbook失敗TASK [keystone : Creating admin project, user, role, service, and endpoint]
CRITICAL keystone [-] Unhandled error: ProgrammingError: (pymysql.err.ProgrammingError) (1146, u\"Table 'keystone.project' doesn't exist\”)
原因是上次keystone任務只執行了一半,mariadb中keystone資料庫建立了,但是沒有表。把keystone資料庫刪除後 重新跑就ok4.在Horizon中啟動雲主機時,報“No valid host was found”錯誤。檢查nova的計算節點是否工作正常,檢視“主機聚合”中的狀態,通常因為nova scheduler找不到合適的主機5.清理環境時執行下面的命令報錯
docker exec kolla_toolbox openstack --os-interface internal --os-auth-url http://192.168.56.254:35357 --os-identity-api-version 3 --os-project-domain-name default --os-tenant-name admin --os-username admin --os-password xEZhAqFwlM8LPf55OH6a3lTaHa6QV0TYcQcB1lUe --os-user-domain-name default compute service list
用ip addr看看是否舊環境的介面還被佔著,如果是,重啟host,再部署6.docker pull image時報“invalid reference format”錯誤查遍網上資料說是要求路徑全部小寫,可是沒有大寫啊。後來終於發現還是由於粗心,pull的路徑寫的不對,對比一下:
錯誤的
docker pull http://192.168.56.1:5000/v2/lokolla/centos-source-mongodb
正確的
docker pull 192.168.56.1:5000/lokolla/centos-source-mongodb:5.0.1
7. cannot import name UnrewindableBodyError
解決辦法
pip uninstall urllib3
pip install urllib3
8. Hostname has to resolve to IP address of api_interface修改/etc/hosts,增加
192.168.56.101 localhost
9. 服務啟動失敗
TASK [*** : Running *** bootstrap container]
fatal: [localhost]: FAILED! => {"changed": true, "msg": "Container exited with non-zero return code”}
重新執行deploy,可能是docker pull超時了 相關推薦
使用kolla-ansible搭建安裝OpenStack Tacker開發環境
在ETSI NFV ISG的參考模型中,MANO包含三大元件:NFVO、VNFM和VIM。由於ETSI標準化程序遠落後於開源組織及裝置製造商各自的開發進度,雖然各大開源MANO,如OSM、ONAP、Op
Vagrant 搭建跨平臺的 PHP 開發環境 (一)安裝 ubuntu 虛擬機器
Vagrant是一個軟體,可以自動化虛擬機器的安裝和配置流程,支援 VirtualBox 、VMware 、AWS 作為虛擬機器以 VirtualBox 為例,步驟如下: Windows 10 系統中 需要關閉 Hyper-v , 小米筆記本中 biso 中找不到 虛擬化配置,關閉 Hyper-v 就可以了
Vagrant 搭建跨平臺的 PHP 開發環境 (一)安裝 ubuntu 虛擬機
刪除 des 添加 ans com 操作系統 nsh list 找不到 Vagrant是一個軟件,可以自動化虛擬機的安裝和配置流程,支持 VirtualBox 、VMware 、AWS 作為虛擬機以 VirtualBox 為例,步驟如下: Windows 10 系統中 需要
IntelliJ IDEA安裝及jsp開發環境搭建
一、前言 現在.net國內市場不怎麼好,公司整個.net組技術轉型,就個人來說還是更喜歡.net,畢竟不是什麼公司都像微軟一樣財大氣粗開發出VS這樣的宇宙級IDE供開發者使用,雙擊sln即可開啟專案,一直想吐槽為嘛java專案只能import。昨天一路踩坑,花了一整
Android Studio 下載、安裝與配置(開發環境搭建)
下載jdk8並安裝. 下載並安裝AndroidStudio。因為anroid.com無法訪問,可以從https://developer.android.google.cn/studio/獲取。 安裝AndroidStudio後,會自動下載Android SDK及其他
Linux新手安裝Ubuntu 16.04之後,如何快速搭建一個舒服的開發環境
然後將下面的程式碼新增多你的~/.bash_檔案中: export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+
詳細講解如何在windows下搭建react-native的開發環境(包括在裝置上安裝和執行react-native app )!
我之前在增加完變數後,react-native命令不起作用了,後來重新安裝react-native解決了此問題. 開啟安裝好的android stdio,然後start一個專案,下一步下一步,然後找到這個按鈕,這個是啟動模擬器的鍵,如果沒有安裝模擬器的話,可以選一個手機型號來下載,找到對應你的電腦的
Ubuntu下安裝C/C++開發環境【!!!有更新!!!Ubuntu14.10下使用eclipse搭建C語言開發環境】
(1)第一步安裝Eclipse,有兩種方法,使用軟體市場搜尋即可得到,安裝即可 第二種是使用終端安裝,命令如下: sudo su進入root模式 輸入密碼 然後 輸入:sudo apt-get install eclipse 開始安裝! 至此已經完全安裝eclipse
OpenStack horizon開發環境搭建
此文件是在本來安裝了計算節點的機器上實驗的。 cd /home/github 1.取得原始碼: 備份一份 mkdir /home/src pwd /home cp -r /github/horizon /src cd /home/src/horizon 2.in
基於騰訊雲的Centos6.2系統搭建Apache+Mysql+PHP開發環境
fcm 拓展 php代碼 /var/ 安全 size onf tle php-mysql 搭建環境,我肯定需要先購買騰訊雲服務器的哦! 然後,我們打開SecureCRT 7.3,這是一款可以連接Linux系統的客戶端工具,使用的很方便快捷,要註意的是,若你是Linux系統的
Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux開發環境[2.2]
set clu cto 無法安裝 urn ems water 了解 源代碼管理 Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux開發環境[2.2] 2015-07 北
mac下安裝配置go開發環境
string hello pkg obi cin keyword art ces mac 1、官網下載安裝包(需FQ) https://storage.googleapis.com/golang/go1.7.darwin-amd64.pkg 2、配置Go環境變量GOPA
利用Docker搭建java項目開發環境
測試 制作 需要 oot tomcat 啟動 分享 http 創建 一、需求 一臺 Ubuntu 16.0.4 LTS ,安裝了Docker服務,Rancher服務,也制作了Tomcat相關的image,接下來我們就來說一下如何快速的構建一個開發環境和測試環境 二、步驟
在windows下搭建React Native Android開發環境
ps1 doc cmd pro oot col exec 包管理工具 ocs 1.登錄 React Native 中文網http://reactnative.cn/docs/0.45/getting-started.html 2.登錄 Chocolatey 下載包管理工具h
【轉】Nodejs學習筆記(一)--- 簡介及安裝Node.js開發環境
ack 目錄 javascrip 難度 時間 網站開發 clas jetbrains 常用 目錄 學習資料 簡介 安裝Node.js npm簡介 開發工具 Sublime Node.js開發環境配置 擴展:安裝多版本管理器 學習資料 1.深入淺出Node.j
sublime text 搭建anconda的python開發環境遇到問題
ret 問題 conda res nbsp builder too ons python開發 1、Anacondea.sublime-setting 設置 "python_interprete":"/***/python.exe" 2、並且設置Anacondea.sub
搭建安卓測試開發環境
adt1. JDK 32位 or 64位 java -version2. ADT 32位 or 64位 下載後,解壓到某個目錄,並配置環境變量:新建ANDROID_HOMED:\adt-bundle-windows-x86_64-20131030\sdkPath,編輯,在後面添加:%AND
C | C++ 環境搭建 1.Visual Studio 開發環境搭建
visual 環境搭建 studio C | C++ 是我們初級入門的計算機語言之一,現階段用vs環境搭建 第一步: 下載vs軟件,並安裝vs和其幫助軟件MSDN。 在微軟官網下載,或者其他資源。其軟件缺點非開源軟件目前在Win系統搭建。C |
安裝Android Studio開發環境
1-1 path pan style color img 組件 evel 3.3 下載安裝包 中文社區官網 http://android-studio.org/ 目前最新的是2.3.3版本 安裝Android Studio 雙擊安裝 等待安裝包自動解壓
windows7安裝tensorflow-gpu開發環境
www. software 清華大學 jetbrains 清華 數據分析師 數據分析 ftw 數據科學 1、安裝anaconda anaconda想必大家都不陌生,由於網站登不上去,我找到了清華大學的一個開源鏡像,下載地址為http://mirrors.tuna.tsin