#!/bin/bash
# Cloudinsight Agent install script.
set -e
logfile="ci-agent-install.log"
gist_request=/tmp/agent-gist-request.tmp
gist_response=/tmp/agent-gist-response.tmp if [ $(command -v curl) ]; then
cl_cmd="curl -f"
else
cl_cmd="wget --quiet"
fi # Set up a named pipe for logging
npipe=/tmp/$$.tmp
mknod $npipe p # Log all output to a log for error checking
tee <$npipe $logfile &
exec 1>&-
exec 1>$npipe 2>&1
trap "rm -f $npipe" EXIT function on_error() {
printf "\033[31m$ERROR_MESSAGE
It looks like you hit an issue when trying to install the Agent. Troubleshooting and basic usage information for the Agent are available at: http://docs-ci.oneapm.com/quick-start/ If you're still having problems, please contact to support@oneapm.com
and we'll try our best to help you solve your problem.\n\033[0m\n"
}
trap on_error ERR if [ -n "$CI_LICENSE_KEY" ]; then
license_key=$CI_LICENSE_KEY
fi if [ -n "$CI_INSTALL_ONLY" ]; then
no_start=true
else
no_start=false
fi if [ ! $license_key ]; then
printf "\033[31mLicense key not available in CI_LICENSE_KEY environment variable.\033[0m\n"
exit 1;
fi # OS/Distro Detection
# Try lsb_release, fallback with /etc/issue then uname command
KNOWN_DISTRIBUTION="(Debian|Ubuntu|RedHat|CentOS|Amazon)"
DISTRIBUTION=$(lsb_release -d 2>/dev/null | grep -Eo $KNOWN_DISTRIBUTION || grep -Eo $KNOWN_DISTRIBUTION /etc/issue 2>/dev/null || uname -s) if [ $DISTRIBUTION = "Darwin" ]; then
printf "\033[31mThis script does not support installing on the Mac..\033[0m\n"
exit 1; elif [ -f /etc/debian_version -o "$DISTRIBUTION" == "Debian" -o "$DISTRIBUTION" == "Ubuntu" ]; then
OS="Debian"
elif [ -f /etc/redhat-release -o "$DISTRIBUTION" == "RedHat" -o "$DISTRIBUTION" == "CentOS" -o "$DISTRIBUTION" == "Amazon" ]; then
OS="RedHat"
elif [ -f /etc/system-release -o "$DISTRIBUTION" == "Amazon" ]; then
OS="RedHat"
fi # Root user detection
if [ $(echo "$UID") = "" ]; then
sudo_cmd=''
else
sudo_cmd='sudo'
fi function backup_old_configuration {
if [[ ! -d /etc/cloudinsight-agent ]]; then
# New configuration does not exist, move legacy configuration to new location
echo -e "Please note, Cloudinsight Agent's configuration is now located at '/etc/cloudinsight-agent' (previously '/etc/oneapm-ci-agent')."
$sudo_cmd mkdir /etc/cloudinsight-agent
$sudo_cmd cp -r /etc/oneapm-ci-agent/checks.d /etc/cloudinsight-agent/
$sudo_cmd cp -r /etc/oneapm-ci-agent/conf.d /etc/cloudinsight-agent/ backup_name="oneapm-ci-agent.conf.$(date +%s).backup"
echo "A backup of your current configuration can be found at: /etc/cloudinsight-agent/$backup_name"
$sudo_cmd cp -a /etc/oneapm-ci-agent/oneapm-ci-agent.conf /etc/cloudinsight-agent/$backup_name
fi
} # Install the necessary package sources
if [ $OS = "RedHat" ]; then
echo -e "\033[34m\n* Installing YUM sources for Cloudinsight Agent\n\033[0m" UNAME_M=$(uname -m)
if [ "$UNAME_M" == "i686" -o "$UNAME_M" == "i386" -o "$UNAME_M" == "x86" ]; then
ARCHI="i386"
else
ARCHI="x86_64"
fi $sudo_cmd sh -c "echo -e '[cloudinsight-agent]\nname = OneAPM, Inc.\nbaseurl = http://yum.oneapm.com/$ARCHI/\nenabled=1\ngpgcheck=0\npriority=1' > /etc/yum.repos.d/cloudinsight-agent.repo" printf "\033[34m* Installing the Cloudinsight Agent package\n\033[0m\n" CI_OLD_INSTALLED=$(yum list installed oneapm-ci-agent > /dev/null 2>&1 || echo "no")
if [ "$CI_OLD_INSTALLED" != "no" ]; then
backup_old_configuration $sudo_cmd rm -f /etc/yum.repos.d/oneapm-ci-agent.repo echo -e "\033[34m\n* Uninstall oneapm-ci-agent\n\033[0m"
$sudo_cmd yum -y remove oneapm-ci-agent # Remove extra files
$sudo_cmd rm -rf /opt/oneapm-ci-agent
$sudo_cmd rm -rf /var/log/oneapm-ci-agent
$sudo_cmd rm -rf /etc/oneapm-ci-agent
fi $sudo_cmd yum -y --disablerepo='*' --enablerepo='cloudinsight-agent' install cloudinsight-agent
elif [ $OS = "Debian" ]; then
printf "\033[34m\n* Installing APT package sources for Cloudinsight Agent\n\033[0m\n"
$sudo_cmd sh -c "echo 'deb http://apt.oneapm.com/ stable main' > /etc/apt/sources.list.d/cloudinsight-agent.list"
$sudo_cmd apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 54B043BC printf "\033[34m\n* Installing the Cloudinsight Agent package\n\033[0m\n"
ERROR_MESSAGE="ERROR
Failed to update the sources after adding the Cloudinsight repository.
This may be due to any of the configured APT sources failing -
see the logs above to determine the cause.
If the failing repository is Cloudinsight, please contact Cloudinsight support.
*****
" $sudo_cmd apt-get update -o Dir::Etc::sourcelist="sources.list.d/cloudinsight-agent.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup=""
ERROR_MESSAGE="ERROR
Failed to install the Cloudinsight package, sometimes it may be
due to another APT source failing. See the logs above to
determine the cause.
If the cause is unclear, please contact Cloudinsight support.
*****
" if [ -f /etc/apt/sources.list.d/oneapm-ci-agent.list ]; then
$sudo_cmd rm -f /etc/apt/sources.list.d/oneapm-ci-agent.list
fi CI_OLD_INSTALLED=$(dpkg -l | grep oneapm-ci-agent > /dev/null 2>&1 || echo "no")
if [ "$CI_OLD_INSTALLED" != "no" ]; then
backup_old_configuration echo -e "\033[34m\n* Uninstall oneapm-ci-agent\n\033[0m"
$sudo_cmd apt-get purge -y oneapm-ci-agent
fi $sudo_cmd apt-get install -y --force-yes cloudinsight-agent
ERROR_MESSAGE=""
else
printf "\033[31mYour OS or distribution are not supported by this install script.
Please follow the instructions on the Agent setup page.\033[0m\n"
exit;
fi # Set the configuration
if [ -e /etc/cloudinsight-agent/cloudinsight-agent.conf ]; then
printf "\033[34m\n* Keeping old cloudinsight-agent.conf configuration file\n\033[0m\n"
else
printf "\033[34m\n* Adding your license key to the Agent configuration: /etc/cloudinsight-agent/cloudinsight-agent.conf\n\033[0m\n"
$sudo_cmd sh -c "sed 's/license_key:.*/license_key: $license_key/' /etc/cloudinsight-agent/cloudinsight-agent.conf.example > /etc/cloudinsight-agent/cloudinsight-agent.conf"
fi restart_cmd="$sudo_cmd /etc/init.d/cloudinsight-agent restart"
if command -v invoke-rc.d >/dev/null 2>&1; then
restart_cmd="$sudo_cmd invoke-rc.d cloudinsight-agent restart"
fi if $no_start; then
printf "\033[34m
* CI_INSTALL_ONLY environment variable set: the newly installed version of the agent
will not start by itself. You will have to do it manually using the following
command: $restart_cmd \033[0m\n"
exit
fi printf "\033[34m* Starting the Agent...\n\033[0m\n"
eval $restart_cmd # Wait for metrics to be submitted by the forwarder
printf "\033[32m
Your Agent has started up for the first time. We're currently verifying that
data is being submitted.\033[0m Waiting for metrics..." c=0
while [ "$c" -lt "" ]; do
sleep 1
echo -n "."
c=$(($c+1))
done # Reuse the same counter
c=0 # The command to check the status of the forwarder might fail at first, this is expected
# so we remove the trap and we set +e
set +e
trap - ERR $cl_cmd http://127.0.0.1:10010/status?threshold=0 > /dev/null 2>&1
success=$?
while [ "$success" -gt "" ]; do
sleep 1
echo -n "."
$cl_cmd http://127.0.0.1:10010/status?threshold=0 > /dev/null 2>&1
success=$?
c=$(($c+1)) if [ "$c" -gt "" -o "$success" -eq "" ]; then
# After 15 tries, we give up, we restore the trap and set -e
# Also restore the trap on success
set -e
trap on_error ERR
fi
done # Metrics are submitted, echo some instructions and exit
printf "\033[32m Your Agent is running and functioning properly. It will continue to run in the
background and submit metrics to Cloudinsight. If you ever want to stop the Agent, run: sudo /etc/init.d/cloudinsight-agent stop And to run it again run: sudo /etc/init.d/cloudinsight-agent start \033[0m"

Cloudinsight Agent install script的更多相关文章

  1. webpacke install vue application 报错 Failed at the phantomjs-prebuilt@2.1.14 install script

    刚刚在网上下了个开源的项目: https://github.com/ing670/webappkiller 执行npm install 报错:npm ERR! Failed at the phanto ...

  2. Oracle 12c agent install for linux

    安装Agent代理 在EM11g时,agent安装是通过在被监制主机端下载agent代理并安装,在EM12c版本号上,能够在EM12c服务端.通过"推送"的方式把agent代理在远 ...

  3. centos6.7 mutlipath install script

    #!/bin/bash if [ `id -g` != 0 ] ;then echo -e "\033[31m Please use root user\033[0m" exit ...

  4. php7 install script

    ./configure --prefix=/home/admin/local/php7 --with-gd=/home/admin/local/libgd-2.1.1/ --with-jpeg-dir ...

  5. Oracle 12c agent install for windows

    在Oracle EM12c 中部署agent的方法分两种,一种是通过EM12c的控制台通过ssh直接把agent"推送"安装到被管理端.这样的方法在linux平台的OMS和被管理端 ...

  6. ! Failed at the chromedriver@2.35.0 install script.

    npm install 过程中报错 解决方法 运行 npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/d ...

  7. Centos7 PXE Server Install Script

    #安装前配置好centos和epel yum源 #网卡ip和localip一致 localip="192.168.88.200" eth_name='eth0' dnsmasq_i ...

  8. npm 安装vue 报错Failed at the chromedriver@2.46.0 install script 'node install.js'

    原因一般是下载源被封了,我们连接淘宝的下载源下载: npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/d ...

  9. npm 安装vue 报错Failed at the chromedriver@2.34.0 install script 'node install.js'

    提示版本不够,后来百度到,在你的vue项目包下执行: npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/ ...

随机推荐

  1. How to Call a synchronize function asynchronizly in C#

    How to call a function asynchronizly in C# # Page1- Delegate.begininvoke, endinvoke BeginInvoke and ...

  2. 前端开发规范之html编码规范

    原则1.规范 .保证您的代码规范,趋html5,远xhtml,保证结构表现行为相互分离.2.简洁.保证代码的最简化,避免多余的空格.空行,保持代码的语义化,尽量使用具有语义的元素,避免使用样式属性和行 ...

  3. .net mvc通过ucenter和 discuz的整合,nopcommerce ucenter 插件的方式实现

    discuz无疑是目前市面上最好的论坛之一,对于大多数公司来说,用discuz搭建一个论坛肯定是最节约成本的选择,然而我们的会员想要和discuz进行整合的话,只有两种荀泽,一种直接选用discuz的 ...

  4. SharePoint 2010 设置宽度1024px

    在模板页中找到 s4-workspace,设置class=”s4-nosetwidth“,然后再设置宽度为1024px:如果要居中,设置style=“margin:0 auto” 这样也会有一个问题: ...

  5. [Linq Expression]练习自己写绑定

    源代码:TypeMapper.zip 背景 项目中,我们会经常用到各种赋值语句,比如把模型的属性赋值给UI,把视图模型的属性拷贝给Entity.如果模型属性太多,赋值也会变成苦力活.所以,框架编程的思 ...

  6. 多线程 -- NSThread

    NSThread NSThread 一个NSThread对象就代表一条线程 创建线程的几种方式 alloc/init // 1.创建线程 NJThread *thread = [[NJThread a ...

  7. hadoop HA 之 QJM

    前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...

  8. 不会JS中的OOP,你也太菜了吧!(第二篇)

    一.你必须知道的 1> 原型及原型链在继承中起到了关键的作用.所以你一定要理解他们.2> 不会JS中的OOP,你也太菜了吧!(第一篇) 二.继承的6种方法 1> 原型链继承 原型链继 ...

  9. android开发支付宝接口开发流程(密钥篇)

    参考博客:http://blog.it985.com/12276.html 官方下载地址:http://download.alipay.com/public/api/base/WS_MOBILE_PA ...

  10. [noip2005提高]过河 dp

    由于L的范围到了109,用普通dp做肯定是不成了: 可以观察到M的数量很小,dp在转移的过程中有大量的无用转移: 可以想到压缩范围,问题是如何压缩,观察若S=9,T=10时,能到达的点,9,10,18 ...