Я экспериментирую с созданием экземпляра EC2 для размещения сервера Perforce. Мой экземпляр конфигурируется со следующими данными пользователя:Пользовательские данные AWS EC2 неправильно декодируются
#!/bin/bash
# Add a newline to the ec2-user prompt string
echo PS1=\"\\n\$PS1\" >> /home/ec2-user/.bashrc
# Update all packages
yum update –y
# Install Perforce packages
# The RHEL/7 part of the baseurl should be replaced with
# the latest RHEL version that both Amazon and Perforce support
rpm –import https://package.perforce.com/perforce.pubkey
cd /etc/yum.repos.d/
echo [perforce] > perforce.repo
echo name=Perforce >> perforce.repo
echo baseurl=http://package.perforce.com/yum/rhel/7/x86_64 >> perforce.repo
echo enabled=1 >> perforce.repo
echo gpgcheck=1 >> perforce.repo
yum install –y helix-p4d
# Make directories for the server, owned by new “perforce” user
cd /opt/perforce/servers/
mkdir danware
cd danware
mkdir danware-db danware-chkpts journal
chown –R perforce:perforce danware
Я проверил каждый из указанных выше команд, и знать, что они работают, когда выполняются вручную в указанном порядке. Однако некоторые аспекты системы кодирования/декодирования base64 в Amazon, похоже, мешают. Когда после запуска (и передачи всех системных проверок) я перехожу к «Действиям> Настройки экземпляра> Просмотр/изменение данных пользователя» из консоли EC2, я вижу следующие пользовательские данные. Обратите внимание, что почти каждый дефис «-» заменен каким-то странным символом «a».
Однако, я не уверен, что это проблема, потому что файл журнала в /var/log/cloud-init-output.log дает мне следующий вывод (я заменил некоторые повторяющиеся текст с [...], чтобы сэкономить место). Обратите внимание на строку, которая говорит Failed running /var/lib/cloud/instance/scripts/part-001
. Я проверил, что на этом файле part-001 на самом деле есть имеют правильно отображаемые символы дефиса.
[...]
Cloud-init v. 0.7.6 running 'modules:final' at Fri, 09 Sep 2016 06:23:39 +0000. Up 86.66 seconds.
Loaded plugins: priorities, update-motd, upgrade-helper
No Match for argument: –y
No packages marked for update
RPM version 4.11.2
Copyright (C) 1998-2002 - Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL
Usage: rpm [-aKfgpqVcdLilsiv?] [-a|--all] [-f|--file] [-g|--group] [...]
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> [...]
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
helix-p4d x86_64 2016.1-1429894 perforce 24 k
Installing for dependencies:
helix-cli x86_64 2016.1-1429894 perforce 8.8 k
helix-cli-base x86_64 2016.1-1429894 perforce 1.4 M
helix-p4d-base x86_64 2016.1-1429894 perforce 3.1 k
helix-p4d-base-16.1 x86_64 2016.1-1429894 perforce 2.4 M
helix-p4dctl x86_64 2016.1-1429894 perforce 1.2 M
Transaction Summary
================================================================================
Install 1 Package (+5 Dependent packages)
Total download size: 5.0 M
Installed size: 13 M
Is this ok [y/d/N]: Exiting on user command
Your transaction was saved, rerun it with:
yum load-transaction /tmp/yum_save_tx.2016-09-09.06-23.dRP_r2.yumtx
/var/lib/cloud/instance/scripts/part-001: line 22: cd: /opt/perforce/servers/: No such file or directory
chown: invalid user: ‘–R’
Sep 09 06:23:41 cloud-init[2517]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1]
Sep 09 06:23:41 cloud-init[2517]: cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
Sep 09 06:23:41 cloud-init[2517]: util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/dist-packages/cloudinit/config/cc_scripts_user.pyc'>) failed
Cloud-init v. 0.7.6 finished at Fri, 09 Sep 2016 06:23:41 +0000. Datasource DataSourceEc2. Up 88.53 seconds
Даже больше раздражает, я предположил, что ранняя No Match for argument: –y
строка из файла журнала имел в виду yum update -y
линии моих данных пользователя. Разумеется, просто запустив пример сценария пользовательских данных на странице EC2 documentation, который также использует yum update -y
, дает мне такую же ошибку/предупреждение! Сценарий собственного примера Amazon не работает !? Так может ли кто-нибудь ответить, почему A) AWS неправильно отображает код пользовательских данных, а B) почему мои данные пользователя дают ошибки, показанные выше? Помощь очень ценится!
Это может быть характер проблема кодирования. Попробуйте установить пользовательские данные из aws-cli – hjpotter92
@ hjpotter92. Действительно ли это была проблема кодирования символов, если файл/var/lib/cloud/instance/scripts/part-001 точно соответствует пользовательским данным, введенным через консоль AWS ? – Rabadash8820