首页 > 代码库 > Cloudinsight Agent install script
Cloudinsight Agent install script
#!/bin/bash# Cloudinsight Agent install script.set -elogfile="ci-agent-install.log"gist_request=/tmp/agent-gist-request.tmpgist_response=/tmp/agent-gist-response.tmpif [ $(command -v curl) ]; then cl_cmd="curl -f"else cl_cmd="wget --quiet"fi# Set up a named pipe for loggingnpipe=/tmp/$$.tmpmknod $npipe p# Log all output to a log for error checkingtee <$npipe $logfile &exec 1>&-exec 1>$npipe 2>&1trap "rm -f $npipe" EXITfunction on_error() { printf "\033[31m$ERROR_MESSAGEIt 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.comand we‘ll try our best to help you solve your problem.\n\033[0m\n"}trap on_error ERRif [ -n "$CI_LICENSE_KEY" ]; then license_key=$CI_LICENSE_KEYfiif [ -n "$CI_INSTALL_ONLY" ]; then no_start=trueelse no_start=falsefiif [ ! $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 commandKNOWN_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 detectionif [ $(echo "$UID") = "0" ]; then sudo_cmd=‘‘else sudo_cmd=‘sudo‘fifunction 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 sourcesif [ $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-agentelif [ $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="ERRORFailed 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="0" ERROR_MESSAGE="ERRORFailed to install the Cloudinsight package, sometimes it may bedue to another APT source failing. See the logs above todetermine 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 configurationif [ -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"firestart_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"fiif $no_start; then printf "\033[34m* CI_INSTALL_ONLY environment variable set: the newly installed version of the agentwill not start by itself. You will have to do it manually using the followingcommand: $restart_cmd\033[0m\n" exitfiprintf "\033[34m* Starting the Agent...\n\033[0m\n"eval $restart_cmd# Wait for metrics to be submitted by the forwarderprintf "\033[32mYour Agent has started up for the first time. We‘re currently verifying thatdata is being submitted.\033[0mWaiting for metrics..."c=0while [ "$c" -lt "30" ]; do sleep 1 echo -n "." c=$(($c+1))done# Reuse the same counterc=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 +eset +etrap - ERR$cl_cmd http://127.0.0.1:10010/status?threshold=0 > /dev/null 2>&1success=$?while [ "$success" -gt "0" ]; 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 "15" -o "$success" -eq "0" ]; 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 fidone# Metrics are submitted, echo some instructions and exitprintf "\033[32mYour Agent is running and functioning properly. It will continue to run in thebackground and submit metrics to Cloudinsight.If you ever want to stop the Agent, run: sudo /etc/init.d/cloudinsight-agent stopAnd to run it again run: sudo /etc/init.d/cloudinsight-agent start\033[0m"
Cloudinsight Agent install script
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。