GSP002

Ringkasan
Cloud Shell menyediakan akses command line ke resource komputasi yang dihosting di Google Cloud. Cloud Shell adalah virtual machine berbasis Debian dengan direktori beranda persisten berukuran 5 GB yang memudahkan Anda mengelola project dan resource Google Cloud. Alat command line gcloud
dan aplikasi utilitas lainnya yang Anda perlukan sudah terinstal di Cloud Shell sehingga dapat langsung digunakan untuk bekerja.
Dalam lab praktik ini, Anda akan mempelajari cara untuk terhubung ke resource komputasi yang dihosting di Google Cloud melalui Cloud Shell dengan alat gcloud
.
Sebaiknya ketik sendiri perintah dalam lab ini agar Anda dapat lebih memahami konsep intinya. Banyak lab akan menyertakan blok kode yang berisi perintah yang diperlukan. Anda dapat dengan mudah menyalin dan menempel perintah dari blok kode ke tempat yang sesuai selama lab berlangsung.
Yang akan Anda lakukan
- Berlatih menggunakan perintah
gcloud
.
- Terhubung ke layanan komputasi yang dihosting di Google Cloud.
Prasyarat
- Pemahaman tentang editor teks Linux standar, seperti
vim
, emacs
, atau nano
.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Setelah Cloud Shell diaktifkan, Anda dapat menggunakan command line untuk memanggil alat gcloud
Cloud SDK atau alat lain yang tersedia di instance virtual machine. Di lab ini, selanjutnya Anda akan menggunakan direktori $HOME
. Direktori ini digunakan dalam penyimpanan persistent disk untuk menyimpan file di seluruh project dan di antara sesi Cloud Shell. Direktori $HOME
Anda bersifat pribadi dan tidak dapat diakses oleh pengguna lain.
Tugas 1. Mengonfigurasi lingkungan Anda
Di bagian ini, Anda akan mempelajari aspek lingkungan pengembangan yang dapat Anda sesuaikan.
Memahami region dan zona
Resource Google Compute Engine tertentu tersedia berdasarkan region atau zona. Region adalah lokasi geografis spesifik tempat Anda dapat menjalankan resource. Setiap region memiliki satu atau beberapa zona. Misalnya, region us-central1
menunjukkan suatu region di Amerika Serikat Bagian Tengah yang memiliki zona us-central1-a
, us-central1-b
, us-central1-c
, dan us-central1-f
. Tabel berikut ini menunjukkan zona di regionnya masing-masing:
Amerika Serikat Bagian Barat |
Amerika Serikat Bagian Tengah |
Amerika Serikat Bagian Timur |
Eropa Barat |
Asia Timur |
us-west1-a |
us-central1-a |
us-east1-b |
europe-west1-b |
asia-east1-a |
us-west1-b |
us-central1-b |
us-east1-c |
europe-west1c |
asia-east1-b |
- |
us-central1-c |
us-east1-d |
europe-west1-d |
asia-east1-c |
- |
us-central1-f |
- |
- |
- |
Resource yang tersedia di suatu zona disebut sebagai resource zona.
Instance dan persistent disk virtual machine tersedia berdasarkan zona.
Jika Anda ingin memasang persistent disk ke instance virtual machine, kedua resource harus berada dalam zona yang sama.
Demikian pula, jika Anda ingin menetapkan alamat IP statis ke suatu instance, instance tersebut harus berada di region yang sama dengan alamat IP statis.
Catatan:
Pelajari region dan zona lebih lanjut, serta lihat daftar lengkapnya di dokumentasi Region dan Zona Google Cloud Compute Engine.
-
Tetapkan region ke
gcloud config set compute/region {{{project_0.default_region | REGION}}}
-
Untuk melihat setelan region project, jalankan perintah berikut:
gcloud config get-value compute/region
-
Tetapkan zona ke :
gcloud config set compute/zone {{{project_0.default_zone | ZONE}}}
-
Untuk melihat setelan zona project, jalankan perintah berikut:
gcloud config get-value compute/zone
Menemukan informasi project
-
Salin project ID Anda ke papan klip atau editor teks. Project ID tercantum di 2 tempat:
- Pada Konsol Cloud, di Dashboard, di bagian Project info. (Klik Navigation menu (
), lalu klik Cloud overview > Dashboard.)
- Di tab lab dekat nama pengguna dan sandi Anda.
-
Di Cloud Shell, jalankan perintah gcloud
berikut, guna melihat project ID untuk project Anda:
gcloud config get-value project
-
Di Cloud Shell, jalankan perintah gcloud
berikut untuk melihat detail tentang project:
gcloud compute project-info describe --project $(gcloud config get-value project)
Temukan nilai metadata zona dan region di output.
Di lab ini, selanjutnya Anda akan menggunakan zona (google-compute-default-zone
) dari output.
Catatan:
Jika kunci serta nilai google-compute-default-region
dan google-compute-default-zone
tidak muncul di output, artinya tidak ada zona atau region default yang ditetapkan.
Outputnya mencakup informasi berguna lainnya mengenai project Anda. Luangkan waktu untuk menjelajahi ini secara lebih detail.
Menyetel variabel lingkungan
Variabel lingkungan menentukan lingkungan dan menghemat waktu Anda saat menulis skrip yang berisi API atau file yang dapat dieksekusi.
-
Buat variabel lingkungan untuk menyimpan Project ID Anda:
export PROJECT_ID=$(gcloud config get-value project)
-
Buat variabel lingkungan untuk menyimpan Zona Anda:
export ZONE=$(gcloud config get-value compute/zone)
-
Untuk memverifikasi bahwa variabel Anda sudah ditetapkan dengan benar, jalankan perintah berikut:
echo -e "PROJECT ID: $PROJECT_ID\nZONE: $ZONE"
Jika variabel ditetapkan dengan benar, perintah echo akan menampilkan Project ID dan Zona Anda.
Membuat virtual machine dengan alat gcloud
Gunakan alat gcloud
untuk membuat instance virtual machine (VM) baru.
-
Untuk membuat VM Anda, jalankan perintah berikut:
gcloud compute instances create gcelab2 --machine-type e2-medium --zone $ZONE
Output:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-04-326fae68bc3d/zones/us-east1-c/instances/gcelab2].
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
gcelab2 {{{project_0.default_zone | ZONE}}} e2-medium 10.128.0.2 34.67.152.90 RUNNING
Detail perintah
- Dengan perintah
gcloud compute
, Anda dapat mengelola resource Compute Engine dalam format yang lebih sederhana daripada Compute Engine API.
- Perintah
instances create
akan membuat instance baru.
-
gcelab2
adalah nama VM.
- Flag
--machine-type
menentukan jenis mesin sebagai e2-medium.
- Flag
--zone
menentukan lokasi pembuatan VM.
- Jika Anda menghapus flag
--zone
, alat gcloud
dapat menyimpulkan zona yang diinginkan berdasarkan properti default Anda. Setelan instance lain yang diperlukan, seperti machine type
dan image
, akan ditetapkan ke nilai default jika tidak ditentukan dalam perintah create
.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah dijalankan. Setelah berhasil membuat virtual machine dengan alat gcloud
, skor penilaian akan ditampilkan.
Membuat virtual machine dengan gcloud
- Untuk membuka bantuan terkait perintah
create
, jalankan perintah berikut:
gcloud compute instances create --help
Catatan: Tekan Enter atau spasi untuk men-scroll konten bantuan. Untuk menutup konten, ketik Q.
Menjelajahi perintah gcloud
Alat gcloud
menawarkan panduan penggunaan sederhana yang tersedia dengan menambahkan flag -h
(yang artinya bantuan) di akhir perintah gcloud
.
-
Jalankan perintah berikut:
gcloud -h
Anda dapat mengakses bantuan yang lebih terperinci dengan menambahkan flag --help
ke suatu perintah atau menjalankan perintah gcloud help
.
-
Jalankan perintah berikut:
gcloud config --help
Untuk keluar, ketik Q
, lalu tekan Enter.
-
Jalankan perintah berikut:
gcloud help config
Perintah gcloud config --help
dan gcloud help config
menampilkan hasil yang sama. Keduanya menampilkan bantuan yang lengkap dan mendetail.
Ada flag global
di gcloud
yang mengatur perilaku perintah di tingkat setiap pemanggilan. Flag menggantikan setiap nilai yang diatur dalam properti SDK.
-
Lihat daftar konfigurasi di lingkungan Anda:
gcloud config list
-
Untuk melihat semua properti dan setelannya:
gcloud config list --all
-
Tampilkan daftar komponen:
gcloud components list
Perintah ini menampilkan komponen gcloud
yang siap Anda gunakan dalam lab ini.
Tugas 2. Memfilter output command line
Antarmuka command line (CLI) gcloud
adalah alat yang ampuh untuk bekerja di command line.
Anda mungkin ingin informasi spesifik ditampilkan.
-
Buat daftar instance komputasi yang tersedia di project:
gcloud compute instances list
Catatan:
Memiliki banyak resource yang di-deploy dalam suatu project merupakan hal yang sangat umum.
Untungnya gcloud
memiliki beberapa pemformatan cerdas yang dapat membantu mengidentifikasi resource tertentu.
Contoh Output:
NAME: gcelab2
ZONE: {{{project_0.default_zone | ZONE}}}
MACHINE_TYPE: e2-medium
PREEMPTIBLE:
INTERNAL_IP: 10.142.0.2
EXTERNAL_IP: 35.237.43.111
STATUS: RUNNING
-
Buat daftar virtual machine gcelab2:
gcloud compute instances list --filter="name=('gcelab2')"
Contoh Output:
NAME: gcelab2
ZONE: {{{project_0.default_zone | ZONE}}}
MACHINE_TYPE: e2-medium
PREEMPTIBLE:
INTERNAL_IP: 10.142.0.2
EXTERNAL_IP: 35.237.43.111
STATUS: RUNNING
Dalam perintah di atas, Anda meminta gcloud
untuk hanya menampilkan informasi yang cocok dengan kriteria, yaitu nama instance virtual yang cocok dengan kriteria.
-
Buat daftar aturan firewall dalam project:
gcloud compute firewall-rules list
Output:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
default-allow-icmp default INGRESS 65534 icmp False
default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False
default-allow-rdp default INGRESS 65534 tcp:3389 False
default-allow-ssh default INGRESS 65534 tcp:22 False
dev-net-allow-ssh dev-network INGRESS 1000 tcp:22 False
serverless-to-vpc-connector dev-network INGRESS 1000 icmp,udp:665-666,tcp:667 False
vpc-connector-egress dev-network INGRESS 1000 icmp,udp,tcp False
vpc-connector-health-check dev-network INGRESS 1000 tcp:667 False
vpc-connector-to-serverless dev-network EGRESS 1000 icmp,udp:665-666,tcp:667 False
-
Buat daftar aturan firewall untuk jaringan default:
gcloud compute firewall-rules list --filter="network='default'"
Output:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
default-allow-icmp default INGRESS 65534 icmp False
default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False
default-allow-rdp default INGRESS 65534 tcp:3389 False
default-allow-ssh default INGRESS 65534 tcp:22 False
-
Buat daftar aturan firewall untuk jaringan default di mana aturan izin cocok dengan aturan ICMP:
gcloud compute firewall-rules list --filter="NETWORK:'default' AND ALLOW:'icmp'"
Output:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
default-allow-icmp default INGRESS 65534 icmp False
default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False
Tugas 3. Menghubungkan ke instance VM Anda
Perintah gcloud compute
mempermudah proses terhubung ke instance Anda.
Perintah gcloud compute ssh
memberikan wrapper di sekitar SSH, yang menangani autentikasi dan pemetaan nama instance ke alamat IP.
-
Untuk terhubung ke VM menggunakan SSH, jalankan perintah berikut:
gcloud compute ssh gcelab2 --zone $ZONE
Output:
WARNING: The public SSH key file for gcloud does not exist.
WARNING: The private SSH key file for gcloud does not exist.
WARNING: You do not have an SSH key for gcloud.
WARNING: [/usr/bin/ssh-keygen] will be executed to generate a key.
This tool needs to create the directory
[/home/gcpstaging306_student/.ssh] before being able to generate SSH Keys.
Do you want to continue? (Y/n)
-
Untuk melanjutkan, ketik Y.
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase)
-
Untuk mengosongkan frasa sandi, tekan Enter dua kali.
Catatan:
Anda telah terhubung ke virtual machine yang dibuat sebelumnya di lab.
Apakah Anda melihat bagaimana command prompt berubah?
Perintah sekarang mengatakan sesuatu seperti sa_107021519685252337470@gcelab2.
- Referensi sebelum @ menunjukkan akun yang digunakan.
- Setelah tanda @ yang menunjukkan mesin host sedang diakses.
-
Instal server web nginx
ke virtual machine:
sudo apt install -y nginx
-
Anda tidak perlu melakukan apa pun di tahap ini. Untuk memutuskan koneksi dari SSH dan keluar dari remote shell, jalankan perintah berikut:
exit
Anda akan kembali ke command prompt project.
Tugas 4. Memperbarui firewall
Saat menggunakan resource komputasi seperti virtual machine, penting untuk memahami aturan firewall terkait.
-
Buat daftar aturan firewall untuk project:
gcloud compute firewall-rules list
Output:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
default-allow-icmp default INGRESS 65534 icmp False
default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False
default-allow-rdp default INGRESS 65534 tcp:3389 False
default-allow-ssh default INGRESS 65534 tcp:22 False
dev-net-allow-ssh dev-network INGRESS 1000 tcp:22 False
serverless-to-vpc-connector dev-network INGRESS 1000 icmp,udp:665-666,tcp:667 False
vpc-connector-egress dev-network INGRESS 1000 icmp,udp,tcp False
vpc-connector-health-check dev-network INGRESS 1000 tcp:667 False
vpc-connector-to-serverless dev-network EGRESS 1000 icmp,udp:665-666,tcp:667 False
Dari output di atas, Anda dapat melihat ada dua jaringan yang tersedia.
Jaringan default
adalah lokasi virtual machine gcelab2
.
-
Coba akses layanan nginx yang berjalan di virtual machine gcelab2
.
Catatan: Komunikasi dengan virtual machine akan gagal karena tidak memiliki aturan firewall yang sesuai.
Server web nginx mengharapkan komunikasi pada tcp:80.
Agar komunikasi berjalan, Anda perlu:
- Menambahkan tag ke virtual machine gcelab2
- Menambahkan aturan firewall untuk traffic http
-
Tambah tag ke virtual machine:
gcloud compute instances add-tags gcelab2 --tags http-server,https-server
-
Perbarui aturan firewall untuk mengizinkan:
gcloud compute firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
-
Buat daftar aturan firewall untuk project:
gcloud compute firewall-rules list --filter=ALLOW:'80'
Output:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
default-allow-http default INGRESS 1000 tcp:80 False
-
Verifikasi komunikasi dimungkinkan untuk http ke virtual machine:
curl http://$(gcloud compute instances list --filter=name:gcelab2 --format='value(EXTERNAL_IP)')
Anda akan melihat output nginx
default.
Tugas 5. Melihat log sistem
Melihat log sangat penting untuk memahami cara kerja project Anda.
Gunakan gcloud
untuk mengakses berbagai log yang tersedia di Google Cloud.
-
Lihat log yang tersedia di sistem:
gcloud logging logs list
Output:
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/GCEGuestAgent
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/OSConfigAgent
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/autoscaler.googleapis.com%2Fstatus_change
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Factivity
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Fdata_access
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Fsystem_event
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fautoscaler
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Finstance_group_manager_events
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fshielded_vm_integrity
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/run.googleapis.com%2Fstderr
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/run.googleapis.com%2Fstdout
-
Lihat log yang terkait dengan resource komputasi:
gcloud logging logs list --filter="compute"
Output:
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fautoscaler
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Finstance_group_manager_events
NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fshielded_vm_integrity
-
Baca log yang terkait dengan jenis resource gce_instance
:
gcloud logging read "resource.type=gce_instance" --limit 5
-
Baca log untuk virtual machine tertentu:
gcloud logging read "resource.type=gce_instance AND labels.instance_name='gcelab2'" --limit 5
Tugas 6. Menguji pemahaman Anda
Pertanyaan pilihan ganda berikut akan memperkuat pemahaman Anda mengenai konsep lab ini.
Selamat!
Anda telah mempelajari cara meluncurkan Cloud Shell dan menjalankan beberapa contoh perintah gcloud
.
Langkah berikutnya/Pelajari lebih lanjut
Lanjutkan pembelajaran dengan mengikuti lab-lab berikut ini:
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 09 September 2024
Lab Terakhir Diuji pada 09 September 2024
Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.