Obsah
Toto je starší verze dokumentu!
Připojení a konfigurace CESNET s3
Linux klient s3cmd
S3cmd je bezplatný nástroj příkazového řádku a klient pro nahrávání, načítání a správu dat v s3 cloudových úložišťích. S3cmd je psán v Pythonu. Je to open source projekt dostupný pod GNU Public License v2 (GPLv2) a je zdarma pro komerční i soukromé použití.
Instalace s3cmd
s3cmd je k dispozici ve výchozích repozitářích rpm pro systémy CentOS, RHEL a Ubuntu. Nainstalujte jej pomocí jednoduchého spuštění následujících příkazů ve vašem systému.
** Na CentOS/RHEL:**
$ sudo yum install s3cmd
** Na Ubuntu/Debian:**
$ sudo apt install s3cmd
Konfigurace s3cmd
Pro konfiguraci s3cmd potřebujete Access Key a Secret Key, který jste si vygenerovali. Po získání klíčů je vložte do konfiguračního souboru /home/user/.s3cfg.
[default] host_base = https://s3.cl1.du.cesnet.cz use_https = True bucket_location = cze access_key = xxxxxxxxxxxxxxxxxxxxxx secret_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx gpg_command = /usr/bin/gpg gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_passphrase = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Alternativně lze konfigurační soubor získat použitím interaktivního průvodce:
Použití s3cmd příkazů
s3 příkazy podporují běžné operace s buckety, například vytváření, listování a mazání.
Linux klient AWS CLI
Klient AWS CLI je standardní nástroj podporující práci přes s3 rozhraní. Klient je napsaný v pythonu, je tedy nezbytné mít nainstalovaný python alespoň ve verzi 3.3+. Dle oficiální dokumentace je sice podporován i python 2.6.5+, nicméně můžete narazit na problémy s kompatibilitou s ohledem na námi provozovanou verzi Cephu.
Instalace AWS CLI a jeho konfigurace
Nejprve nainstalujeme AWS CLI klienta pomoci pip, kde --upgrade provede upgrade všech již nainstalovaných součástí; --user použije podadresář aktuálního uživatele, pod kterým spouštíte pip, aby nedošlo k modifikaci systémových knihoven.
$ pip3.6 install awscli --upgrade --user
Dále provedeme upgrade na nejnovější verzi AWS CLI
$ aws --version aws-cli/1.16.239 Python/3.6.3 Linux/3.10.0-957.27.2.el7.x86_64 botocore/1.12.229
$ pip3.6 install --upgrade --user awscli
Dále musíme provést konfiguraci AWS CLI. Pro konfiguraci doporučujeme používat volbu --profile, která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu.
$ aws configure --profile pepa_servis AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE AWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY Default region name [None]: Default output format [None]: text
AWS Access Key ID - access key, který jste si vygenerovali
Secret Access Key - secret key, který jste si vygenerovali
Default region name - prefix pro servery, na které budete zasílat vaše požadavky, Zde ponecháme nevyplněné!
Default output format - výstupní formát dat (json, text, table)
Instalace awscli-plugin-endpointu
Nejdříve provedeme instalaci pomocí pip.
pip3.6 install awscli-plugin-endpoint --user
Případně můžete nainstalovat nejnovější verzi z Github repozitáře
pip3.6 install git+https://github.com/wbingli/awscli-plugin-endpoint.git --user
Pro použití nainstalovaného pluginu jej musíme nejdříve zapnout.
aws configure set plugins.endpoint awscli_plugin_endpoint
Následně pomocí pluginu přidáme adresu CESNET s3 endpointu.
aws configure --profile pepa_servis set s3.endpoint_url https://s3.cl1.du.cesnet.cz
Výše uvedené příkazy by měly provést změny ve vašem configu, viz níže.
[user@distro ~]$ cat .aws/config
[profile pepa_servis]
output = text
s3 =
endpoint_url = https://s3.cl1.du.cesnet.cz
[plugins]
endpoint = awscli_plugin_endpoint
Nyní můžeme ověřit funkčnost připojení a zkusit si například vylistovat existující buckety.
$ aws s3 --profile pepa_servis ls 2019-09-11 17:06:53 test-win 2019-09-11 14:45:45 large-files 2019-09-11 14:48:21 small-files
Ovládání AWS CLI - high-level (s3)
Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help
$ aws s3 help
Ovládání AWS CLI - api-level (s3api)
$ aws s3api help