---
layout: "clc"
page_title: "clc: clc_server"
sidebar_current: "docs-clc-resource-server"
description: |-
Manages the lifecycle of a CLC server.
---
# clc\_server
Manages a CLC server.
See also [Complete API documentation](https://www.ctl.io/api-docs/v2/#servers-create-server).
## Example Usage
```
# Provision a server
resource "clc_server" "node" {
name_template = "trusty"
source_server_id = "UBUNTU-14-64-TEMPLATE"
group_id = "${clc_group.frontends.id}"
cpu = 2
memory_mb = 2048
password = "Green123$"
additional_disks
{
path = "/var"
size_gb = 100
type = "partitioned"
}
additional_disks
{
size_gb = 10
type = "raw"
}
}
output "server_id" {
value = "clc_server.node.id"
}
```
## Argument Reference
The following arguments are supported:
* `name_template` - (Required, string) The basename of the server. A unique name will be generated by the platform.
* `source_server_id` - (Required, string) The name or ID of the base OS image.
Examples: "ubuntu-14-64-template", "rhel-7-64-template", "win2012r2dtc-64"
* `group_id` - (Required, string) The name or ID of the server group to spawn server into.
* `cpu` - (Required, int) The number of virtual cores
* `memory_mb` - (Required, int) Provisioned RAM
* `type` - (Required, string) The virtualization type
One of "standard", "hyperscale", "bareMetal"
* `password` - (Optional, string) The root/adminstrator password. Will be generated by platform if not provided.
* `description` - (Optional, string) Description for server (visible in control portal only)
* `power_state` - (Optional, string) See [PowerStates](#power_states) below for details.
If absent, defaults to `started`.
* `private_ip_address` - (Optional, string) Set internal IP address. If absent, allocated and assigned from pool.
* `network_id` - (Optional, string) GUID of network to use. (Must be set up in advance from control portal.)
When absent, the default network will be used.
* `storage_type` - (Optional, string) Backup and replication strategy for disks.
One of "standard", "premium"
* `additional_disks` - (Optional) See [Disks](#disks) below for details.
* `custom_fields` - (Optional) See [CustomFields](#custom_fields) below for details.
## PowerStates
`power_state` may be used to set initial power state or modify existing instances.
* `on` | `started` - machine powered on
* `off` | `stopped` - machine powered off forcefully
* `paused` - freeze machine: memory, processes, billing, monitoring.
* `shutdown` - shutdown gracefully
* `reboot` - restart gracefully
* `reset` - restart forcefully
## Disks
`additional_disks` is a block within the configuration that may be
repeated to specify the attached disks on a server. Each
`additional_disks` block supports the following:
* `type` - (Required, string) Either "raw" or "partitioned".
* `size_gb` - (Required, int) Size of allocated disk.
* `path` - (Required, string, type:`partitioned`) The mountpoint for the disk.
## CustomFields
`custom_fields` is a block within the configuration that may be
repeated to bind custom fields for a server. CustomFields need be set
up in advance. Each `custom_fields` block supports the following:
* `id` - (Required, string) The ID of the custom field to set.
* `value` - (Required, string) The value for the specified field.