本文章主要参考了这两篇博文:OpenWhisk部署指南以及How to Set Up Apache OpenWhisk on Ubuntu 18.04。并结合自己部署时遇到的报错
安装git
sudo apt-get install git -y
将openwhisk项目克隆到本地
git clone https://github.com/apache/openwhisk.git
此处克隆项目,我有遇到一些由于网络的报错,比如connection refused。
处理方法是多次重复,以及尝试着切换了另一个网络就行了(比如刚开始是连接的校园网,不行的话就切换成手机热点,然后就克隆成功了)。(全程都挂着梯子)
(上图是wifi网络改成连接手机热点后就成功clone了)
进入安装依赖的脚本所在目录
cd openwhisk/tools/ubuntu-setup
运行脚本,安装所有依赖
./all.sh
运行后,应该会以红框内的docker restart结尾,否则就是出错了,且这一部分容易出各种错误,需留意
build
cd <home_openwhisk>
./gradlew distDocker
这个报错是由于当前主机没有安装npm,执行下面的指令安装即可
sudo apt install -y npm
之后又遇到一个报错
然后用玄学方法,梯子还一直开着,把原本连的校园网换成手机热点,然后,成功了.......
couchdb安装(参考官网)
sudo apt update && sudo apt install -y curl apt-transport-https gnupg
curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1
上一行运行成功后会是这个
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" \
| sudo tee /etc/apt/sources.list.d/couchdb.list >/dev/null
sudo apt update
sudo apt install -y couchdb
couchdb安装界面
选择standalong
erlang cookie自己是随便填的
这个绑定地址我是填的0.0.0.0
再后面就是默认用户名admin,输入密码的界面,我的密码填的openwhisk,后面还会用到。密码一定要记着。两次输入密码后安装成功
部署couchdb
sudo mkdir /home/logconf
sudo gedit wsk_env.sh
输入以下内容
export OW_DB=CouchDB
export OW_DB_USERNAME=admin #admin是默认用户名,如果自己修改了,填自己的用户名
export OW_DB_PASSWORD=openwhisk #这个是我安装couchdb时的密码,请修改成自己安装时输入的密码
export OW_DB_PROTOCOL=http
export OW_DB_HOST=172.17.0.1
export OW_DB_PORT=5984
export OPENWHISK_TMP_DIR=/home/logconf
然后保存并退出
之后,使用ansible安装
source wsk_env.sh
进入执行下面命令前,位置是在openwhisk目录下
cd ansible
sudo ansible-playbook -i environments/local setup.yml
运行后如图
sudo ansible-playbook prereq.yml
cd ..
sudo ./gradlew distDocker
cd ansible
sudo ansible-playbook initdb.yml
后来一次部署,在这一步报错。进入ansible文件夹中,能看到db_local.ini文件,查看该文件,发现其username和password并不是我们前面设置的值(账号admin,密码openwhisk)
那就是那一步配置失败了。我们在这个文件手动修改账号和密码
再重新运行, sudo ansible-playbook initdb.yml 就不会报错了
sudo ansible-playbook wipe.yml
sudo ansible-playbook openwhisk.yml
openwhisk.yml运行时间比较长。
如果成功运行到这样的结果,那其实openwhisk就能用了
运行docker ps,能看到以下几个容器
后面再运行
ansible-playbook postdeploy.yml
会这样,不过问题不大
cli工具下载
这个网址可以下载到各种版本的cli
Release 1.2.0 · apache/openwhisk-cli · GitHub
如果是ubuntu的话,可以直接执行如下指令
cd xxxxxxx/openwhisk/bin
//进入openwhisk目录下的bin文件夹中
wget https://github.com/apache/openwhisk-cli/releases/download/1.2.0/OpenWhisk_CLI-1.2.0-linux-amd64.tgz
该指令会下载amd64的cli工具压缩包
下面将下载好的压缩包解压
tar -zxvf <下载好的压缩包>
下面将cli工具添加到环境变量中
vim ~/.bashrc //配置环境变量
export PATH=$PATH:/home/a123/openwhisk/bin //注意!!填自己的openwhisk bin路径
source ~/.bashrc //source下使文件生效
在openwhisk目录下面进行对cli工具的配置
./bin/wsk property set --apihost '172.17.0.1'
./bin/wsk property set --auth `cat ansible/files/auth.guest`
进行了以上配置之后,在命令行中输入以下内容并回车
wsk
就会出现如下的内容,这就说明wsk成功添加到环境变量中了
创建测试文件
sudo gedit hello.js
/**
* Hello world as an OpenWhisk action.
*/
function main(params) {
var name = params.name || 'World';
return {payload: 'Hello, ' + name + '!'};
}
创建action
wsk -i action create hello hello.js
激活action并获得结果
wsk -i action invoke hello --result
出现这样的结果则说明部署成功