Ich experimentiere mit dem Erstellen einer EC2-Instanz zum Hosten eines Perforce-Servers. Meine Instanz wird mit den folgenden Benutzerdaten konfiguriert:AWS EC2-Benutzerdaten werden nicht korrekt dekodiert
#!/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
Ich habe jede der oben genannten Befehle getestet, und weiß, dass sie funktionieren, wenn manuell in dieser Reihenfolge ausgeführt. Ein Aspekt des Amazon Base64 Enkodierungs-/Dekodiersystems scheint jedoch in die Quere zu kommen. Wenn ich nach dem Start von "Actions> Instance Settings> View/Change User Data" von der EC2 Console gehe (und alle Systemchecks übergebe), sehe ich die folgenden Benutzerdaten. Beachten Sie, dass fast jeder Bindestrich "-" durch ein seltsames "a" -Zeichen ersetzt wurde.
Aber ich bin nicht sicher, dass dies das Problem ist, da die Protokolldatei bei /var/log/cloud-init-output.log mir die folgenden Ausgabe gibt (I ersetzt einig mir wiederholenden Text mit [...] um Platz zu sparen). Beachten Sie die Zeile Failed running /var/lib/cloud/instance/scripts/part-001
Ich habe überprüft, dass diese Teil-001-Datei tatsächlich die korrekt angezeigten Bindestrich-Zeichen hat.
[...]
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
Noch ärgerlicher, ging ich davon aus, dass die frühe No Match for argument: –y
Linie aus der Protokolldatei auf die yum update -y
Linie von meinen Benutzerdaten bezog. Sicher genug, nur das Beispiel Benutzerdaten Skript von der EC2 documentation Seite, die auch yum update -y
verwendet, läuft mir diesen gleichen Fehler/Warnung! Amazons eigenes Beispielskript funktioniert nicht !? Kann also jemand antworten, warum A) AWS den Benutzerdatencode nicht korrekt anzeigt und B) warum meine Benutzerdaten die oben gezeigten Fehler ergeben? Die Hilfe wird sehr geschätzt!
Es könnte Zeichencodierung Problem sein. Versuchen Sie, die Benutzerdaten unter aws-cli – hjpotter92
@ hjpotter92 einzustellen. Wäre es wirklich ein Zeichencodierungsproblem, wenn die Datei/var/lib/cloud/instance/scripts/part-001 genau mit den Benutzerdaten übereinstimmt, die ich über die AWS Console eingegeben habe ? – Rabadash8820