First make sure to enable the Podman socket:
systemctl enable --now podman.socket
Run the Portainer agent in a Podman root environment:
podman run -d --privileged \
-p 9001:9001 \
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py | |
python3 get-pip.py --force-reinstall |
resource "aws_vpc" "default" { | |
cidr_block = "10.0.0.0/16" | |
enable_dns_hostnames = true | |
} | |
resource "aws_internet_gateway" "gw" { | |
vpc_id = aws_vpc.default.id | |
} | |
resource "aws_subnet" "tf_test_subnet" { |
Terraform is a popular infrastructure as code (IaC) tool used to provision and manage cloud resources from various providers like Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), and others. It allows users to define infrastructure configurations in a declarative manner, making it easier to manage and automate the deployment process. Let's explore some of the advantages and disadvantages of using Terraform:
Advantages of Terraform:
Infrastructure as Code (IaC): Terraform enables you to define your infrastructure in code, making it versionable, maintainable, and easier to collaborate on with other team members. This brings many benefits like reproducibility, consistency, and easier rollbacks.
Multi-Cloud Support: Terraform provides a unified way to manage infrastructure across multiple cloud providers. This allows organizations to avoid vendor lock-in and leverage the best features of different cloud platforms.
Declarative Syntax: Terraform uses a declarative la
data "template_file" "user_data" { | |
template = file("cloudinit/addpubkey.yml") | |
} | |
resource "aws_vpc" "mainvpc" { | |
cidr_block = "10.1.0.0/16" | |
} | |
resource "aws_internet_gateway" "gw" { | |
vpc_id = aws_vpc.mainvpc.id |
Just call Preferences => Customize Color Scheme
and add this between the square brackets under "rules":
{
"name": "Mapping Key Names",
"scope": "meta.mapping.key string",
"foreground": "#ff79c6"
}
192.168.1.0 - 192.168.1.31 | |
192.168.1.32 - 192.168.1.63 | |
192.168.1.64 - 192.168.1.95 | |
192.168.1.96 - 192.168.1.127 | |
192.168.1.128 - 192.168.1.159 | |
192.168.1.160 - 192.168.1.191 | |
192.168.1.192 - 192.168.1.223 | |
192.168.1.224 - 192.168.1.255 | |
192.168.1.0/32 |
Open the main.tf
file. Notice how the template_file.user_data
data block retrieves the contents of the add-ssh-web-app.yaml file. Then, it is passed into aws_instance.web as a user_data value to be initialized when the instance is created.
data "template_file" "user_data" {
template = file("../scripts/add-ssh-web-app.yaml")
}
resource "aws_instance" "web" {
ami = data.aws_ami.ubuntu.id
SELECT | |
EXTRACT(MONTH FROM payment_date) AS month, | |
COUNT(*) AS total_count, | |
SUM(amount) AS total_amount, | |
COUNT(*) FILTER (WHERE staff_id = 1) AS mike_count, | |
SUM(amount) FILTER (WHERE staff_id = 1) AS mike_amount, | |
COUNT(*) FILTER (WHERE staff_id = 2) AS jon_count, | |
SUM(amount) FILTER (WHERE staff_id = 2) AS jon_amount | |
FROM payment | |
GROUP BY month |
Most SPA frameworks support HTML5 history.pushState() to change browser location without triggering a server request. This works for users who begin their journey from the root (or /index.html), but fails for users who navigate directly to any other page.
The following example uses regular expressions to set up a 200 rewrite for all files to index.html, except for the file extensions specified in the regular expression.
rules = </^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>
| Original address | Destination Address | Redirect Type |