1

这适用于 ubuntu 16.04,但不适用于 17.10

+ curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
^M  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0^M100 56093  100 56093    0     0  56093      0  0:00:01 --:--:--  0:00:01 98929
+ chmod +x ./awslogs-agent-setup.py
+ ./awslogs-agent-setup.py -n -c /etc/awslogs/awslogs.conf -r us-west-2

Step 1 of 5: Installing pip ...^[[0mlibyaml-dev does not exist in system ^[[0m^[[92mDONE^[[0m

Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... ^[[0mTraceback (most recent call last):
  File "./awslogs-agent-setup.py", line 1317, in <module>
    main()
  File "./awslogs-agent-setup.py", line 1313, in main
    setup.setup_artifacts()
  File "./awslogs-agent-setup.py", line 858, in setup_artifacts
    self.install_awslogs_cli()
  File "./awslogs-agent-setup.py", line 570, in install_awslogs_cli
    subprocess.call([AWSCLI_CMD, 'configure', 'set', 'plugins.cwlogs', 'cwlogs'], env=DEFAULT_ENV)
  File "/usr/lib/python2.7/subprocess.py", line 168, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 390, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1025, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

我注意到在此过程的早期,在 AWS 样板中它未能安装 libyaml-dev 但不确定这是否是唯一的问题。

4

2 回答 2

2

总能在我发布后立即找到答案...

这是我修改后的 CF 模板命令:

    050_install_awslogs:
      command: !Sub 
        "/bin/bash -x\n
        exec >>/var/log/cf_050_install_awslogs.log 2>&1 \n
        echo 050_install_awslogs...\n
        set -xe\n
        # Get the CloudWatch Logs agent\n
        mkdir /opt/awslogs\n
        cd /opt/awslogs\n
        # Needed for python3 in 17.10\n
        apt-get install -y libyaml-dev python-dev \n
        pip3 install awscli-cwlogs\n
        # avoid it complaining about not having /var/awslogs/bin/aws binary\n
        if [ ! -d /var/awslogs/bin ] ; then\n
          mkdir -p /var/awslogs/bin\n
          ln -s /usr/local/bin/aws /var/awslogs/bin/aws\n
        fi\n
        curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O\n
        chmod +x ./awslogs-agent-setup.py\n
        # Hack for python 3.6 & old awslogs-agent-setup.py\n
        sed -i 's/3,6/3,7/' awslogs-agent-setup.py\n
        ./awslogs-agent-setup.py -n -c /etc/awslogs/awslogs.conf -r ${AWS::Region}\n
        echo 050_install_awslogs end\n
        "

不完全确定是否需要创建目录,但我希望这是一个临时案例,很快就会得到解决,因为仍然需要捏造 python 3.6 兼容性检查。

它也可以使用 python 2.7 安装,但此时感觉就像倒退了,因为我对 17.10 的基本原理是 python 3.6。

将 yaml 包和目录创建想法归功于https://forums.aws.amazon.com/thread.jspa?threadID=265977,但我更愿意避免使用 easy_install。

于 2018-02-15T22:51:32.230 回答
0

我在 Ubuntu 18.04 上遇到了类似的问题。

AWS的独立安装说明适用于我的案例。

To download and run it standalone, use the following commands and follow the prompts:

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/AgentDependencies.tar.gz -O
tar xvf AgentDependencies.tar.gz -C /tmp/
sudo python ./awslogs-agent-setup.py --region us-east-1 --dependency-path /tmp/AgentDependencies
于 2019-09-27T09:22:09.897 回答