Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze Následující verze Obě strany příští revize | ||
cs:navody:object_storage:cesnet_s3:start [09.10.2019 12:32] Lukáš Strnad |
cs:navody:object_storage:cesnet_s3:start [27.05.2020 15:17] Lukáš Strnad [Linux klient AWS CLI] |
||
---|---|---|---|
Řádek 2: | Řádek 2: | ||
+ | ==== 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. | ||
+ | |||
+ | <note important>Pokud provozujete CENTOS 7, pravděpodobně budete řešit problém s verzí pythonu, která je ve výchozím stavu 2.7.5. V takovém případě doporučujeme buď upgrade na CENTOS 8, kde je již implementovan python 3+, případně použít SCL (Software Collection environment).</note> | ||
+ | |||
+ | ===Instalace AWS CLI a jeho konfigurace=== | ||
+ | Nejprve nainstalujeme AWS CLI klienta pomoci pip, kde **<nowiki>--upgrade</nowiki>** provede upgrade všech již nainstalovaných součástí; **<nowiki>--user</nowiki>** použije podadresář aktuálního uživatele, pod kterým spouštíte pip, aby nedošlo k modifikaci systémových knihoven. | ||
+ | |||
+ | <code>$ pip3.6 install awscli --upgrade --user</code> | ||
+ | |||
+ | Dále provedeme upgrade na nejnovější verzi AWS CLI | ||
+ | <code>$ 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</code> | ||
+ | |||
+ | <code>$ pip3.6 install --upgrade --user awscli</code> | ||
+ | |||
+ | <note>Pokud potřebujete nainstalovat AWS CLI ve virtuálním prostředí můžete využít [[https://docs.aws.amazon.com/cli/latest/userguide/install-virtualenv.html|tento návod]].</note> | ||
+ | |||
+ | |||
+ | <note tip>Pro konfiguraci AWS CLI doporučujeme použít volbu **<nowiki>--profile</nowiki>**, která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu. Můžete však použít rovněž výchozí nastavení (bez volby **<nowiki>--profile</nowiki>**). Všechny příkazy pak budou shodné, jen nebudou obsahovat volbu **<nowiki>--profile</nowiki>** a použije se výchozí nastavení.</note> | ||
+ | |||
+ | Dále provedeme konfiguraci AWS CLI. Následující přiklady využívají konfiguraci s použitím volby **<nowiki>--profile</nowiki>**. | ||
+ | |||
+ | <code>$ 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</code> | ||
+ | |||
+ | //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) \\ | ||
+ | |||
+ | <note important>Pro správnou funkčnost je nezbytné překonfigurovat **endpoint-url** na servery CESNETu. K tomu budeme potřebovat nainstalovat nástroj [[https://github.com/wbingli/awscli-plugin-endpoint|awscli-plugin-endpoint]], viz návod níže.</note> | ||
+ | |||
+ | == Instalace awscli-plugin-endpointu == | ||
+ | Nejdříve provedeme instalaci pomocí pip. | ||
+ | <code>pip3.6 install awscli-plugin-endpoint --user</code> | ||
+ | |||
+ | Případně můžete nainstalovat nejnovější verzi z Github repozitáře | ||
+ | <code>pip3.6 install git+https://github.com/wbingli/awscli-plugin-endpoint.git --user</code> | ||
+ | |||
+ | Pro použití nainstalovaného pluginu jej musíme nejdříve zapnout. | ||
+ | <code>aws configure set plugins.endpoint awscli_plugin_endpoint</code> | ||
+ | |||
+ | Následně pomocí pluginu přidáme adresu CESNET s3 endpointu. | ||
+ | <code>aws configure --profile pepa_servis set s3.endpoint_url https://s3.cl1.du.cesnet.cz</code> | ||
+ | |||
+ | Výše uvedené příkazy by měly provést změny ve vašem configu, viz níže. | ||
+ | |||
+ | <code>[user@distro ~]$ cat .aws/config | ||
+ | |||
+ | [profile pepa_servis] | ||
+ | output = text | ||
+ | s3 = | ||
+ | endpoint_url = https://s3.cl1.du.cesnet.cz | ||
+ | [plugins] | ||
+ | endpoint = awscli_plugin_endpoint | ||
+ | </code> | ||
+ | |||
+ | Nyní můžeme ověřit funkčnost připojení a zkusit si například vylistovat existující buckety. | ||
+ | <code> | ||
+ | $ 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 | ||
+ | </code> | ||
+ | |||
+ | ==Ovládání AWS CLI - high-level (s3)== | ||
+ | **Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help** | ||
+ | |||
+ | <code>$ aws s3 help</code> | ||
+ | |||
+ | |||
+ | <hidden **Práce s buckety**> | ||
+ | <note>Jméno bucketu musí být unikátní a mělo by obsahovat pouze malá a velká písmena, čísla a pomlčky a tečky. Název bucketu musí začínat pouze písmenem nebo číslem a nesmí obsahovat tečky vedle pomlček nebo více teček.</note> | ||
+ | |||
+ | **Výroba bucketu** \\ | ||
+ | <code>$ aws s3 --profile pepa_servis mb s3://test1</code> | ||
+ | **Vylistování bucketů** \\ | ||
+ | <code>$ aws s3 --profile pepa_servis ls | ||
+ | 2019-09-18 13:30:17 test1</code> | ||
+ | **Odstranění bucketu** \\ | ||
+ | <code>aws s3 --profile pepa_servis rb s3://test1</code> | ||
+ | </hidden> \\ | ||
+ | |||
+ | |||
+ | <hidden **Práce se soubory a adresáři**> | ||
+ | **Soubory** \\ | ||
+ | Upload souboru \\ | ||
+ | <code>$ aws s3 --profile pepa_servis cp file_1.tar s3://test1 | ||
+ | upload: ./file_1.tar to s3://test1/file_1.tar</code> | ||
+ | |||
+ | Download souboru \\ | ||
+ | <code>$ aws s3 --profile pepa_servis cp s3://test1/file_1.tar downloads/ | ||
+ | download: s3://test1/file1.tar to downloads/file1.tar | ||
+ | </code> | ||
+ | |||
+ | Smazání souboru \\ | ||
+ | <code>$ aws s3 --profile pepa_servis rm s3://test1/file_1.tar | ||
+ | delete: s3://test1/file1.tar | ||
+ | </code> | ||
+ | |||
+ | **Adresáře** \\ | ||
+ | Upload adresáře \\ | ||
+ | <note>Pokud uvedete na konci zdrojového adresáře lomítko "/" příkaz se vztahuje pouze k obsahu zdrojového adresáře. Bez lomítka se příkaz vztahuje i na adresář samotný.</note> | ||
+ | <code>$ aws s3 --profile pepa_servis cp my_dir s3://test1/test_dir1 --recursive</code> | ||
+ | |||
+ | Download adresáře \\ | ||
+ | <code>$ aws s3 --profile pepa_servis cp s3://test1/test_dir1 downloads/ --recursive</code> | ||
+ | |||
+ | Smazání adresáře \\ | ||
+ | <code>$ aws s3 --profile pepa_servis rm s3://test1/test_dir1 --recursive</code> | ||
+ | |||
+ | **Synchronizace adresářů** \\ | ||
+ | Synchronizace adresáře na úložiště pomocí s3 \\ | ||
+ | <code>$ aws s3 --profile pepa_servis sync downloads s3://test1/my_sync/</code> | ||
+ | |||
+ | Synchronizace adresáře z úložiště pomocí s3 na lokální PC \\ | ||
+ | <code>$ aws s3 --profile pepa_servis sync s3://test1/my_sync/ ./restored/</code> | ||
+ | |||
+ | </hidden> \\ | ||
+ | |||
+ | /* | ||
+ | [[https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html|Amazon high-level S3]] | ||
+ | */ | ||
+ | |||
+ | |||
+ | ==Ovládání AWS CLI - api-level (s3api)== | ||
+ | <code>$ aws s3api help</code> | ||
+ | |||
+ | [[https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-apicommands.html|Amazon api-level S3]] | ||
+ | |||
+ | /* | ||
+ | <code></code> | ||
+ | |||
+ | */ | ||
+ | |||
+ | <note> V případě rozhodnutí se používání S3 verzování objektů je [[https://docs.aws.amazon.com/cli/latest/userguide/install-virtualenv.html|návod zde.]].</note> | ||
==== Linux klient s3cmd ==== | ==== Linux klient s3cmd ==== | ||
Řádek 140: | Řádek 281: | ||
</hidden> \\ | </hidden> \\ | ||
- | |||
- | ==== 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. | ||
- | |||
- | <note important>Pokud provozujete CENTOS 7, pravděpodobně budete řešit problém s verzí pythonu, která je ve výchozím stavu 2.7.5. V takovém případě doporučujeme buď upgrade na CENTOS 8, kde je již implementovan python 3+, případně použít SCL (Software Collection environment).</note> | ||
- | |||
- | ===Instalace AWS CLI a jeho konfigurace=== | ||
- | Nejprve nainstalujeme AWS CLI klienta pomoci pip, kde **<nowiki>--upgrade</nowiki>** provede upgrade všech již nainstalovaných součástí; **<nowiki>--user</nowiki>** použije podadresář aktuálního uživatele, pod kterým spouštíte pip, aby nedošlo k modifikaci systémových knihoven. | ||
- | |||
- | <code>$ pip3.6 install awscli --upgrade --user</code> | ||
- | |||
- | Dále provedeme upgrade na nejnovější verzi AWS CLI | ||
- | <code>$ 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</code> | ||
- | |||
- | <code>$ pip3.6 install --upgrade --user awscli</code> | ||
- | |||
- | <note>Pokud potřebujete nainstalovat AWS CLI ve virtuálním prostředí můžete využít [[https://docs.aws.amazon.com/cli/latest/userguide/install-virtualenv.html|tento návod]].</note> | ||
- | |||
- | |||
- | Dále musíme provést konfiguraci AWS CLI. Pro konfiguraci doporučujeme používat volbu **<nowiki>--profile</nowiki>**, která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu. | ||
- | |||
- | <code>$ 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</code> | ||
- | |||
- | //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) \\ | ||
- | |||
- | <note important>Pro správnou funkčnost je nezbytné překonfigurovat **endpoint-url** na servery CESNETu. K tomu budeme potřebovat nainstalovat nástroj [[https://github.com/wbingli/awscli-plugin-endpoint|awscli-plugin-endpoint]], viz návod níže.</note> | ||
- | |||
- | == Instalace awscli-plugin-endpointu == | ||
- | Nejdříve provedeme instalaci pomocí pip. | ||
- | <code>pip3.6 install awscli-plugin-endpoint --user</code> | ||
- | |||
- | Případně můžete nainstalovat nejnovější verzi z Github repozitáře | ||
- | <code>pip3.6 install git+https://github.com/wbingli/awscli-plugin-endpoint.git --user</code> | ||
- | |||
- | Pro použití nainstalovaného pluginu jej musíme nejdříve zapnout. | ||
- | <code>aws configure set plugins.endpoint awscli_plugin_endpoint</code> | ||
- | |||
- | Následně pomocí pluginu přidáme adresu CESNET s3 endpointu. | ||
- | <code>aws configure --profile pepa_servis set s3.endpoint_url https://s3.cl1.du.cesnet.cz</code> | ||
- | |||
- | Výše uvedené příkazy by měly provést změny ve vašem configu, viz níže. | ||
- | |||
- | <code>[user@distro ~]$ cat .aws/config | ||
- | |||
- | [profile pepa_servis] | ||
- | output = text | ||
- | s3 = | ||
- | endpoint_url = https://s3.cl1.du.cesnet.cz | ||
- | [plugins] | ||
- | endpoint = awscli_plugin_endpoint | ||
- | </code> | ||
- | |||
- | Nyní můžeme ověřit funkčnost připojení a zkusit si například vylistovat existující buckety. | ||
- | <code> | ||
- | $ 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 | ||
- | </code> | ||
- | |||
- | ==Ovládání AWS CLI - high-level (s3)== | ||
- | **Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help** | ||
- | |||
- | <code>$ aws s3 help</code> | ||
- | |||
- | |||
- | <hidden **Práce s buckety**> | ||
- | <note>Jméno bucketu musí být unikátní a mělo by obsahovat pouze malá a velká písmena, čísla a pomlčky a tečky. Název bucketu musí začínat pouze písmenem nebo číslem a nesmí obsahovat tečky vedle pomlček nebo více teček.</note> | ||
- | |||
- | **Výroba bucketu** \\ | ||
- | <code>$ aws s3 --profile pepa_servis mb s3://test1</code> | ||
- | **Vylistování bucketů** \\ | ||
- | <code>$ aws s3 --profile pepa_servis ls | ||
- | 2019-09-18 13:30:17 test1</code> | ||
- | **Odstranění bucketu** \\ | ||
- | <code>aws s3 --profile pepa_servis rb s3://test1</code> | ||
- | </hidden> \\ | ||
- | |||
- | |||
- | <hidden **Práce se soubory a adresáři**> | ||
- | **Soubory** \\ | ||
- | Upload souboru \\ | ||
- | <code>$ aws s3 --profile pepa_servis cp file_1.tar s3://test1 | ||
- | upload: ./file_1.tar to s3://test1/file_1.tar</code> | ||
- | |||
- | Download souboru \\ | ||
- | <code>$ aws s3 --profile pepa_servis cp s3://test1/file_1.tar downloads/ | ||
- | download: s3://test1/file1.tar to downloads/file1.tar | ||
- | </code> | ||
- | |||
- | Smazání souboru \\ | ||
- | <code>$ aws s3 --profile pepa_servis rm s3://test1/file_1.tar | ||
- | delete: s3://test1/file1.tar | ||
- | </code> | ||
- | |||
- | **Adresáře** \\ | ||
- | Upload adresáře \\ | ||
- | <note>Pokud uvedete na konci zdrojového adresáře lomítko "/" příkaz se vztahuje pouze k obsahu zdrojového adresáře. Bez lomítka se příkaz vztahuje i na adresář samotný.</note> | ||
- | <code>$ aws s3 --profile pepa_servis cp my_dir s3://test1/test_dir1 --recursive</code> | ||
- | |||
- | Download adresáře \\ | ||
- | <code>$ aws s3 --profile pepa_servis cp s3://test1/test_dir1 downloads/ --recursive</code> | ||
- | |||
- | Smazání adresáře \\ | ||
- | <code>$ aws s3 --profile pepa_servis rm s3://test1/test_dir1 --recursive</code> | ||
- | |||
- | **Synchronizace adresářů** \\ | ||
- | Synchronizace adresáře na úložiště pomocí s3 \\ | ||
- | <code>$ aws s3 --profile pepa_servis sync downloads s3://test1/my_sync/</code> | ||
- | |||
- | Synchronizace adresáře z úložiště pomocí s3 na lokální PC \\ | ||
- | <code>$ aws s3 --profile pepa_servis sync s3://test1/my_sync/ ./restored/</code> | ||
- | |||
- | </hidden> \\ | ||
- | |||
- | /* | ||
- | [[https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html|Amazon high-level S3]] | ||
- | */ | ||
- | |||
- | |||
- | ==Ovládání AWS CLI - api-level (s3api)== | ||
- | <code>$ aws s3api help</code> | ||
- | |||
- | [[https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-apicommands.html|Amazon api-level S3]] | ||
- | |||
- | /* | ||
- | <code></code> | ||
- | |||
- | <code></code> | ||
- | |||
- | <code></code> | ||
- | |||
- | <code></code> | ||
- | |||
- | <code></code> | ||
- | */ | ||