OpenWhisk部署指南(未完待续)

OpenWhisk部署指南(未完待续),第1张

OpenWhisk部署指南(未完待续)

OpenWhisk是开源的Serverless平台,Github上的地址,虽然Github上有着部署的相关文档,但还是遇到了不少的问题,将安装过程及问题记录如下。

首先是将项目Clone到本地,进入OpenWhisk目录下
# Install git if it is not installed
sudo apt-get install git -y

# Clone openwhisk
git clone https://github.com/apache/openwhisk.git openwhisk

# Change current directory to openwhisk
cd openwhisk

安装JDK8

(这里比较推荐自己安装并部署好环境变量,便于管理,JDK的安装部署网上有很多教程就不贴出来了)

在 /openwhisk路径下执行以下命令安装 Open JDK8
# Install all required software
(cd tools/ubuntu-setup && ./all.sh)

执行以下命令安装 Oracle JDK 8
# Install all required software
(cd tools/ubuntu-setup && ./all.sh oracle)

这里需要注意到一点是,这个命令不仅是安装JDK,其他需要的一些需要的软件它也会部署。
根据我的经历,这里它会默认安装python2和python3,并且默认的python环境是python2,当默认是python2时运行部署命令会出现下面的问题,可以用https://stackoverflow.com/questions/69502341/error-you-are-using-pip-version-8-1-1-however-version-21-2-4-is-available-you的解决方案去解决

更新:这里还是修改下python的默认为python3

root@amax7:/usr/local/bin# vi ~/.bashrc 

root@amax7:/usr/local/bin# source ~/.bashrc 

这里再运行python --version命令可以看到已经变为python3的版本了

(或者采用该博客的方法)

Build
cd 
./gradlew distDocker

再运行这行命令后首先遇到了下图的问题,显示我fetch不到一个压缩包,实际上我是可以直接打开的,在issue也有人遇到了相关的情况,包括一些博客也有提到,是Docker镜像的问题,但是我在服务器搭了梯子再运行上述命令还是失败了

解决方法主要参考这篇博客,通过更换Docker源的问题初步解决

继续运行部署命令,遇到了如下的问题,在查询了诸多解决方法无果后重启服务器解决了,reboot大法好

CouchDB部署

CouchDB的部署主要参考了这篇文章
根据github的教程,通过dblocal.ini会配置以下的变量值

[db_creds]
db_provider=
db_username=
db_password=
db_protocol=
db_host=
db_port=

我在这里遇到的问题是我没有dblocal.ini这个文件,所以无法配置,根据文章的教程,可以先创建一个.sh文件,如下

mkdir /home/logconf 这里可以选择其他的文件,用于保存log,由于配置和日志默认保存路径为/tmp,机器重启时会被清空
vim wsk_env.sh
export OW_DB=CouchDB
export OW_DB_USERNAME=openwhisk
export OW_DB_PASSWORD=openwhisk
export OW_DB_PROTOCOL=http
export OW_DB_HOST=127.0.0.1
export OW_DB_PORT=4444 这个端口最好不选 443,openwsk 最后启动的 nginx 占用 443,避免冲突
export OPENWHISK_TMP_DIR=/home/logconf

之后,开始进行ansible安装

source openwsk_env.sh
cd ansible
ansible-playbook -i environments/local setup.yml

执行完后再打开/openwhisk/ansible/dblocal.ini如下所示

根据参考的文章,CouchDB配置部分就到此结束了,但是我在后面的部署中CouchDB还是遇到了一些问题,留待更新验证。

更新

当我再次运行,./gradlew distDocker 命令时遇到了如下的问题,检查发现是9100端口号被占用,用了这篇文章的解决方案,这里就不再赘述了


接着切换到ansible路径下依次运行如下命令(参照github)

cd 
./gradlew distDocker
cd ansible
ansible-playbook -i environments/$ENVIRONMENT couchdb.yml
ansible-playbook -i environments/$ENVIRONMENT initdb.yml
ansible-playbook -i environments/$ENVIRONMENT wipe.yml
ansible-playbook -i environments/$ENVIRONMENT openwhisk.yml

# installs a catalog of public packages and actions
ansible-playbook -i environments/$ENVIRONMENT postdeploy.yml

# to use the API gateway
ansible-playbook -i environments/$ENVIRONMENT apigateway.yml
ansible-playbook -i environments/$ENVIRONMENT routemgmt.yml

但是再运行到openwhisk.yml时始终运行不成功,如下所示,#4303 #4485
等issue均有提到,但是在尝试了多种方法后仍未解决,留待更新。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5563841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存