provider "linux" {
host = "127.0.0.1"
port = 22
user = "root"
password = "root"
}
resource "linux_directory" "directory" {
path = "/tmp/linux/dir"
owner = 1000
group = 1000
mode = "755"
overwrite = true
recycle_path = "/tmp/recycle"
}
resource "linux_file" "file" {
path = "/tmp/linux/file"
content = <<-EOF
hello world
EOF
owner = 1000
group = 1000
mode = "644"
overwrite = true
recycle_path = "/tmp/recycle"
}
locals {
package_name = "apache2"
}
resource "linux_script" "install_package" {
lifecycle_commands {
create = "apt update && apt install -y $PACKAGE_NAME=$PACKAGE_VERSION"
read = "apt-cache policy $PACKAGE_NAME | grep 'Installed:' | grep -v '(none)' | awk '{ print $2 }' | xargs | tr -d '\n'"
update = "apt update && apt install -y $PACKAGE_NAME=$PACKAGE_VERSION"
delete = "apt remove -y $PACKAGE_NAME"
}
environment = {
PACKAGE_NAME = local.package_name
PACKAGE_VERSION = "2.4.18-2ubuntu3.4"
}
triggers = {
PACKAGE_NAME = local.package_name"
}
}
In order to build the provider run make build
:
make build
In order to test the provider, you can simply run make test
.
make test
In order to run the full suite of Acceptance tests, run make testacc
.
Note: A linux machine with ssh connection is required to run Acceptance tests. Connection information need to be specified through Environment variables for the test code. This repo includes SSH server inside docker that can be used for running the tests.
make testacc