mirror of
https://github.com/Ascend/ascend-docker-runtime.git
synced 2025-10-13 08:13:41 +08:00
175 lines
4.9 KiB
Bash
175 lines
4.9 KiB
Bash
#!/bin/bash
|
|
|
|
ASCEND_RUNTIME_CONFIG_DIR=/etc/ascend-docker-runtime.d
|
|
DOCKER_CONFIG_DIR=/etc/docker
|
|
INSTALL_PATH=/usr/local/Ascend/Ascend-Docker-Runtime
|
|
|
|
function install()
|
|
{
|
|
echo 'installing ascend docker runtime'
|
|
|
|
if [ ! -d "${INSTALL_PATH}" ]; then
|
|
mkdir -p ${INSTALL_PATH}
|
|
fi
|
|
|
|
cp -f ./ascend-docker-runtime ${INSTALL_PATH}/ascend-docker-runtime
|
|
cp -f ./ascend-docker-hook ${INSTALL_PATH}/ascend-docker-hook
|
|
cp -f ./ascend-docker-cli ${INSTALL_PATH}/ascend-docker-cli
|
|
cp -f ./ascend-docker-plugin-install-helper ${INSTALL_PATH}/ascend-docker-plugin-install-helper
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-runtime
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-hook
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-cli
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-plugin-install-helper
|
|
|
|
mkdir -p ${INSTALL_PATH}/script
|
|
cp -f ./uninstall.sh ${INSTALL_PATH}/script/uninstall.sh
|
|
chmod 550 ${INSTALL_PATH}/script/uninstall.sh
|
|
|
|
if [ -d "${ASCEND_RUNTIME_CONFIG_DIR}" ]; then
|
|
rm -rf ${ASCEND_RUNTIME_CONFIG_DIR}
|
|
fi
|
|
mkdir -p ${ASCEND_RUNTIME_CONFIG_DIR}
|
|
cp -f ./base.list ${ASCEND_RUNTIME_CONFIG_DIR}/base.list
|
|
chmod 440 ${ASCEND_RUNTIME_CONFIG_DIR}/base.list
|
|
|
|
echo 'install executable files success'
|
|
|
|
if [ ! -d "${DOCKER_CONFIG_DIR}" ]; then
|
|
mkdir -p ${DOCKER_CONFIG_DIR}
|
|
fi
|
|
|
|
SRC="${DOCKER_CONFIG_DIR}/daemon.json.${PPID}"
|
|
DST="${DOCKER_CONFIG_DIR}/daemon.json"
|
|
./ascend-docker-plugin-install-helper add ${DST} ${SRC} ${INSTALL_PATH}/ascend-docker-runtime
|
|
if [ "$?" != "0" ]; then
|
|
echo 'create damon.json failed'
|
|
exit 1
|
|
fi
|
|
|
|
mv ${SRC} ${DST}
|
|
echo 'create damom.json success'
|
|
echo 'please reboot docker daemon to take effect'
|
|
}
|
|
|
|
function uninstall()
|
|
{
|
|
echo 'uninstalling ascend docker runtime'
|
|
|
|
if [ ! -d "${INSTALL_PATH}" ]; then
|
|
echo 'WARNING: the specified install path does not exist, skipping'
|
|
exit 0
|
|
fi
|
|
|
|
${INSTALL_PATH}/script/uninstall.sh
|
|
echo 'remove daemon.json setting success'
|
|
|
|
rm -rf ${INSTALL_PATH}
|
|
echo 'remove executable files success'
|
|
|
|
echo 'del damom.json success'
|
|
}
|
|
|
|
function upgrade()
|
|
{
|
|
echo 'upgrading ascend docker runtime'
|
|
|
|
if [ ! -d "${INSTALL_PATH}" ]; then
|
|
echo 'ERROR: the specified install path does not exist, stopping upgrading'
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "${ASCEND_RUNTIME_CONFIG_DIR}" ]; then
|
|
echo 'ERROR: the configuration directory does not exist'
|
|
exit 1
|
|
fi
|
|
|
|
cp -f ./ascend-docker-runtime ${INSTALL_PATH}/ascend-docker-runtime
|
|
cp -f ./ascend-docker-hook ${INSTALL_PATH}/ascend-docker-hook
|
|
cp -f ./ascend-docker-cli ${INSTALL_PATH}/ascend-docker-cli
|
|
cp -f ./ascend-docker-plugin-install-helper ${INSTALL_PATH}/ascend-docker-plugin-install-helper
|
|
cp -f ./uninstall.sh ${INSTALL_PATH}/script/uninstall.sh
|
|
cp -f ./base.list ${ASCEND_RUNTIME_CONFIG_DIR}/base.list
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-runtime
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-hook
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-cli
|
|
chmod 550 ${INSTALL_PATH}/ascend-docker-plugin-install-helper
|
|
chmod 550 ${INSTALL_PATH}/script/uninstall.sh
|
|
chmod 440 ${ASCEND_RUNTIME_CONFIG_DIR}/base.list
|
|
|
|
echo 'upgrade ascend docker runtime success'
|
|
}
|
|
|
|
INSTALL_FLAG=n
|
|
INSTALL_PATH_FLAG=n
|
|
UNINSTALL_FLAG=n
|
|
UPGRADE_FLAG=n
|
|
DEVEL_FLAG=n
|
|
|
|
while true
|
|
do
|
|
case "$3" in
|
|
--install)
|
|
INSTALL_FLAG=y
|
|
shift
|
|
;;
|
|
--uninstall)
|
|
UNINSTALL_FLAG=y
|
|
shift
|
|
;;
|
|
--install-path=*)
|
|
INSTALL_PATH_FLAG=y
|
|
INSTALL_PATH=`echo $3 | cut -d"=" -f2 `
|
|
INSTALL_PATH=`echo ${INSTALL_PATH} | sed "s/\/*$//g"`
|
|
shift
|
|
;;
|
|
--upgrade)
|
|
UPGRADE_FLAG=y
|
|
shift
|
|
;;
|
|
--devel)
|
|
DEVEL_FLAG=y
|
|
shift
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# 安装为相对路径时报错
|
|
if [ "${INSTALL_PATH}" == ".." ] || [ "${INSTALL_PATH}" == "." ]; then
|
|
echo "error :Please follow the installation address after the --install-path=<Absolute path>"
|
|
exit 1
|
|
fi
|
|
|
|
# 单纯只有--install-path的判定处理
|
|
if [ "${INSTALL_PATH_FLAG}" == "y" ] && \
|
|
[ "${INSTALL_FLAG}" == "n" ] && \
|
|
[ "${UNINSTALL_FLAG}" == "n" ] && \
|
|
[ "${UPGRADE_FLAG}" == "n" ] && \
|
|
[ "${DEVEL_FLAG}" == "n" ]; then
|
|
echo "Error:only input <install_path> command. When use --install-path you also need intput --install or --uninstall or --upgrade or --devel"
|
|
exit 1
|
|
fi
|
|
|
|
# 需root用户权限
|
|
if [ "${USER}" != "root" ]; then
|
|
echo 'please run with root permission'
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${INSTALL_FLAG}" == "y" ] || [ "${DEVEL_FLAG}" == "y" ]; then
|
|
install
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${UNINSTALL_FLAG}" == "y" ]; then
|
|
uninstall
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${UPGRADE_FLAG}" == "y" ]; then
|
|
upgrade
|
|
exit 0
|
|
fi
|