# Command Reference

#### Cách sử dụng FCI, Ứng dụng dòng lệnh FPT Smart Cloud chính thức

Bảng điều khiển dựa trên trang console của FPT Smart Cloud cung cấp giao diện trỏ và nhấp để quản lý máy ảo. Tuy nhiên, bạn có thể thích một công cụ dòng lệnh hơn nếu bạn có nhiều máy để quản lý, cần quản lý các máy ảo từ thiết bị đầu cuối mà không có màn hình đồ họa có sẵn hoặc có các tác vụ sẽ được hưởng lợi từ giao diện có thể tập lệnh.

`fci`là ứng dụng dòng lệnh FPT Smart Cloud chính thức.&#x20;

#### **Bước 1: Tải về và cài đặt môi trường:**

<mark style="color:red;">**Window:**</mark>

Tải file về theo đường dẫn bên dưới.&#x20;

<https://s3-sgn09.fptcloud.com/cli-production/release/fci-windows-amd64-latest.tar.gz>

Hoặc chạy lênh:&#x20;

`Invoke-WebRequest Invoke-WebRequest` [`https://s3-sgn09.fptcloud.com/cli-production/release/fci-windows-amd64-latest.tar.gz`](https://s3-sgn09.fptcloud.com/cli-production/release/fci-windows-amd64-latest.tar.gz)

Tiếp theo giải nén theo tệp bằng cách chạy:&#x20;

```
Expand-Archive -Path ~\fci-0.75-windows-amd64.zip
```

Cuối cùng, mở trong PowerShell được mở bằng **Run as Administrator** , hãy di chuyển tệp `fci` vào một thư mục chuyên dụng và thêm nó vào đường dẫn hệ thống bằng cách chạy:

```
New-Item -ItemType Directory $env:ProgramFiles\fci\
Move-Item -Path ~\fci-0.75.-windows-amd64\fci.exe -Destination $env:ProgramFiles\fci\
[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path",
    [EnvironmentVariableTarget]::Machine) + ";$env:ProgramFiles\fci\",
    [EnvironmentVariableTarget]::Machine)
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
```

<mark style="color:red;">**MacOS:**</mark>

Tải file về theo đường dẫn bên dưới&#x20;

<https://s3-sgn09.fptcloud.com/cli-production/release/fci-darwin-amd64-latest.tar.gz>

Tiếp theo giải nén các tệp. Hãy chạy:&#x20;

`$ unzip fci-bundle.zip`

Chạy chương trình cài đặt:

`$ sudo ./fci-bundle/install -i /usr/local/usr/local/bin/fci`

<mark style="color:red;">**Linux:**</mark>&#x20;

Tải file về theo đường dẫn bên dưới.&#x20;

<https://s3-sgn09.fptcloud.com/cli-production/release/fci-linux-amd64-latest.tar.gz>

Tiếp theo, giải nén các tệp. Ví dụ, để làm như vậy bằng cách sử dụng `tar`, hãy chạy:

```
tar -xvf fci-0.0.75-linux-amd64.tar.gz
```

Cuối cùng, di chuyển tệp `fci` vào đường dẫn của bạn bằng cách chạy:

```
sudo cp fci /usr/local/bin/
sudo chmod +x /usr/local/bin/fci
```

#### **Bước 2: Tạo token trên trang console unify portal để xác thực tài khoản**

Tạo mã để xác thực và cho phép tài khoản quyền truy cập vào tài khoản. Chuỗi mã chỉ được hiển thị và sử dụng một lần, vì vậy hãy lưu nó ở nơi an toàn.&#x20;

Tiếp theo sẽ có cả thông tin về VPC ID và Tennant ID&#x20;

{% embed url="<https://console.fptcloud.com/tokens>" %}

#### **Bước 3: Sử dụng token và VPC ID để cấp quyền truy cập vào tài khoản**

Sử dụng token API bằng cách&#x20;

```bash
fci auth init --context <NAME>
```

Ngoài ra hệ thống cho phép chuyển đổi giữa nhiều tài khoản được xác thực.&#x20;

```bash
fci auth list
fci auth switch --context <NAME>
```

#### **Bước 4: Xác thực rằng `fci` đã hoạt động**

Sau khi xác thực và hiển thị trạng thái ok, `fci` đã có thể sử dụng, có thể xem lại tài khoản bằng cách:&#x20;

```bash
fci account get
```

Nếu thành công thì sẽ có hiển thị ra như sau:     &#x20;

```
Email                  UserName               FirstName    LastName    Status    Id
infra1@fptcloud.com    infra1@fptcloud.com    infra        1           ACTIVE    e3f60998-e6dc-43f8-b1f0-0c75e77495b1
```

Sau đó bạn có thể thực hiện tạo 1 máy ảo bằng cách chạy câu lệnh sau: &#x20;

```
fci compute instance create abc --image-id cb15bbeb-faf9-4965-ac0a-6ed71404c240 --size-id b4954cc1-5429-48d9-847a-d14463e16aa1 --storage-id 62e7e161-eb26-4927-b195-49fd1a4bfe91 --subnet-id 8001b5c7-a40b-43c3-9d55-a1522f590a5d  --password Aa@123456789
```

Đầu ra của câu lệnh đó với một máy ảo mới sẽ là:

```
ID                                      Name                   Memory    VCPUs    GuestOS                  Private IP       Public IP        Subnet                 Status        Created At             Platform    VPC UUID
9bd67b5a-6836-4d50-986a-460a226e2d4b    ab                     1024      1        Ubuntu Linux (64-bit)    172.16.10.235                     network-01-blv6ek27    POWERED_ON    2022-06-15T07:35:14                0296d431-dc3e-4395-8eaf-e29b665c9804
```

Có thể thực hiện xóa máy ảo đó bằng cách:

```bash
fci compute instance-action delete <instance id>
```

####

####

<br>
