Initial commit: Set up project structure and basic configuration files (#1)

diff --git a/.gitignore b/.gitignore
index 492dd61..dfab1a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,8 @@
 .checkstyle
 .externalToolBuilders
 oap-server/oal-grammar/**/gen/
+aws/.terraform/
+aws/.terraform.lock.hcl
 
 # This serves as a template but will ONLY be updated when building a source release tar,
 # so we don't track future updates of this file.
diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg
new file mode 100644
index 0000000..c11055e
--- /dev/null
+++ b/ansible/ansible.cfg
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+[defaults]
+inventory = inventory/
+timeout = 60
+
+[privilege_escalation]
+become = yes
+become_method = sudo
+become_flags = 'su -c'
diff --git a/ansible/inventory/hosts b/ansible/inventory/hosts
new file mode 100644
index 0000000..ae1e83e
--- /dev/null
+++ b/ansible/inventory/hosts
@@ -0,0 +1,14 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/ansible/playbooks/ping.yml b/ansible/playbooks/ping.yml
new file mode 100644
index 0000000..beba91e
--- /dev/null
+++ b/ansible/playbooks/ping.yml
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+- name: Ping hosts
+  hosts: skywalking_server
+  gather_facts: false
+
+  tasks:
+    - name: Ping the hosts
+      ping:
diff --git a/aws/ec2.tf b/aws/ec2.tf
new file mode 100644
index 0000000..c4d4f7b
--- /dev/null
+++ b/aws/ec2.tf
@@ -0,0 +1,46 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+resource "aws_instance" "skywalking" {
+  ami = "ami-026ebd4cfe2c043b2"
+  instance_type = "t2.medium"
+  tags = {
+    Name = "skywalking-terraform"
+    Description = "Skywalking installed on RHEL"
+  }
+  vpc_security_group_ids = [ aws_security_group.ssh-access.id ]
+}
+
+resource "aws_security_group" "ssh-access" {
+  name = "ssh-access"
+  description = "Allow SSH access from the Internet"
+  ingress = [
+    {
+      from_port = 22
+      to_port = 22
+      protocol = "tcp"
+      cidr_blocks = ["0.0.0.0/0"]
+      description     = "SSH access rule"
+      ipv6_cidr_blocks = []
+      prefix_list_ids = []
+      security_groups = []
+      self            = false
+    }
+  ]
+}
+
+output publicip {
+  value = aws_instance.skywalking.public_ip
+}
diff --git a/aws/provider.tf b/aws/provider.tf
new file mode 100644
index 0000000..6b18cca
--- /dev/null
+++ b/aws/provider.tf
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+provider "aws" {
+    region = "us-east-1"
+}