first commit
This commit is contained in:
commit
8f23ccebb1
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEAvRgNiwRozl2Qp1PITKHCoHJ1ho7pxxbil3n9g4Il5j5cQeUP
|
||||||
|
u/prDIHWfZYlS/yqMOo4JCAmhjFCMTzc1VSe9S7/WPF6wR05nEuxW0f7H/blIbn2
|
||||||
|
PazOxncEoVQy/cNOZSNevRMmv938tK/cfFxZt06Z72ahvMy0wZsCHA7jtu4o1mar
|
||||||
|
oNIHc16/L2ydzZBFPhE4yhDXXDHMFnLuMrjpULSa7OQijqu4d6RHmNig2Va4ktFS
|
||||||
|
yRDzoXPlBP1vqm2KELWNxv0s1odx+12TDZuubH1VMtumP79oidiLB4jT5tfFJJBK
|
||||||
|
Qd8j+Y4iMksewLxVTJBetAUUz6cqDNl33Qe+bQIDAQABAoIBAAFybSwaqQinO6Ok
|
||||||
|
Jvy7IiejKJYSguR0nuBE3TVD6jFUWdVhQNkR5f7PAYqtevSVZuH/8NUJ7/GH7/c7
|
||||||
|
fX8eaib7KJYQJv3SUO4KwD0wFFJey8sRxrobF+v53i2z3L4HYBKzDhcJTfsa4kOp
|
||||||
|
sti6xi76aYAk+2jb8ignHQGE9aYhMg0J3dQOZyGR/P/I7F1gDZuDOF4ioSnSUkWQ
|
||||||
|
l/y1P5HSXKfnklslaxJoc/izhP9kJEVEYc5avCMOEPm9CBllGmVwT/uTycxJEoLk
|
||||||
|
EoeHeKkZXelJWExt7RTYEfhRO1zWOFmdlxBFSdlL6rycuQ6n6MR1sLU0GPJdUI2O
|
||||||
|
z+ZiKRECgYEA0xT2ceN2p7vPZbcgdXAYVWzyXiP7eJl1Wczsn7WExB0dbMHXJmw2
|
||||||
|
v8rrK7uJ3bVFeUmN4pZ1DYRsz+sc+WYr+vZ3ZW175chA0cPsu6L5KA2RwTYNRqkw
|
||||||
|
15dnBRD5fGcL6pJ8l1yPrlqWbpHreNd6AS3u02LNHfWecKdfOYf4KjkCgYEA5VVC
|
||||||
|
3J5bBeNmOKkWOhRCF1g6Oatx3iXGWlpwVHXv2yXXxBwhhp2YVm8y6sffYOvYP1Uu
|
||||||
|
eMFDl5vGfhog3SndGnBnzQgzv//LMjq3U6nuvjssZvzuO/hzwtXHoddRe7UZGCp7
|
||||||
|
fNtuiXxgE1MO6FV+27dIYcSvFP0fe3CFfs6FhdUCgYEAqpVfUMy1YHp78kSbO60a
|
||||||
|
TTcda40CtgS2fJsKg0srf13UIMdKO2fqmva/NPl7QiwzeABEZOCYuhLR6Pml0buL
|
||||||
|
QWabOOHQ5fL+x0bh8wWS+5Zzu0QWWIt0yFY30DVWmf2g+LHndF8+UnYs6jCMrnzc
|
||||||
|
wUVAo55OC68qmvn4D8Ndf6kCgYBL4dNW1pr9rsmjE+fD3fIkcVAKxvzNaahhOy2R
|
||||||
|
9Nghpjrnq/s35KuEZhTt9KaoFkGeaxwOXrxzzNp33UNkirabSfg+smkVLZlZjG4e
|
||||||
|
o8rYbRH7HdPiSgpbvIrqtSlECp88DMqBfMXtfhb4LfJv0+I+5z1vBDp+cmbZXFj/
|
||||||
|
pWwu5QKBgQDAlBt94fcf0txi+l5ccj3f0MZC28TtBgGK+pAmaQtGQaDDFS5KJvfW
|
||||||
|
o2FuZHziwP7y6uSqNOEmdWcrbJmPRGLNciOobCyKSPKykXOLtU+k6hIEonHuNnzz
|
||||||
|
n1LmHTzht6EMT/eVJDkU7ws8v6wIFdFiL40alVH7tGBTgzgpcYUjRg==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,29 @@
|
||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdz
|
||||||
|
c2gtcnNhAAAAAwEAAQAAAQEAvRgNiwRozl2Qp1PITKHCoHJ1ho7pxxbil3n9g4Il
|
||||||
|
5j5cQeUPu/prDIHWfZYlS/yqMOo4JCAmhjFCMTzc1VSe9S7/WPF6wR05nEuxW0f7
|
||||||
|
H/blIbn2PazOxncEoVQy/cNOZSNevRMmv938tK/cfFxZt06Z72ahvMy0wZsCHA7j
|
||||||
|
tu4o1maroNIHc16/L2ydzZBFPhE4yhDXXDHMFnLuMrjpULSa7OQijqu4d6RHmNig
|
||||||
|
2Va4ktFSyRDzoXPlBP1vqm2KELWNxv0s1odx+12TDZuubH1VMtumP79oidiLB4jT
|
||||||
|
5tfFJJBKQd8j+Y4iMksewLxVTJBetAUUz6cqDNl33Qe+bQAAA7hSOo//UjqP/wAA
|
||||||
|
AAdzc2gtcnNhAAABAQC9GA2LBGjOXZCnU8hMocKgcnWGjunHFuKXef2DgiXmPlxB
|
||||||
|
5Q+7+msMgdZ9liVL/Kow6jgkICaGMUIxPNzVVJ71Lv9Y8XrBHTmcS7FbR/sf9uUh
|
||||||
|
ufY9rM7GdwShVDL9w05lI169Eya/3fy0r9x8XFm3TpnvZqG8zLTBmwIcDuO27ijW
|
||||||
|
Zqug0gdzXr8vbJ3NkEU+ETjKENdcMcwWcu4yuOlQtJrs5CKOq7h3pEeY2KDZVriS
|
||||||
|
0VLJEPOhc+UE/W+qbYoQtY3G/SzWh3H7XZMNm65sfVUy26Y/v2iJ2IsHiNPm18Uk
|
||||||
|
kEpB3yP5jiIySx7AvFVMkF60BRTPpyoM2XfdB75tAAAAAwEAAQAAAQABcm0sGqkI
|
||||||
|
pzujpCb8uyInoyiWEoLkdJ7gRN01Q+oxVFnVYUDZEeX+zwGKrXr0lWbh//DVCe/x
|
||||||
|
h+/3O31/Hmom+yiWECb90lDuCsA9MBRSXsvLEca6Gxfr+d4ts9y+B2ASsw4XCU37
|
||||||
|
GuJDqbLYusYu+mmAJPto2/IoJx0BhPWmITINCd3UDmchkfz/yOxdYA2bgzheIqEp
|
||||||
|
0lJFkJf8tT+R0lyn55JbJWsSaHP4s4T/ZCRFRGHOWrwjDhD5vQgZZRplcE/7k8nM
|
||||||
|
SRKC5BKHh3ipGV3pSVhMbe0U2BH4UTtc1jhZnZcQRUnZS+q8nLkOp+jEdbC1NBjy
|
||||||
|
XVCNjs/mYikRAAAAgQDAlBt94fcf0txi+l5ccj3f0MZC28TtBgGK+pAmaQtGQaDD
|
||||||
|
FS5KJvfWo2FuZHziwP7y6uSqNOEmdWcrbJmPRGLNciOobCyKSPKykXOLtU+k6hIE
|
||||||
|
onHuNnzzn1LmHTzht6EMT/eVJDkU7ws8v6wIFdFiL40alVH7tGBTgzgpcYUjRgAA
|
||||||
|
AIEA0xT2ceN2p7vPZbcgdXAYVWzyXiP7eJl1Wczsn7WExB0dbMHXJmw2v8rrK7uJ
|
||||||
|
3bVFeUmN4pZ1DYRsz+sc+WYr+vZ3ZW175chA0cPsu6L5KA2RwTYNRqkw15dnBRD5
|
||||||
|
fGcL6pJ8l1yPrlqWbpHreNd6AS3u02LNHfWecKdfOYf4KjkAAACBAOVVQtyeWwXj
|
||||||
|
ZjipFjoUQhdYOjmrcd4lxlpacFR179sl18QcIYadmFZvMurH32Dr2D9VLnjBQ5eb
|
||||||
|
xn4aIN0p3RpwZ80IM7//yzI6t1Op7r47LGb87jv4c8LVx6HXUXu1GRgqe3zbbol8
|
||||||
|
YBNTDuhVftu3SGHErxT9H3twhX7OhYXVAAAAAAEC
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
|
@ -0,0 +1,82 @@
|
||||||
|
# This file is maintained automatically by "terraform init".
|
||||||
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/aws" {
|
||||||
|
version = "5.54.1"
|
||||||
|
constraints = "~> 5.54.1"
|
||||||
|
hashes = [
|
||||||
|
"h1:SOdZNOAcBvbrkV6V1S7UiGh9K//O66qfyXpHgyXeBeI=",
|
||||||
|
"zh:37c09b9a0a0a2f7854fe52c6adb15f71593810b458a8283ed71d68036af7ba3a",
|
||||||
|
"zh:42fe11d87723d4e43b9c6224ae6bacdcb53faee8abc58f0fc625a161d1f71cb1",
|
||||||
|
"zh:57c6dfc46f28c9c2737559bd84acbc05aeae90431e731bb72a0024028a2d2412",
|
||||||
|
"zh:5ba9665a4ca0e182effd75575b19a4d47383ec02662024b9fe26f78286c36619",
|
||||||
|
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||||
|
"zh:b55980be0237644123a02a30b56d4cc03863ef29036c47d6e8ab5429ab45adf5",
|
||||||
|
"zh:b81e7664f10855a3a6fc234a18b4c4f1456273126a40c41516f2061696fb9870",
|
||||||
|
"zh:bd09736ffafd92af104c3c34b5add138ae8db4402eb687863ce472ca7e5ff2e2",
|
||||||
|
"zh:cc2eb1c62fba2a11d1f239e650cc2ae94bcab01c907384dcf2e213a6ee1bd5b2",
|
||||||
|
"zh:e5dc40205d9cf6f353c0ca532ae29afc6c83928bc9bcca47d74b640d3bb5a38c",
|
||||||
|
"zh:ebf1acdcd13f10db1b9c85050ddaadc70ab269c47c5a240753362446442d8371",
|
||||||
|
"zh:f2fc28a4ad94af5e6144a7309286505e3eb7a94d9dc106722b506c372ff7f591",
|
||||||
|
"zh:f49445e8435944df122aa89853260a2716ba8b73d6a6a70cae1661554926d5a2",
|
||||||
|
"zh:fc3b5046e60ae7cab20715be23de8436eb12736136fd6d0f0cc1549ebda6cc73",
|
||||||
|
"zh:fdb98a53500e245a3b5bec077b994da6959dba8fc4eb7534528658d820e06bd5",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/http" {
|
||||||
|
version = "3.5.0"
|
||||||
|
hashes = [
|
||||||
|
"h1:8bUoPwS4hahOvzCBj6b04ObLVFXCEmEN8T/5eOHmWOM=",
|
||||||
|
"zh:047c5b4920751b13425efe0d011b3a23a3be97d02d9c0e3c60985521c9c456b7",
|
||||||
|
"zh:157866f700470207561f6d032d344916b82268ecd0cf8174fb11c0674c8d0736",
|
||||||
|
"zh:1973eb9383b0d83dd4fd5e662f0f16de837d072b64a6b7cd703410d730499476",
|
||||||
|
"zh:212f833a4e6d020840672f6f88273d62a564f44acb0c857b5961cdb3bbc14c90",
|
||||||
|
"zh:2c8034bc039fffaa1d4965ca02a8c6d57301e5fa9fff4773e684b46e3f78e76a",
|
||||||
|
"zh:5df353fc5b2dd31577def9cc1a4ebf0c9a9c2699d223c6b02087a3089c74a1c6",
|
||||||
|
"zh:672083810d4185076c81b16ad13d1224b9e6ea7f4850951d2ab8d30fa6e41f08",
|
||||||
|
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
|
||||||
|
"zh:7b4200f18abdbe39904b03537e1a78f21ebafe60f1c861a44387d314fda69da6",
|
||||||
|
"zh:843feacacd86baed820f81a6c9f7bd32cf302db3d7a0f39e87976ebc7a7cc2ee",
|
||||||
|
"zh:a9ea5096ab91aab260b22e4251c05f08dad2ed77e43e5e4fadcdfd87f2c78926",
|
||||||
|
"zh:d02b288922811739059e90184c7f76d45d07d3a77cc48d0b15fd3db14e928623",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/local" {
|
||||||
|
version = "2.5.3"
|
||||||
|
hashes = [
|
||||||
|
"h1:1Nkh16jQJMp0EuDmvP/96f5Unnir0z12WyDuoR6HjMo=",
|
||||||
|
"zh:284d4b5b572eacd456e605e94372f740f6de27b71b4e1fd49b63745d8ecd4927",
|
||||||
|
"zh:40d9dfc9c549e406b5aab73c023aa485633c1b6b730c933d7bcc2fa67fd1ae6e",
|
||||||
|
"zh:6243509bb208656eb9dc17d3c525c89acdd27f08def427a0dce22d5db90a4c8b",
|
||||||
|
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
|
||||||
|
"zh:885d85869f927853b6fe330e235cd03c337ac3b933b0d9ae827ec32fa1fdcdbf",
|
||||||
|
"zh:bab66af51039bdfcccf85b25fe562cbba2f54f6b3812202f4873ade834ec201d",
|
||||||
|
"zh:c505ff1bf9442a889ac7dca3ac05a8ee6f852e0118dd9a61796a2f6ff4837f09",
|
||||||
|
"zh:d36c0b5770841ddb6eaf0499ba3de48e5d4fc99f4829b6ab66b0fab59b1aaf4f",
|
||||||
|
"zh:ddb6a407c7f3ec63efb4dad5f948b54f7f4434ee1a2607a49680d494b1776fe1",
|
||||||
|
"zh:e0dafdd4500bec23d3ff221e3a9b60621c5273e5df867bc59ef6b7e41f5c91f6",
|
||||||
|
"zh:ece8742fd2882a8fc9d6efd20e2590010d43db386b920b2a9c220cfecc18de47",
|
||||||
|
"zh:f4c6b3eb8f39105004cf720e202f04f57e3578441cfb76ca27611139bc116a82",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/tls" {
|
||||||
|
version = "4.1.0"
|
||||||
|
hashes = [
|
||||||
|
"h1:Ka8mEwRFXBabR33iN/WTIEW6RP0z13vFsDlwn11Pf2I=",
|
||||||
|
"zh:14c35d89307988c835a7f8e26f1b83ce771e5f9b41e407f86a644c0152089ac2",
|
||||||
|
"zh:2fb9fe7a8b5afdbd3e903acb6776ef1be3f2e587fb236a8c60f11a9fa165faa8",
|
||||||
|
"zh:35808142ef850c0c60dd93dc06b95c747720ed2c40c89031781165f0c2baa2fc",
|
||||||
|
"zh:35b5dc95bc75f0b3b9c5ce54d4d7600c1ebc96fbb8dfca174536e8bf103c8cdc",
|
||||||
|
"zh:38aa27c6a6c98f1712aa5cc30011884dc4b128b4073a4a27883374bfa3ec9fac",
|
||||||
|
"zh:51fb247e3a2e88f0047cb97bb9df7c228254a3b3021c5534e4563b4007e6f882",
|
||||||
|
"zh:62b981ce491e38d892ba6364d1d0cdaadcee37cc218590e07b310b1dfa34be2d",
|
||||||
|
"zh:bc8e47efc611924a79f947ce072a9ad698f311d4a60d0b4dfff6758c912b7298",
|
||||||
|
"zh:c149508bd131765d1bc085c75a870abb314ff5a6d7f5ac1035a8892d686b6297",
|
||||||
|
"zh:d38d40783503d278b63858978d40e07ac48123a2925e1a6b47e62179c046f87a",
|
||||||
|
"zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c",
|
||||||
|
"zh:fb07f708e3316615f6d218cec198504984c0ce7000b9f1eebff7516e384f4b54",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,375 @@
|
||||||
|
Copyright (c) 2017 HashiCorp, Inc.
|
||||||
|
|
||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
Binary file not shown.
|
@ -0,0 +1,375 @@
|
||||||
|
Copyright (c) 2017 HashiCorp, Inc.
|
||||||
|
|
||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
Binary file not shown.
|
@ -0,0 +1,375 @@
|
||||||
|
Copyright (c) 2017 HashiCorp, Inc.
|
||||||
|
|
||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
Binary file not shown.
|
@ -0,0 +1,375 @@
|
||||||
|
Copyright (c) 2017 HashiCorp, Inc.
|
||||||
|
|
||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
||||||
|
# CMDB Provisioning
|
||||||
|
|
||||||
|
構成管理サーバーの環境構築を行うコードです。
|
|
@ -0,0 +1,105 @@
|
||||||
|
# ---------------------------
|
||||||
|
# EC2 Keypairの設定
|
||||||
|
# ---------------------------
|
||||||
|
# 鍵の名前を指定
|
||||||
|
variable "key_name" {
|
||||||
|
default = "cmdb-keypair"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 秘密鍵のアルゴリズム設定
|
||||||
|
resource "tls_private_key" "cmdb_private_key" {
|
||||||
|
algorithm = "RSA"
|
||||||
|
rsa_bits = 2048
|
||||||
|
}
|
||||||
|
|
||||||
|
# 生成するkeypair(秘密鍵と公開鍵)のパスを指定
|
||||||
|
locals {
|
||||||
|
public_key_file = "./.keypair/${var.key_name}.id_rsa.pub"
|
||||||
|
private_key_file = "./.keypair/${var.key_name}.id_rsa"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 鍵の生成
|
||||||
|
resource "local_file" "cmdb_private_key_pem" {
|
||||||
|
filename = local.private_key_file
|
||||||
|
content = tls_private_key.cmdb_private_key.private_key_pem
|
||||||
|
}
|
||||||
|
|
||||||
|
# 公開鍵をAWSのkeypairにインポート
|
||||||
|
resource "aws_key_pair" "cmdb_keypair" {
|
||||||
|
key_name = var.key_name
|
||||||
|
public_key = tls_private_key.cmdb_private_key.public_key_openssh
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------
|
||||||
|
# EC2 インスタンス
|
||||||
|
# ---------------------------
|
||||||
|
# Amazon Linux2のAMIを取得
|
||||||
|
data "aws_ssm_parameter" "amazon_linux2023" {
|
||||||
|
name = "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ネットワークインターフェイスの作成
|
||||||
|
resource "aws_network_interface" "cmdb_ni_web1" {
|
||||||
|
subnet_id = aws_subnet.cmdb_public_1a_subnet.id
|
||||||
|
private_ips = ["10.5.1.10"]
|
||||||
|
# セキュリティグループの指定
|
||||||
|
security_groups = [aws_security_group.cmdb_ec2_sg.id]
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-ni-web1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_network_interface" "cmdb_ni_web2" {
|
||||||
|
subnet_id = aws_subnet.cmdb_public_1c_subnet.id
|
||||||
|
private_ips = ["10.5.3.10"]
|
||||||
|
# セキュリティグループの指定
|
||||||
|
security_groups = [aws_security_group.cmdb_ec2_sg.id]
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-ni-web2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2インスタンスの作成
|
||||||
|
resource "aws_instance" "cmdb_ec2" {
|
||||||
|
# AMIの指定
|
||||||
|
ami = data.aws_ssm_parameter.amazon_linux2023.value
|
||||||
|
# インスタンスタイプの指定
|
||||||
|
instance_type = "t3a.medium"
|
||||||
|
# EBSのルートボリューム設定
|
||||||
|
root_block_device {
|
||||||
|
# ボリュームサイズ(GiB)
|
||||||
|
volume_size = 64
|
||||||
|
# ボリュームタイプ
|
||||||
|
volume_type = "gp3"
|
||||||
|
# GP3のIOPS
|
||||||
|
iops = 3000
|
||||||
|
# GP3のスループット
|
||||||
|
throughput = 125
|
||||||
|
# EC2終了時に削除
|
||||||
|
delete_on_termination = true
|
||||||
|
|
||||||
|
# EBSのNameタグ
|
||||||
|
tags = {
|
||||||
|
Name = "gp3-dev-ec2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# アベイラビリティーゾーンの指定
|
||||||
|
availability_zone = "ap-northeast-1a"
|
||||||
|
# サブネットの指定 : NICの設定と重複するため不要
|
||||||
|
# subnet_id = aws_subnet.cmdb_public_1a_subnet.id
|
||||||
|
# ネットワークインターフェイスの指定
|
||||||
|
network_interface {
|
||||||
|
network_interface_id = aws_network_interface.cmdb_ni_web1.id
|
||||||
|
device_index = 0
|
||||||
|
}
|
||||||
|
# キーペアの指定
|
||||||
|
key_name = var.key_name
|
||||||
|
# インスタンスプロファイルの指定
|
||||||
|
iam_instance_profile = aws_iam_instance_profile.cmdb_ssm_instance_profile.name
|
||||||
|
# user dataの指定(CMDBのインストール)
|
||||||
|
user_data = file("install.sh")
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-ec2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
# ---------------------------
|
||||||
|
# EC2 Keypairの設定
|
||||||
|
# ---------------------------
|
||||||
|
# 鍵の名前を指定
|
||||||
|
variable "key_name" {
|
||||||
|
default = "cmdb-keypair"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 秘密鍵のアルゴリズム設定
|
||||||
|
resource "tls_private_key" "keygen" {
|
||||||
|
algorithm = "RSA"
|
||||||
|
rsa_bits = 2048
|
||||||
|
}
|
||||||
|
|
||||||
|
# 生成するkeypair(秘密鍵と公開鍵)のパスを指定
|
||||||
|
locals {
|
||||||
|
public_key_file = "./.keypair/${var.key_name}.id_rsa.pub"
|
||||||
|
private_key_file = "./.keypair/${var.key_name}.id_rsa"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 鍵の生成
|
||||||
|
resource "local_file" "cmdb_private_key_pem" {
|
||||||
|
filename = local.private_key_file
|
||||||
|
content = tls_private_key.keygen.private_key_pem
|
||||||
|
}
|
||||||
|
resource "local_file" "cmdb_public_key_pem" {
|
||||||
|
filename = local.public_key_file
|
||||||
|
content = tls_private_key.keygen.private_key_openssh
|
||||||
|
}
|
||||||
|
|
||||||
|
# 公開鍵をAWSのkeypairにインポート
|
||||||
|
resource "aws_key_pair" "cmdb_keypair" {
|
||||||
|
key_name = var.key_name
|
||||||
|
public_key = tls_private_key.keygen.public_key_openssh
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------
|
||||||
|
# EC2 インスタンス
|
||||||
|
# ---------------------------
|
||||||
|
# Amazon Linux2のAMIを取得
|
||||||
|
data "aws_ssm_parameter" "amazon_linux2023" {
|
||||||
|
name = "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ネットワークインターフェイスの作成
|
||||||
|
resource "aws_network_interface" "cmdb_ni_web1" {
|
||||||
|
subnet_id = aws_subnet.cmdb_public_1a_subnet.id
|
||||||
|
private_ips = ["10.5.1.10"]
|
||||||
|
# セキュリティグループの指定
|
||||||
|
security_groups = [aws_security_group.cmdb_ec2_sg.id]
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-ni-web1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_network_interface" "cmdb_ni_web2" {
|
||||||
|
subnet_id = aws_subnet.cmdb_public_1c_subnet.id
|
||||||
|
private_ips = ["10.5.3.10"]
|
||||||
|
# セキュリティグループの指定
|
||||||
|
security_groups = [aws_security_group.cmdb_ec2_sg.id]
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-ni-web2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2インスタンスの作成
|
||||||
|
resource "aws_instance" "cmdb_ec2" {
|
||||||
|
# AMIの指定
|
||||||
|
ami = data.aws_ssm_parameter.amazon_linux2023.value
|
||||||
|
# インスタンスタイプの指定
|
||||||
|
instance_type = "t3a.medium"
|
||||||
|
# EBSのルートボリューム設定
|
||||||
|
root_block_device {
|
||||||
|
# ボリュームサイズ(GiB)
|
||||||
|
volume_size = 64
|
||||||
|
# ボリュームタイプ
|
||||||
|
volume_type = "gp3"
|
||||||
|
# GP3のIOPS
|
||||||
|
iops = 3000
|
||||||
|
# GP3のスループット
|
||||||
|
throughput = 125
|
||||||
|
# EC2終了時に削除
|
||||||
|
delete_on_termination = true
|
||||||
|
|
||||||
|
# EBSのNameタグ
|
||||||
|
tags = {
|
||||||
|
Name = "gp3-dev-ec2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# 終了保護(ここでは有効)
|
||||||
|
disable_api_termination = true
|
||||||
|
# アベイラビリティーゾーンの指定
|
||||||
|
availability_zone = "ap-northeast-1a"
|
||||||
|
# サブネットの指定 : NICの設定と重複するため不要
|
||||||
|
# subnet_id = aws_subnet.cmdb_public_1a_subnet.id
|
||||||
|
# ネットワークインターフェイスの指定
|
||||||
|
network_interface {
|
||||||
|
network_interface_id = aws_network_interface.cmdb_ni_web1.id
|
||||||
|
device_index = 0
|
||||||
|
}
|
||||||
|
# キーペアの指定
|
||||||
|
key_name = var.key_name
|
||||||
|
# インスタンスプロファイルの指定
|
||||||
|
iam_instance_profile = aws_iam_instance_profile.cmdb_ssm_instance_profile.name
|
||||||
|
# user dataの指定(CMDBのインストール)
|
||||||
|
user_data = file("install.sh")
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-ec2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
# ---------------------------
|
||||||
|
# IAMポリシー
|
||||||
|
# ---------------------------
|
||||||
|
# セッションマネージャー経由でEC2に接続できるようにする
|
||||||
|
# 信頼ポリシーの設定
|
||||||
|
data "aws_iam_policy_document" "cmdb_assume_role_for_ec2" {
|
||||||
|
statement {
|
||||||
|
actions = ["sts:AssumeRole"]
|
||||||
|
principals {
|
||||||
|
type = "Service"
|
||||||
|
identifiers = ["ec2.amazonaws.com"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# SSMの許可ポリシーを取得
|
||||||
|
data "aws_iam_policy" "cmdb_ssm_core" {
|
||||||
|
name = "AmazonSSMManagedInstanceCore"
|
||||||
|
}
|
||||||
|
|
||||||
|
# IAMロールの作成
|
||||||
|
resource "aws_iam_role" "cmdb_ssm_role" {
|
||||||
|
name = "cmdb-ssm-role"
|
||||||
|
assume_role_policy = data.aws_iam_policy_document.cmdb_assume_role_for_ec2.json
|
||||||
|
}
|
||||||
|
|
||||||
|
# ポリシーをロールにアタッチ
|
||||||
|
resource "aws_iam_role_policy_attachment" "cmdb_ssm_policy_attachment" {
|
||||||
|
role = aws_iam_role.cmdb_ssm_role.name
|
||||||
|
policy_arn = data.aws_iam_policy.cmdb_ssm_core.arn
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2に設定するためのインスタンスプロファイルを作成
|
||||||
|
resource "aws_iam_instance_profile" "cmdb_ssm_instance_profile" {
|
||||||
|
name = "cmdb-ssm-instance-profile"
|
||||||
|
role = aws_iam_role.cmdb_ssm_role.name
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
dnf update -y
|
||||||
|
dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel mariadb105 tree
|
||||||
|
|
||||||
|
wget http://ja.wordpress.org/latest-ja.tar.gz -P /tmp/
|
||||||
|
tar zxvf /tmp/latest-ja.tar.gz -C /tmp
|
||||||
|
cp -r /tmp/wordpress/* /var/www/html/
|
||||||
|
chown apache:apache -R /var/www/html
|
||||||
|
|
||||||
|
systemctl enable httpd.service
|
||||||
|
systemctl start httpd.service
|
||||||
|
|
||||||
|
dnf update
|
||||||
|
dnf -y install ansible
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
curl -O https://releases.hashicorp.com/terraform/1.9.5/terraform_1.9.5_linux_amd64.zip
|
||||||
|
unzip terraform_1.9.5_linux_amd64.zip
|
||||||
|
mv terraform /usr/local/bin/
|
||||||
|
terraform -install-autocomplete
|
||||||
|
chmod +x /usr/local/bin/terraform
|
||||||
|
|
||||||
|
dnf -y install docker
|
||||||
|
systemctl start docker
|
||||||
|
systemctl enable docker
|
||||||
|
usermod -a -G docker ec2-user
|
||||||
|
chgrp docker /var/run/docker.sock
|
||||||
|
|
||||||
|
mkdir -p /usr/local/bin/docker/cli-plugins
|
||||||
|
curl -SL https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64 -o /usr/local/bin/docker/cli-plugins/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker/cli-plugins/docker-compose
|
||||||
|
ln -s /usr/local/bin/docker/cli-plugins/docker-compose /usr/bin/docker-compose
|
||||||
|
|
||||||
|
localectl set-locale LANG=ja_JP.utf8
|
||||||
|
timedatectl set-timezone Asia/Tokyo
|
||||||
|
|
||||||
|
mkdir -p /opt/docker/jenkins
|
||||||
|
chown -R ec2-user:docker /opt/docker
|
||||||
|
cd /opt/docker
|
||||||
|
mkdir gitea
|
||||||
|
mkdir proxy
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
# ---------------------------
|
||||||
|
# プロバイダ設定
|
||||||
|
# ---------------------------
|
||||||
|
# AWS
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 自分のパブリックIP取得用
|
||||||
|
provider "http" {}
|
||||||
|
|
||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
aws = {
|
||||||
|
source = "hashicorp/aws"
|
||||||
|
version = "~> 5.54.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
# 作成したRDSのアドレスを出力
|
||||||
|
output "cmdb_rds_address" {
|
||||||
|
value = aws_db_instance.cmdb_rds.address
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
# ---------------------------
|
||||||
|
# RDS
|
||||||
|
# ---------------------------
|
||||||
|
# DBサブネットグループの作成
|
||||||
|
resource "aws_db_subnet_group" "cmdb_db_subnet_group" {
|
||||||
|
name = "cmdb-db-subnet-group"
|
||||||
|
subnet_ids = [
|
||||||
|
aws_subnet.cmdb_private_1a_subnet.id,
|
||||||
|
aws_subnet.cmdb_private_1c_subnet.id
|
||||||
|
]
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-db-subnet-group"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# RDSインスタンスの作成
|
||||||
|
resource "aws_db_instance" "cmdb_rds" {
|
||||||
|
identifier = "cmdb-rds"
|
||||||
|
# インスタンスクラス、ストレージサイズの指定
|
||||||
|
instance_class = "db.t3.micro"
|
||||||
|
allocated_storage = 20
|
||||||
|
# DBサブネットグループの指定
|
||||||
|
db_subnet_group_name = aws_db_subnet_group.cmdb_db_subnet_group.name
|
||||||
|
# セキュリティグループの指定
|
||||||
|
vpc_security_group_ids = [aws_security_group.cmdb_rds_sg.id]
|
||||||
|
# マルチAZインスタンスの設定
|
||||||
|
multi_az = false
|
||||||
|
# DBエンジンの指定
|
||||||
|
engine = "mysql"
|
||||||
|
engine_version = "8.0.35"
|
||||||
|
# DB情報の設定
|
||||||
|
db_name = "wordpress"
|
||||||
|
username = "admin"
|
||||||
|
password = "passw0rd!"
|
||||||
|
# 設定変更の即時反映
|
||||||
|
apply_immediately = true
|
||||||
|
# DB削除時にスナップショットを作成しない
|
||||||
|
skip_final_snapshot = true
|
||||||
|
# バックアップ保持期間(0に設定すると自動バックアップ無効)
|
||||||
|
backup_retention_period = "10"
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,196 @@
|
||||||
|
# ---------------------------
|
||||||
|
# VPC
|
||||||
|
# ---------------------------
|
||||||
|
resource "aws_vpc" "cmdb-vpc" {
|
||||||
|
cidr_block = "10.5.0.0/16"
|
||||||
|
enable_dns_hostnames = true # DNSホスト名を有効化
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-vpc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------
|
||||||
|
# サブネット
|
||||||
|
# ---------------------------
|
||||||
|
# パブリックサブネット1
|
||||||
|
resource "aws_subnet" "cmdb_public_1a_subnet" {
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
cidr_block = "10.5.1.0/24"
|
||||||
|
availability_zone = "ap-northeast-1a"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-public-1a-subnet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# パブリックサブネット2
|
||||||
|
resource "aws_subnet" "cmdb_public_1c_subnet" {
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
cidr_block = "10.5.3.0/24"
|
||||||
|
availability_zone = "ap-northeast-1c"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-public-1c-subnet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# プライベートサブネット1
|
||||||
|
resource "aws_subnet" "cmdb_private_1a_subnet" {
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
cidr_block = "10.5.2.0/24"
|
||||||
|
availability_zone = "ap-northeast-1a"
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-private-1a-subnet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# プライベートサブネット2
|
||||||
|
resource "aws_subnet" "cmdb_private_1c_subnet" {
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
cidr_block = "10.5.4.0/24"
|
||||||
|
availability_zone = "ap-northeast-1c"
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-private-1c-subnet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------
|
||||||
|
# インターネットゲートウェイ
|
||||||
|
# ---------------------------
|
||||||
|
resource "aws_internet_gateway" "cmdb_igw" {
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-igw"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------
|
||||||
|
# ルートテーブル
|
||||||
|
# ---------------------------
|
||||||
|
# パブリックサブネット用のルートテーブル
|
||||||
|
resource "aws_route_table" "cmdb_public_rtb" {
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
route {
|
||||||
|
cidr_block = "0.0.0.0/0"
|
||||||
|
gateway_id = aws_internet_gateway.cmdb_igw.id
|
||||||
|
}
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-public-rtb"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ルートテーブルの関連付け(パブリックサブネット1)
|
||||||
|
resource "aws_route_table_association" "cmdb_public_1a_rtb_associate" {
|
||||||
|
subnet_id = aws_subnet.cmdb_public_1a_subnet.id
|
||||||
|
route_table_id = aws_route_table.cmdb_public_rtb.id
|
||||||
|
}
|
||||||
|
|
||||||
|
# ルートテーブルの関連付け(パブリックサブネット2)
|
||||||
|
resource "aws_route_table_association" "cmdb_public_1c_rtb_associate" {
|
||||||
|
subnet_id = aws_subnet.cmdb_public_1c_subnet.id
|
||||||
|
route_table_id = aws_route_table.cmdb_public_rtb.id
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------
|
||||||
|
# セキュリティグループ
|
||||||
|
# ---------------------------
|
||||||
|
# EC2用
|
||||||
|
resource "aws_security_group" "cmdb_ec2_sg" {
|
||||||
|
name = "cmdb-ec2-sg"
|
||||||
|
description = "for ec2"
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-ec2-sg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# RDS用
|
||||||
|
resource "aws_security_group" "cmdb_rds_sg" {
|
||||||
|
name = "cmdb-rds-sg"
|
||||||
|
description = "for rds"
|
||||||
|
vpc_id = aws_vpc.cmdb-vpc.id
|
||||||
|
tags = {
|
||||||
|
Name = "cmdb-rds-sg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ---------------------------
|
||||||
|
# セキュリティグループルール
|
||||||
|
# ---------------------------
|
||||||
|
|
||||||
|
# EC2用インバウンドルール ssh
|
||||||
|
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_ssh" {
|
||||||
|
security_group_id = aws_security_group.cmdb_ec2_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
from_port = 22
|
||||||
|
to_port = 22
|
||||||
|
ip_protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2用インバウンドルール http
|
||||||
|
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_http" {
|
||||||
|
security_group_id = aws_security_group.cmdb_ec2_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
from_port = 80
|
||||||
|
to_port = 80
|
||||||
|
ip_protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2用インバウンドルール https
|
||||||
|
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_https" {
|
||||||
|
security_group_id = aws_security_group.cmdb_ec2_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
from_port = 443
|
||||||
|
to_port = 443
|
||||||
|
ip_protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2用インバウンドルール smtps
|
||||||
|
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_smtps" {
|
||||||
|
security_group_id = aws_security_group.cmdb_ec2_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
from_port = 465
|
||||||
|
to_port = 465
|
||||||
|
ip_protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2用インバウンドルール gitea
|
||||||
|
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_gitea" {
|
||||||
|
security_group_id = aws_security_group.cmdb_ec2_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
from_port = 3000
|
||||||
|
to_port = 3000
|
||||||
|
ip_protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2用インバウンドルール jenkins
|
||||||
|
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_jenkins" {
|
||||||
|
security_group_id = aws_security_group.cmdb_ec2_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
from_port = 3500
|
||||||
|
to_port = 3500
|
||||||
|
ip_protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# EC2用アウトバウンドルール any
|
||||||
|
resource "aws_vpc_security_group_egress_rule" "cmdb_ec2_sg_allow_all" {
|
||||||
|
security_group_id = aws_security_group.cmdb_ec2_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
ip_protocol = "-1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# RDS用インバウンドルール mysql
|
||||||
|
resource "aws_vpc_security_group_ingress_rule" "cmdb_rds_sg_allow_http" {
|
||||||
|
security_group_id = aws_security_group.cmdb_rds_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
from_port = 3306
|
||||||
|
to_port = 3306
|
||||||
|
ip_protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# RDS用アウトバウンドルール any
|
||||||
|
resource "aws_vpc_security_group_egress_rule" "cmdb_rds_sg_allow_all" {
|
||||||
|
security_group_id = aws_security_group.cmdb_rds_sg.id
|
||||||
|
cidr_ipv4 = "0.0.0.0/0"
|
||||||
|
ip_protocol = "-1"
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
|
||||||
|
parameters {
|
||||||
|
booleanParam(name: 'RUN_DEPLOY', defaultValue: true, description: 'true: run deploy / false: run destory')
|
||||||
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
AWS_ACCESS_KEY_ID = credentials('aws-access-key-id') // JenkinsのCredentialで設定したキー
|
||||||
|
AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key') // 同じくCredentialで設定したシークレットキー
|
||||||
|
}
|
||||||
|
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout(true)
|
||||||
|
}
|
||||||
|
stages{
|
||||||
|
stage("checkout") {
|
||||||
|
when {
|
||||||
|
expression { return params.RUN_DEPLOY }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// Iacコードを取得
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform init") {
|
||||||
|
when {
|
||||||
|
expression { return params.RUN_DEPLOY }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// 初期化
|
||||||
|
dir('CMDB'){
|
||||||
|
sh "terraform init"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform plan") {
|
||||||
|
when {
|
||||||
|
expression { return params.RUN_DEPLOY }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// 実行計画
|
||||||
|
dir('CMDB'){
|
||||||
|
sh "terraform plan -out=plan.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform apply") {
|
||||||
|
when {
|
||||||
|
expression { return params.RUN_DEPLOY }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// 実行
|
||||||
|
dir('CMDB'){
|
||||||
|
sh "terraform apply plan.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform destroy") {
|
||||||
|
when {
|
||||||
|
expression { return !params.RUN_DEPLOY }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
dir('CMDB') {
|
||||||
|
sh "terraform destroy -auto-approve"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
services:
|
||||||
|
gitea_app:
|
||||||
|
container_name: gitea_app
|
||||||
|
image: gitea/gitea:1.21.11
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
environment:
|
||||||
|
DB_TYPE: postgres
|
||||||
|
DB_HOST: gitea_db:5432
|
||||||
|
DB_NAME: gitea
|
||||||
|
DB_USER: gitea
|
||||||
|
DB_PASSWD: gitea
|
||||||
|
USER_UID: 1000
|
||||||
|
USER_GID: 1000
|
||||||
|
TZ: Asia/Tokyo
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
restart: always
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
networks:
|
||||||
|
- cmdb_net
|
||||||
|
gitea_db:
|
||||||
|
container_name: gitea_db
|
||||||
|
image: postgres:16.2-bullseye
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: gitea
|
||||||
|
POSTGRES_PASSWORD: gitea
|
||||||
|
POSTGRES_DB: gitea
|
||||||
|
TZ: Asia/Tokyo
|
||||||
|
volumes:
|
||||||
|
- ./db:/var/lib/postgresql/data
|
||||||
|
restart: always
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
networks:
|
||||||
|
- cmdb_net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
cmdb_net:
|
||||||
|
external: true
|
|
@ -0,0 +1,29 @@
|
||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdz
|
||||||
|
c2gtcnNhAAAAAwEAAQAAAQEAmWl8Vr19yjtWrIM5G1h1mPX3yJ8OYH0UstgVEEY4
|
||||||
|
g6uxqZvE3jm37NEve+zJZhs2QaNtA4LtXJkmgNUNEPyd6bsJAwr1dQ9Aessot3Tg
|
||||||
|
dfgjzxiEBCQeWlHp5tdmoqaOHGV7Hu8IVl6BUUOmhUkGaOkMBxAlnaG+/EA1u50h
|
||||||
|
r/kuAn+jl/WekKUhXDpcOFq9pBFgNrpHOH8TUQm1t5RxCxLvCwX9kizdWIEeNdr8
|
||||||
|
1G3azICO7jGJqw3IEISSYk8pIj6zqsBOAJT8zKP2xCOKH+a4S0d0jxIJ/TPDvy4l
|
||||||
|
wDFL9PtZ8QwciYyjnSVHj8dNwvCPU7Q6IAavmfbJvatkdQAAA7imsP9sprD/bAAA
|
||||||
|
AAdzc2gtcnNhAAABAQCZaXxWvX3KO1asgzkbWHWY9ffInw5gfRSy2BUQRjiDq7Gp
|
||||||
|
m8TeObfs0S977MlmGzZBo20Dgu1cmSaA1Q0Q/J3puwkDCvV1D0B6yyi3dOB1+CPP
|
||||||
|
GIQEJB5aUenm12aipo4cZXse7whWXoFRQ6aFSQZo6QwHECWdob78QDW7nSGv+S4C
|
||||||
|
f6OX9Z6QpSFcOlw4Wr2kEWA2ukc4fxNRCbW3lHELEu8LBf2SLN1YgR412vzUbdrM
|
||||||
|
gI7uMYmrDcgQhJJiTykiPrOqwE4AlPzMo/bEI4of5rhLR3SPEgn9M8O/LiXAMUv0
|
||||||
|
+1nxDByJjKOdJUePx03C8I9TtDogBq+Z9sm9q2R1AAAAAwEAAQAAAQATQq8dpMS6
|
||||||
|
MyD6n673w+9fuOHXCkEf1BRZL8/VLzvBLDkt9iSNUenJjanMgTn328rACuiQ3Es4
|
||||||
|
qPGwkw8E5vJceeLzwth2TefmgsMl5UKZDQJR6d4JNw+of0hCdyCnowmMfyEqDRCa
|
||||||
|
51qM/VVWvohTe47LBDf0xm3X9afJWjz0fr6F7On4jhwNKEG2WvgTcHYRU+bD7/es
|
||||||
|
9zroI35/+Crdwz73Yl0uRslcPgcHZuC/UMQT09fr8ch/oxpgc+lkdNhf6LLdjQWB
|
||||||
|
m7rryXBO8atY7yaCkamy9k1QWMGbrb26AUULbYF/zb9s0/DeaPcmPdNYgSye6Rmz
|
||||||
|
7dVT7OgEaeixAAAAgD3Ie0lzBM0z9MwG59p5OZvfAUMexcSnn6aBg6ICe3lk8Qkk
|
||||||
|
KYR5TuKN7UcXbPKAHVsxq7j/sw31zK65ZFQhl6HzuguekPS8F0h6BMtVVPyoQrhh
|
||||||
|
9gk2gANuDfBhDCEdmjzQ8ztLjyTr6o2HMSJsierCt+AtKS01m1RFxKeXo8fdAAAA
|
||||||
|
gQDKoeXFgy8ThgCFtlIG4OJ9E/w4sNqY58WjpIq5YQm8KynbNmtEeSxzD7TMHhi0
|
||||||
|
Sgl+8GZA8aTob6/MPurukuawpHzDIagc/gWRD8ch9/KOfQCN0gYxsfU1XLLS2vsE
|
||||||
|
emXh+Ikm47LibybvhU/YsGHIB1NruaLELurfbl9xKml6owAAAIEAwdD/7BlA3JTG
|
||||||
|
vkoKO8D9PuOnYkUSt/5e1p28YihJZ6dX0WpHsfvhcAoXww0+2zPZnM5Kecz0iMt/
|
||||||
|
BokY5eIhga1jxEjhVkOcWPXZ12Yz5gZiQ0+OyYCk2WXyQcW6nZvyhZfPAziugFbG
|
||||||
|
2Ts+67lImZKnD3AS72BCep3FBaX9bgcAAAAAAQID
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
|
@ -0,0 +1,21 @@
|
||||||
|
FROM jenkins/jenkins:2.489-jdk17
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y openssh-server sshpass openssl curl wget gpg ansible awscli
|
||||||
|
|
||||||
|
# terraform インストール
|
||||||
|
RUN wget https://releases.hashicorp.com/terraform/1.9.5/terraform_1.9.5_linux_amd64.zip && \
|
||||||
|
unzip terraform_1.9.5_linux_amd64.zip && \
|
||||||
|
mv terraform /usr/local/bin/ && \
|
||||||
|
terraform -install-autocomplete
|
||||||
|
|
||||||
|
# tool-version
|
||||||
|
RUN ansible --version && \
|
||||||
|
terraform --version
|
||||||
|
|
||||||
|
USER jenkins
|
||||||
|
ENV JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Tokyo"
|
||||||
|
COPY --chown=jenkins:jenkins plugins.txt /usr/share/jenkins/ref/plugins.txt
|
||||||
|
RUN jenkins-plugin-cli -f /usr/share/jenkins/ref/plugins.txt
|
|
@ -0,0 +1,24 @@
|
||||||
|
services:
|
||||||
|
jenkins_app:
|
||||||
|
container_name: jenkins_app
|
||||||
|
build: .
|
||||||
|
image: jenkins/iac
|
||||||
|
ports:
|
||||||
|
- "3500:8080"
|
||||||
|
volumes:
|
||||||
|
- ./jenkins_home:/var/jenkins_home
|
||||||
|
- ./hosts:/etc/hosts
|
||||||
|
environment:
|
||||||
|
TZ: Asia/Tokyo
|
||||||
|
JENKINS_OPTS: --sessionTimeout=1440
|
||||||
|
restart: always
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
networks:
|
||||||
|
- cmdb_net
|
||||||
|
networks:
|
||||||
|
cmdb_net:
|
||||||
|
external: true
|
|
@ -0,0 +1,10 @@
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost ip6-localhost ip6-loopback
|
||||||
|
fe00::0 ip6-localnet
|
||||||
|
ff00::0 ip6-mcastprefix
|
||||||
|
ff02::1 ip6-allnodes
|
||||||
|
ff02::2 ip6-allrouters
|
||||||
|
192.168.10.5 0df513804375
|
||||||
|
|
||||||
|
10.1.5.19 aws-handson-gitea.com
|
||||||
|
10.1.5.19 aws-handson-jenkins.com
|
|
@ -0,0 +1,3 @@
|
||||||
|
terraform:1.0.10
|
||||||
|
pipeline-aws:1.45
|
||||||
|
ansible:403.v8d0ca_dcb_b_502
|
|
@ -0,0 +1,6 @@
|
||||||
|
docker network create \
|
||||||
|
--subnet 192.168.10.0/24 \
|
||||||
|
--gateway 192.168.10.1 \
|
||||||
|
-o 'com.docker.network.bridge.name=cmdb_net' \
|
||||||
|
cmdb_net
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name ec2-35-78-220-30.ap-northeast-1.compute.amazonaws.com
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
|
# タイムアウトの設定
|
||||||
|
proxy_connect_timeout 60;
|
||||||
|
proxy_read_timeout 90;
|
||||||
|
proxy_send_timeout 60;
|
||||||
|
|
||||||
|
# バッファサイズの設定
|
||||||
|
proxy_buffering on;
|
||||||
|
proxy_buffer_size 8k;
|
||||||
|
proxy_buffers 100 8k;
|
||||||
|
|
||||||
|
# バックエンド転送
|
||||||
|
location / {
|
||||||
|
proxy_pass http://gitea_app:3000;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Server $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name aws-handson-gitea.com;
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
|
# タイムアウトの設定
|
||||||
|
proxy_connect_timeout 60;
|
||||||
|
proxy_read_timeout 90;
|
||||||
|
proxy_send_timeout 60;
|
||||||
|
|
||||||
|
# バッファサイズの設定
|
||||||
|
proxy_buffering on;
|
||||||
|
proxy_buffer_size 8k;
|
||||||
|
proxy_buffers 100 8k;
|
||||||
|
client_max_body_size 100M;
|
||||||
|
|
||||||
|
# バックエンド転送
|
||||||
|
location / {
|
||||||
|
proxy_pass http://gitea_app:3000;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_cookie_domain localhost devops-tec-jenkins.wb.local;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Server $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name 35.78.220.30
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
|
# タイムアウトの設定
|
||||||
|
proxy_connect_timeout 60;
|
||||||
|
proxy_read_timeout 90;
|
||||||
|
proxy_send_timeout 60;
|
||||||
|
|
||||||
|
# バッファサイズの設定
|
||||||
|
proxy_buffering on;
|
||||||
|
proxy_buffer_size 8k;
|
||||||
|
proxy_buffers 100 8k;
|
||||||
|
|
||||||
|
# バックエンド転送
|
||||||
|
location / {
|
||||||
|
proxy_pass http://gitea_app:3000;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Server $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name aws-handson-jenkins.com;
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
|
# タイムアウトの設定
|
||||||
|
proxy_connect_timeout 60;
|
||||||
|
proxy_read_timeout 90;
|
||||||
|
proxy_send_timeout 60;
|
||||||
|
|
||||||
|
# バッファサイズの設定
|
||||||
|
proxy_buffering on;
|
||||||
|
proxy_buffer_size 8k;
|
||||||
|
proxy_buffers 100 8k;
|
||||||
|
|
||||||
|
# バックエンド転送
|
||||||
|
location / {
|
||||||
|
proxy_pass http://jenkins_app:8080;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-Server $host;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
user nginx;
|
||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
#error_log /var/log/nginx/error.log notice;
|
||||||
|
error_log /dev/stderr warn;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
client_max_body_size 1048576; # default 1m
|
||||||
|
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
#access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
|
log_format addHeaderlog '$remote_addr - $remote_user [$time_local] '
|
||||||
|
'"$request" $status $body_bytes_sent '
|
||||||
|
'"$http_referer" "$http_user_agent" "$http_x_forwarded_for" "$request_body" "$http_Authorization" "$http_x_my_header1" "$http_x_my_header2"'
|
||||||
|
'"$http_my_header1" "$http_my_header2" '
|
||||||
|
'"$http_user_agent" cookie[$http_cookie]';
|
||||||
|
|
||||||
|
access_log /dev/stdout addHeaderlog;
|
||||||
|
|
||||||
|
|
||||||
|
#sendfile on;
|
||||||
|
#tcp_nopush on;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
server_names_hash_bucket_size 128;
|
||||||
|
#gzip on;
|
||||||
|
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
services:
|
||||||
|
reverse-proxy:
|
||||||
|
container_name: reverse-proxy
|
||||||
|
image: nginx:1.25.3-alpine3.18
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
volumes:
|
||||||
|
- ./conf/nginx.conf:/etc/nginx/nginx.conf
|
||||||
|
- ./conf/conf.d:/etc/nginx/conf.d
|
||||||
|
networks:
|
||||||
|
- cmdb_net
|
||||||
|
restart: always
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
###command: [nginx-debug, '-g', 'daemon off;']
|
||||||
|
networks:
|
||||||
|
cmdb_net:
|
||||||
|
external: true
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA5DF6KE+ge31ihaknIv2VriHUSq9IJ9Xl5dJwHTrB+nOhInJE
|
||||||
|
dYaiFJyvUWurspBopZZBsyOLVPr/J0BO6WIT8bPGtE0ia2DVdP1g+Jisq9pPo99b
|
||||||
|
UbH5YjxE2g37cxEG/lmUjarjnrwisPRklxYTwcsxPNquhG0jqYkUDjqCrX+VfFXh
|
||||||
|
WaIANtVxaqBT/MVIpOf71N0OH/9HHI6vhge7YWSDP0znI86t7L/KNKS3yZHdxcPB
|
||||||
|
M/wh2iniBNledT5HA2KlA2QGxKPC3KoH6/vwIXetkY7CQqtnYly8ggnfjBkHQLWq
|
||||||
|
1IeyaW23brcRqzya+CH2JRtm22oZOJAZNgnlsQIDAQABAoIBAC/JHKesZRL3ItaS
|
||||||
|
oZt2Nw4MD4TER/vvkwEZnFjCoTRtWmT4QNXLp81hMmV+gqoWC5QBbyiwXNEi7qOt
|
||||||
|
l9jPrRWEbCv9qyOJV6n0FYZ5kk86nErYzyrAdlTYAiMXonxqKGjDIZS5IIlxJGKi
|
||||||
|
Cx6IhQKkJl9z++/HWxx5lDWWkx75n1fyVt8cZRJQZQusvFn40+eqQI6XGBLesK2e
|
||||||
|
IRvAEoDR8h2iUaryexebOorqz3rT/TJb+1zJEDfsd+0eAiglPtO8ZQatVHedDgZw
|
||||||
|
7cCzpGOenaFHdbIQOxmxrlBrMnO0qvgOm/hLF5o8zQmbkP/bGTzAOjOpANYDgx5+
|
||||||
|
bklquAECgYEA/xwwnCQMQ/AttnqdZQHngpGM+eNGaMwvNId1cxmbCloQH49TP3Kh
|
||||||
|
yEXMvk8y1PzSQXSlXISy86QwvW44hg9in+tAzCGZ+Z49UUO6gdGDYCb/goqcYtdF
|
||||||
|
MfvRha9UA+zviaW2wEDDRQJs5Se1oQwbnH1RsG6uuwl93XBMmU0FgpECgYEA5P1A
|
||||||
|
Olz+o5pYNC8G4zcOwo8/sd4L0H3+HiROAwKsviTeS6tqaNf4x1HrxNLqV7Bntw82
|
||||||
|
diFJryAGIOcZu7S8aJ/LbiB+20pV7GvQVOcJN9+NaOJKgsIQh70Bs2OVDIOlX9Iu
|
||||||
|
OJGyEwUtTgRKI8e3i1p6fGgYRhCqoHk3/pt5gSECgYBSVSe/DMdEmdw2+2WWtsGf
|
||||||
|
2xezgk0z/0nw2xLlvcrS0XRIqzoDzRw3hYdpmCfgo2O8KkhADreueDwettbZNVfw
|
||||||
|
Ir2749BMxmwlsQUdZp/OxWdLGy8Tm0RCuHHLgmVMCwjX1LqhW4Vp3TmFz4YH3t9+
|
||||||
|
ZteZaG9N/+c2M0sVYs03cQKBgQCpuSek2o6GNn0P2JdTS9itzj0YmYrKMshqEOCd
|
||||||
|
jJr6qBr3nQrWwNUM7yRAE1BMRFzrKuRj9FJH8gV417GUFebb6Sx/6Kf944ACJvsY
|
||||||
|
ItILTq/iQG+XsT1NToL3MmUkDGNDvWYy2ZJSVLD6tWU6Veot6JcGpKTxMaM2JAKj
|
||||||
|
vRr24QKBgG8g0A8ghAz9elMkYFXBdRe+1HLNxJPqUunAKaAbJeCqAgrC0XEIZKVc
|
||||||
|
UJoe0kUnFmVdvOQwFNZJShLSXPGH2GzASk5h2qLI7BjUoHAC7QROpxnMRC8b/b23
|
||||||
|
Q6txYN27X7D0y1UG+pvK0pDxbYB+CR+tLwruGLMFeFrv74qqVXTM
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
- name: copy_file
|
||||||
|
hosts: localhost
|
||||||
|
become: true
|
||||||
|
vars_files: copy_info.yml
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: copy
|
||||||
|
copy:
|
||||||
|
src: /home/ec2-user/ansible/ansible
|
||||||
|
dest: "/home/{{ item }}/hands-on/"
|
||||||
|
group: hands-on
|
||||||
|
owner: "{{ item }}"
|
||||||
|
mode: 0644
|
||||||
|
with_items: "{{ user }}"
|
||||||
|
|
||||||
|
- name: copy
|
||||||
|
copy:
|
||||||
|
src: /home/ec2-user/ansible/.ssh
|
||||||
|
dest: "/home/{{ item }}/"
|
||||||
|
group: hands-on
|
||||||
|
owner: "{{ item }}"
|
||||||
|
mode: 0700
|
||||||
|
with_items: "{{ user }}"
|
|
@ -0,0 +1,15 @@
|
||||||
|
user:
|
||||||
|
- user01
|
||||||
|
- user02
|
||||||
|
- user03
|
||||||
|
- user04
|
||||||
|
- user05
|
||||||
|
- user06
|
||||||
|
- user07
|
||||||
|
- user08
|
||||||
|
- user09
|
||||||
|
- user10
|
||||||
|
- user11
|
||||||
|
- user12
|
||||||
|
- user13
|
||||||
|
|
|
@ -0,0 +1,197 @@
|
||||||
|
---
|
||||||
|
- name: create_ec2
|
||||||
|
hosts: localhost
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Create EC2 instances 1
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web1
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.151"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web1
|
||||||
|
|
||||||
|
- name: Create EC2 instances 2
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web2
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.152"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web2
|
||||||
|
|
||||||
|
- name: Create EC2 instances 3
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web3
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.153"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web3
|
||||||
|
|
||||||
|
- name: Create EC2 instances 4
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web4
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.154"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web4
|
||||||
|
|
||||||
|
- name: Create EC2 instances 5
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web5
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.155"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web5
|
||||||
|
|
||||||
|
- name: Create EC2 instances 6
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web6
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.156"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web6
|
||||||
|
|
||||||
|
- name: Create EC2 instances 7
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web7
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.157"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web7
|
||||||
|
|
||||||
|
- name: Create EC2 instances 8
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web8
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.158"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web8
|
||||||
|
|
||||||
|
- name: Create EC2 instances 9
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web9
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.159"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web9
|
||||||
|
|
||||||
|
- name: Create EC2 instances 10
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web10
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.160"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web10
|
||||||
|
|
||||||
|
- name: Create EC2 instances 11
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web11
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.161"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web11
|
||||||
|
|
||||||
|
- name: Create EC2 instances 12
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web12
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.162"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web12
|
|
@ -0,0 +1,197 @@
|
||||||
|
---
|
||||||
|
- name: create_ec2
|
||||||
|
hosts: localhost
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Create EC2 instances 21
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web21
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.171"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web21
|
||||||
|
|
||||||
|
- name: Create EC2 instances 22
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web22
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.172"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web22
|
||||||
|
|
||||||
|
- name: Create EC2 instances 23
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web23
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.173"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web23
|
||||||
|
|
||||||
|
- name: Create EC2 instances 24
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web24
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.174"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web24
|
||||||
|
|
||||||
|
- name: Create EC2 instances 25
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web25
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.175"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web25
|
||||||
|
|
||||||
|
- name: Create EC2 instances 26
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web26
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.176"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web26
|
||||||
|
|
||||||
|
- name: Create EC2 instances 27
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web27
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.177"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web27
|
||||||
|
|
||||||
|
- name: Create EC2 instances 28
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web28
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.178"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web28
|
||||||
|
|
||||||
|
- name: Create EC2 instances 29
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web29
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.179"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web29
|
||||||
|
|
||||||
|
- name: Create EC2 instances 30
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web30
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.180"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web30
|
||||||
|
|
||||||
|
- name: Create EC2 instances 31
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web31
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.181"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web31
|
||||||
|
|
||||||
|
- name: Create EC2 instances 32
|
||||||
|
amazon.aws.ec2_instance:
|
||||||
|
name: ansible_ec2_web32
|
||||||
|
instance_type: t2.micro
|
||||||
|
image_id: ami-0525a3bbe44c34cbf
|
||||||
|
key_name: hands-on_ansible
|
||||||
|
region: ap-northeast-1
|
||||||
|
vpc_subnet_id: subnet-0689f38f21f538a55
|
||||||
|
security_group: jenkins-ec2-sg
|
||||||
|
network:
|
||||||
|
assign_public_ip: yes
|
||||||
|
private_ip_address: "10.1.5.182"
|
||||||
|
device_index: 0
|
||||||
|
tags:
|
||||||
|
Name: ansible-ec2-web32
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
- name: del_user
|
||||||
|
hosts: localhost
|
||||||
|
become: true
|
||||||
|
vars_files: localhost.yml
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: del_user
|
||||||
|
user:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
state: absent
|
||||||
|
remove: yes
|
||||||
|
with_items: "{{ user }}"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,3 @@
|
||||||
|
ansible_ssh_port: 22
|
||||||
|
ansible_user: ec2-user
|
||||||
|
ansible_ssh_private_key_file: ~/.ssh/hands-on_ansible.pem
|
|
@ -0,0 +1,5 @@
|
||||||
|
[web]
|
||||||
|
10.1.5.162
|
||||||
|
|
||||||
|
[web2]
|
||||||
|
10.1.5.160
|
|
@ -0,0 +1 @@
|
||||||
|
halo wld
|
|
@ -0,0 +1,50 @@
|
||||||
|
user:
|
||||||
|
- name: ansible_user01
|
||||||
|
password: ansible01
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6001
|
||||||
|
|
||||||
|
- name: ansible_user02
|
||||||
|
password: ansible02
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6002
|
||||||
|
|
||||||
|
- name: ansible_user03
|
||||||
|
password: ansible03
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6003
|
||||||
|
|
||||||
|
- name: ansible_user04
|
||||||
|
password: ansible04
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6004
|
||||||
|
|
||||||
|
- name: ansible_user05
|
||||||
|
password: ansible05
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6005
|
||||||
|
|
||||||
|
- name: ansible_user06
|
||||||
|
password: ansible06
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6006
|
||||||
|
|
||||||
|
- name: ansible_user07
|
||||||
|
password: ansible07
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6007
|
||||||
|
|
||||||
|
- name: ansible_user08
|
||||||
|
password: ansible08
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6008
|
||||||
|
|
||||||
|
- name: ansible_user09
|
||||||
|
password: ansible09
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6009
|
||||||
|
|
||||||
|
- name: ansible_user10
|
||||||
|
password: ansible10
|
||||||
|
group: hands-on_ansible
|
||||||
|
uid: 6010
|
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
- name: add_user
|
||||||
|
hosts: localhost
|
||||||
|
become: true
|
||||||
|
vars_files: localhost.yml
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: add_user
|
||||||
|
user:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
password: " {{ item.password | password_hash('sha512') }}"
|
||||||
|
group: "{{ item.group }}"
|
||||||
|
uid: "{{ item.uid }}"
|
||||||
|
with_items: "{{ user }}"
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
- name: ping
|
||||||
|
hosts: web2
|
||||||
|
become: true
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: ping
|
||||||
|
ping:
|
||||||
|
register: ping_result
|
||||||
|
|
||||||
|
- name: debug
|
||||||
|
debug:
|
||||||
|
var: ping_result
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
- name: install httpd
|
||||||
|
hosts: web
|
||||||
|
become: true
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: install httpd
|
||||||
|
dnf:
|
||||||
|
name:
|
||||||
|
- httpd-2.4.58
|
||||||
|
|
||||||
|
- name: start apache
|
||||||
|
systemd:
|
||||||
|
name: httpd
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
- name: install httpd
|
||||||
|
hosts: web
|
||||||
|
become: true
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Copy web page
|
||||||
|
copy:
|
||||||
|
src: ./index.html
|
||||||
|
dest: /var/www/html/
|
||||||
|
owner: apache
|
||||||
|
group: apache
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: restart apache
|
||||||
|
systemd:
|
||||||
|
name: httpd
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
|
@ -0,0 +1,3 @@
|
||||||
|
[default]
|
||||||
|
region = ap-northeast-1
|
||||||
|
output = json
|
|
@ -0,0 +1,3 @@
|
||||||
|
[default]
|
||||||
|
aws_access_key_id = AKIARMLXVAFFKKUBZBJ6
|
||||||
|
aws_secret_access_key = 6ad3t9GXurI1xU6iIQIDkqc4LiQCPq4S4NcUVXIE
|
|
@ -0,0 +1,24 @@
|
||||||
|
# This file is maintained automatically by "terraform init".
|
||||||
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/aws" {
|
||||||
|
version = "5.81.0"
|
||||||
|
hashes = [
|
||||||
|
"h1:Z3G9/bESudmrRsgGrLYQbVfNOQcSYGO3uqTtMBeIxhY=",
|
||||||
|
"zh:05534adf6f02d6ec26dbeb37a4d2b6edb63f12dc9ab5cc05ab89329fcd793194",
|
||||||
|
"zh:1d224056866abc4c8f893d55bc6493b73688126fbeaf017ecfbcf5d2f16649c4",
|
||||||
|
"zh:486d28a0a4af2ea23964a8e9087d66e8d794e3438976633b8554684a9237499d",
|
||||||
|
"zh:4bc17c2e93034099b64eb94eaea31b48888b6abdf170e26cf0f6ea734926084c",
|
||||||
|
"zh:5c48c8e82fa8c410499eaa5980c0ebcf6a42360742dfd695393eb9b0bffd4232",
|
||||||
|
"zh:60c387caa94d67e0b768f5874abbd103638c4c9b14073b6cd121018efdfc77bc",
|
||||||
|
"zh:72ddd5e5e07aac1c1c54659df238e6490aac3abbd2e4f13ccf7a9d877c2e2d0f",
|
||||||
|
"zh:8b03d7c4e23a51c9d323f24784d6bfd044f03e6e512df8d458abc97c943a3d3e",
|
||||||
|
"zh:93b6a3c3299fc67d349f8ab80a9b6b65e0e9f3a7e7ea3da0cd87e3ca3b48137b",
|
||||||
|
"zh:9982fc3885797ee97aa45ac7eba0fe6870220748bfa3091141ff513dd7583809",
|
||||||
|
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||||
|
"zh:b7d60f8527dbffe11c83a05b63459d18fda921616242246a73cf3044b8732bcf",
|
||||||
|
"zh:be7a57524298df3c377cdd676e691500277a423ac50f7b33dd02b7d6f4e924fd",
|
||||||
|
"zh:c6ae0b1510804c705aab99659f228bdbafa663fa72ace50c811c0b9220c7dafb",
|
||||||
|
"zh:cdf524a269b4aeb5b1f081d91f54bae967ad50d9c392073a0db1602166a48dff",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
## プロバイダの指定
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1" # 東京リージョン
|
||||||
|
}
|
||||||
|
# EC2インスタンスの作成(Web1)
|
||||||
|
resource "aws_instance" "iac_web1" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00" # AMIの指定 (AmazonLinux2023)
|
||||||
|
instance_type = "t3.micro" # インスタンスタイプの指定
|
||||||
|
availability_zone = "ap-northeast-1a" # アベイラビリティーゾーンの指定
|
||||||
|
tags = {
|
||||||
|
Name = "iac_web1" # タグ名の指定
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# EC2インスタンスの作成(Web2)
|
||||||
|
resource "aws_instance" "iac_web2" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00" # AMIの指定 (AmazonLinux2023)
|
||||||
|
instance_type = "t3.micro" # インスタンスタイプの指定
|
||||||
|
availability_zone = "ap-northeast-1a" # アベイラビリティーゾーンの指定
|
||||||
|
tags = {
|
||||||
|
Name = "iac_web2" # タグ名の指定
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
# This file is maintained automatically by "terraform init".
|
||||||
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/aws" {
|
||||||
|
version = "5.81.0"
|
||||||
|
hashes = [
|
||||||
|
"h1:Z3G9/bESudmrRsgGrLYQbVfNOQcSYGO3uqTtMBeIxhY=",
|
||||||
|
"zh:05534adf6f02d6ec26dbeb37a4d2b6edb63f12dc9ab5cc05ab89329fcd793194",
|
||||||
|
"zh:1d224056866abc4c8f893d55bc6493b73688126fbeaf017ecfbcf5d2f16649c4",
|
||||||
|
"zh:486d28a0a4af2ea23964a8e9087d66e8d794e3438976633b8554684a9237499d",
|
||||||
|
"zh:4bc17c2e93034099b64eb94eaea31b48888b6abdf170e26cf0f6ea734926084c",
|
||||||
|
"zh:5c48c8e82fa8c410499eaa5980c0ebcf6a42360742dfd695393eb9b0bffd4232",
|
||||||
|
"zh:60c387caa94d67e0b768f5874abbd103638c4c9b14073b6cd121018efdfc77bc",
|
||||||
|
"zh:72ddd5e5e07aac1c1c54659df238e6490aac3abbd2e4f13ccf7a9d877c2e2d0f",
|
||||||
|
"zh:8b03d7c4e23a51c9d323f24784d6bfd044f03e6e512df8d458abc97c943a3d3e",
|
||||||
|
"zh:93b6a3c3299fc67d349f8ab80a9b6b65e0e9f3a7e7ea3da0cd87e3ca3b48137b",
|
||||||
|
"zh:9982fc3885797ee97aa45ac7eba0fe6870220748bfa3091141ff513dd7583809",
|
||||||
|
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||||
|
"zh:b7d60f8527dbffe11c83a05b63459d18fda921616242246a73cf3044b8732bcf",
|
||||||
|
"zh:be7a57524298df3c377cdd676e691500277a423ac50f7b33dd02b7d6f4e924fd",
|
||||||
|
"zh:c6ae0b1510804c705aab99659f228bdbafa663fa72ace50c811c0b9220c7dafb",
|
||||||
|
"zh:cdf524a269b4aeb5b1f081d91f54bae967ad50d9c392073a0db1602166a48dff",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,175 @@
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_vpc" "demo_vpc_main" {
|
||||||
|
cidr_block = "10.9.0.0/16"
|
||||||
|
enable_dns_support = true
|
||||||
|
enable_dns_hostnames = true
|
||||||
|
tags = {
|
||||||
|
Name = "demo_vpc_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "demo_subnet_public_1" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
cidr_block = "10.9.1.0/24"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
availability_zone = "ap-northeast-1a"
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_subnet_public_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "demo_subnet_public_2" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
cidr_block = "10.9.2.0/24"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
availability_zone = "ap-northeast-1c"
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_subnet_public_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_internet_gateway" "demo_igw_main" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
tags = {
|
||||||
|
Name = "demo_igw_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table" "demo_route_table_main" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
route {
|
||||||
|
cidr_block = "0.0.0.0/0"
|
||||||
|
gateway_id = aws_internet_gateway.demo_igw_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_route_table_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table_association" "demo_assoc_public_1" {
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_1.id
|
||||||
|
route_table_id = aws_route_table.demo_route_table_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table_association" "demo_assoc_public_2" {
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_2.id
|
||||||
|
route_table_id = aws_route_table.demo_route_table_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_security_group" "demo_sg_web" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
ingress {
|
||||||
|
from_port = 80
|
||||||
|
to_port = 80
|
||||||
|
protocol = "tcp"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
|
||||||
|
egress {
|
||||||
|
from_port = 0
|
||||||
|
to_port = 0
|
||||||
|
protocol = "-1"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_sg_web"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "demo_web_1" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00"
|
||||||
|
instance_type = "t2.micro"
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_1.id
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
|
||||||
|
user_data = <<-EOF
|
||||||
|
#!/bin/bash
|
||||||
|
yum update -y
|
||||||
|
yum install -y httpd
|
||||||
|
echo "<html><body><h1>Terraformで作成されたWebサーバ1</h1></body></html>" > /var/www/html/index.html
|
||||||
|
systemctl enable httpd
|
||||||
|
systemctl start httpd
|
||||||
|
EOF
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_web_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "demo_web_2" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00"
|
||||||
|
instance_type = "t2.micro"
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_2.id
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
|
||||||
|
user_data = <<-EOF
|
||||||
|
#!/bin/bash
|
||||||
|
yum update -y
|
||||||
|
yum install -y httpd
|
||||||
|
echo "<html><body><h1>Terraformで作成されたWebサーバ2</h1></body></html>" > /var/www/html/index.html
|
||||||
|
systemctl enable httpd
|
||||||
|
systemctl start httpd
|
||||||
|
EOF
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_web_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb" "demo_lb_main" {
|
||||||
|
name = "demo-lb-main"
|
||||||
|
internal = false
|
||||||
|
load_balancer_type = "application"
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
subnets = [
|
||||||
|
aws_subnet.demo_subnet_public_1.id,
|
||||||
|
aws_subnet.demo_subnet_public_2.id
|
||||||
|
]
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_lb_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group" "demo_tg_web" {
|
||||||
|
name = "demo-tg-web"
|
||||||
|
port = 80
|
||||||
|
protocol = "HTTP"
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_tg_web"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group_attachment" "demo_attach_web_1" {
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
target_id = aws_instance.demo_web_1.id
|
||||||
|
port = 80
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group_attachment" "demo_attach_web_2" {
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
target_id = aws_instance.demo_web_2.id
|
||||||
|
port = 80
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_listener" "demo_listener_http" {
|
||||||
|
load_balancer_arn = aws_lb.demo_lb_main.arn
|
||||||
|
port = 80
|
||||||
|
protocol = "HTTP"
|
||||||
|
|
||||||
|
default_action {
|
||||||
|
type = "forward"
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,175 @@
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_vpc" "demo_vpc_main" {
|
||||||
|
cidr_block = "10.9.0.0/16"
|
||||||
|
enable_dns_support = true
|
||||||
|
enable_dns_hostnames = true
|
||||||
|
tags = {
|
||||||
|
Name = "demo_vpc_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "demo_subnet_public_1" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
cidr_block = "10.9.1.0/24"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
availability_zone = "ap-northeast-1a"
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_subnet_public_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "demo_subnet_public_2" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
cidr_block = "10.9.2.0/24"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
availability_zone = "ap-northeast-1c"
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_subnet_public_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_internet_gateway" "demo_igw_main" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
tags = {
|
||||||
|
Name = "demo_igw_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table" "demo_route_table_main" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
route {
|
||||||
|
cidr_block = "0.0.0.0/0"
|
||||||
|
gateway_id = aws_internet_gateway.demo_igw_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_route_table_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table_association" "demo_assoc_public_1" {
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_1.id
|
||||||
|
route_table_id = aws_route_table.demo_route_table_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table_association" "demo_assoc_public_2" {
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_2.id
|
||||||
|
route_table_id = aws_route_table.demo_route_table_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_security_group" "demo_sg_web" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
ingress {
|
||||||
|
from_port = 80
|
||||||
|
to_port = 80
|
||||||
|
protocol = "tcp"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
|
||||||
|
egress {
|
||||||
|
from_port = 0
|
||||||
|
to_port = 0
|
||||||
|
protocol = "-1"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_sg_web"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "demo_web_1" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00"
|
||||||
|
instance_type = "t2.micro"
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_1.id
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
|
||||||
|
user_data = <<-EOF
|
||||||
|
#!/bin/bash
|
||||||
|
yum update -y
|
||||||
|
yum install -y httpd
|
||||||
|
echo "<html><body><h1>Terraformで作成されたWebサーバ1</h1></body></html>" > /var/www/html/index.html
|
||||||
|
systemctl enable httpd
|
||||||
|
systemctl start httpd
|
||||||
|
EOF
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_web_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "demo_web_2" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00"
|
||||||
|
instance_type = "t2.micro"
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_2.id
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
|
||||||
|
user_data = <<-EOF
|
||||||
|
#!/bin/bash
|
||||||
|
yum update -y
|
||||||
|
yum install -y httpd
|
||||||
|
echo "<html><body><h1>Terraformで作成されたWebサーバ2</h1></body></html>" > /var/www/html/index.html
|
||||||
|
systemctl enable httpd
|
||||||
|
systemctl start httpd
|
||||||
|
EOF
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_web_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb" "demo_lb_main" {
|
||||||
|
name = "demo-lb-main"
|
||||||
|
internal = false
|
||||||
|
load_balancer_type = "application"
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
subnets = [
|
||||||
|
aws_subnet.demo_subnet_public_1.id,
|
||||||
|
aws_subnet.demo_subnet_public_2.id
|
||||||
|
]
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_lb_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group" "demo_tg_web" {
|
||||||
|
name = "demo-tg-web"
|
||||||
|
port = 80
|
||||||
|
protocol = "HTTP"
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_tg_web"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group_attachment" "demo_attach_web_1" {
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
target_id = aws_instance.demo_web_1.id
|
||||||
|
port = 80
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group_attachment" "demo_attach_web_2" {
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
target_id = aws_instance.demo_web_2.id
|
||||||
|
port = 80
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_listener" "demo_listener_http" {
|
||||||
|
load_balancer_arn = aws_lb.demo_lb_main.arn
|
||||||
|
port = 80
|
||||||
|
protocol = "HTTP"
|
||||||
|
|
||||||
|
default_action {
|
||||||
|
type = "forward"
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"terraform_version": "1.9.5",
|
||||||
|
"serial": 96,
|
||||||
|
"lineage": "aeeac7c3-7e1c-a1e0-095f-cc9727392647",
|
||||||
|
"outputs": {},
|
||||||
|
"resources": [],
|
||||||
|
"check_results": null
|
||||||
|
}
|
|
@ -0,0 +1,900 @@
|
||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"terraform_version": "1.9.5",
|
||||||
|
"serial": 80,
|
||||||
|
"lineage": "aeeac7c3-7e1c-a1e0-095f-cc9727392647",
|
||||||
|
"outputs": {},
|
||||||
|
"resources": [
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_instance",
|
||||||
|
"name": "demo_web_1",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"attributes": {
|
||||||
|
"ami": "ami-0f75d1a8c9141bd00",
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:instance/i-0f721588e39e30ae3",
|
||||||
|
"associate_public_ip_address": true,
|
||||||
|
"availability_zone": "ap-northeast-1a",
|
||||||
|
"capacity_reservation_specification": [
|
||||||
|
{
|
||||||
|
"capacity_reservation_preference": "open",
|
||||||
|
"capacity_reservation_target": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cpu_core_count": 1,
|
||||||
|
"cpu_options": [
|
||||||
|
{
|
||||||
|
"amd_sev_snp": "",
|
||||||
|
"core_count": 1,
|
||||||
|
"threads_per_core": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cpu_threads_per_core": 1,
|
||||||
|
"credit_specification": [
|
||||||
|
{
|
||||||
|
"cpu_credits": "standard"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"disable_api_stop": false,
|
||||||
|
"disable_api_termination": false,
|
||||||
|
"ebs_block_device": [],
|
||||||
|
"ebs_optimized": false,
|
||||||
|
"enable_primary_ipv6": null,
|
||||||
|
"enclave_options": [
|
||||||
|
{
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ephemeral_block_device": [],
|
||||||
|
"get_password_data": false,
|
||||||
|
"hibernation": false,
|
||||||
|
"host_id": "",
|
||||||
|
"host_resource_group_arn": null,
|
||||||
|
"iam_instance_profile": "",
|
||||||
|
"id": "i-0f721588e39e30ae3",
|
||||||
|
"instance_initiated_shutdown_behavior": "stop",
|
||||||
|
"instance_lifecycle": "",
|
||||||
|
"instance_market_options": [],
|
||||||
|
"instance_state": "running",
|
||||||
|
"instance_type": "t2.micro",
|
||||||
|
"ipv6_address_count": 0,
|
||||||
|
"ipv6_addresses": [],
|
||||||
|
"key_name": "",
|
||||||
|
"launch_template": [],
|
||||||
|
"maintenance_options": [
|
||||||
|
{
|
||||||
|
"auto_recovery": "default"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata_options": [
|
||||||
|
{
|
||||||
|
"http_endpoint": "enabled",
|
||||||
|
"http_protocol_ipv6": "disabled",
|
||||||
|
"http_put_response_hop_limit": 2,
|
||||||
|
"http_tokens": "required",
|
||||||
|
"instance_metadata_tags": "disabled"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"monitoring": false,
|
||||||
|
"network_interface": [],
|
||||||
|
"outpost_arn": "",
|
||||||
|
"password_data": "",
|
||||||
|
"placement_group": "",
|
||||||
|
"placement_partition_number": 0,
|
||||||
|
"primary_network_interface_id": "eni-048e53a411fcf30d1",
|
||||||
|
"private_dns": "ip-10-9-1-32.ap-northeast-1.compute.internal",
|
||||||
|
"private_dns_name_options": [
|
||||||
|
{
|
||||||
|
"enable_resource_name_dns_a_record": false,
|
||||||
|
"enable_resource_name_dns_aaaa_record": false,
|
||||||
|
"hostname_type": "ip-name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"private_ip": "10.9.1.32",
|
||||||
|
"public_dns": "ec2-3-112-128-5.ap-northeast-1.compute.amazonaws.com",
|
||||||
|
"public_ip": "3.112.128.5",
|
||||||
|
"root_block_device": [
|
||||||
|
{
|
||||||
|
"delete_on_termination": true,
|
||||||
|
"device_name": "/dev/xvda",
|
||||||
|
"encrypted": false,
|
||||||
|
"iops": 3000,
|
||||||
|
"kms_key_id": "",
|
||||||
|
"tags": {},
|
||||||
|
"tags_all": {},
|
||||||
|
"throughput": 125,
|
||||||
|
"volume_id": "vol-0ce30013c39bff0d7",
|
||||||
|
"volume_size": 8,
|
||||||
|
"volume_type": "gp3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"secondary_private_ips": [],
|
||||||
|
"security_groups": [
|
||||||
|
"sg-0a917d86778b66c16"
|
||||||
|
],
|
||||||
|
"source_dest_check": true,
|
||||||
|
"spot_instance_request_id": "",
|
||||||
|
"subnet_id": "subnet-0f2e371f0010dc6e0",
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_web_1"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_web_1"
|
||||||
|
},
|
||||||
|
"tenancy": "default",
|
||||||
|
"timeouts": null,
|
||||||
|
"user_data": "2bf70ae7606b4ed91abf0ff3cc8c27da75294d18",
|
||||||
|
"user_data_base64": null,
|
||||||
|
"user_data_replace_on_change": false,
|
||||||
|
"volume_tags": null,
|
||||||
|
"vpc_security_group_ids": [
|
||||||
|
"sg-0a917d86778b66c16"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMCwicmVhZCI6OTAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_security_group.demo_sg_web",
|
||||||
|
"aws_subnet.demo_subnet_public_1",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_instance",
|
||||||
|
"name": "demo_web_2",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"attributes": {
|
||||||
|
"ami": "ami-0f75d1a8c9141bd00",
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:instance/i-0daee39cc079c10b4",
|
||||||
|
"associate_public_ip_address": true,
|
||||||
|
"availability_zone": "ap-northeast-1c",
|
||||||
|
"capacity_reservation_specification": [
|
||||||
|
{
|
||||||
|
"capacity_reservation_preference": "open",
|
||||||
|
"capacity_reservation_target": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cpu_core_count": 1,
|
||||||
|
"cpu_options": [
|
||||||
|
{
|
||||||
|
"amd_sev_snp": "",
|
||||||
|
"core_count": 1,
|
||||||
|
"threads_per_core": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cpu_threads_per_core": 1,
|
||||||
|
"credit_specification": [
|
||||||
|
{
|
||||||
|
"cpu_credits": "standard"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"disable_api_stop": false,
|
||||||
|
"disable_api_termination": false,
|
||||||
|
"ebs_block_device": [],
|
||||||
|
"ebs_optimized": false,
|
||||||
|
"enable_primary_ipv6": null,
|
||||||
|
"enclave_options": [
|
||||||
|
{
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ephemeral_block_device": [],
|
||||||
|
"get_password_data": false,
|
||||||
|
"hibernation": false,
|
||||||
|
"host_id": "",
|
||||||
|
"host_resource_group_arn": null,
|
||||||
|
"iam_instance_profile": "",
|
||||||
|
"id": "i-0daee39cc079c10b4",
|
||||||
|
"instance_initiated_shutdown_behavior": "stop",
|
||||||
|
"instance_lifecycle": "",
|
||||||
|
"instance_market_options": [],
|
||||||
|
"instance_state": "running",
|
||||||
|
"instance_type": "t2.micro",
|
||||||
|
"ipv6_address_count": 0,
|
||||||
|
"ipv6_addresses": [],
|
||||||
|
"key_name": "",
|
||||||
|
"launch_template": [],
|
||||||
|
"maintenance_options": [
|
||||||
|
{
|
||||||
|
"auto_recovery": "default"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata_options": [
|
||||||
|
{
|
||||||
|
"http_endpoint": "enabled",
|
||||||
|
"http_protocol_ipv6": "disabled",
|
||||||
|
"http_put_response_hop_limit": 2,
|
||||||
|
"http_tokens": "required",
|
||||||
|
"instance_metadata_tags": "disabled"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"monitoring": false,
|
||||||
|
"network_interface": [],
|
||||||
|
"outpost_arn": "",
|
||||||
|
"password_data": "",
|
||||||
|
"placement_group": "",
|
||||||
|
"placement_partition_number": 0,
|
||||||
|
"primary_network_interface_id": "eni-080e9ca7ffbc05df0",
|
||||||
|
"private_dns": "ip-10-9-2-187.ap-northeast-1.compute.internal",
|
||||||
|
"private_dns_name_options": [
|
||||||
|
{
|
||||||
|
"enable_resource_name_dns_a_record": false,
|
||||||
|
"enable_resource_name_dns_aaaa_record": false,
|
||||||
|
"hostname_type": "ip-name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"private_ip": "10.9.2.187",
|
||||||
|
"public_dns": "ec2-35-78-123-5.ap-northeast-1.compute.amazonaws.com",
|
||||||
|
"public_ip": "35.78.123.5",
|
||||||
|
"root_block_device": [
|
||||||
|
{
|
||||||
|
"delete_on_termination": true,
|
||||||
|
"device_name": "/dev/xvda",
|
||||||
|
"encrypted": false,
|
||||||
|
"iops": 3000,
|
||||||
|
"kms_key_id": "",
|
||||||
|
"tags": {},
|
||||||
|
"tags_all": {},
|
||||||
|
"throughput": 125,
|
||||||
|
"volume_id": "vol-03dbb321020216c18",
|
||||||
|
"volume_size": 8,
|
||||||
|
"volume_type": "gp3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"secondary_private_ips": [],
|
||||||
|
"security_groups": [
|
||||||
|
"sg-0a917d86778b66c16"
|
||||||
|
],
|
||||||
|
"source_dest_check": true,
|
||||||
|
"spot_instance_request_id": "",
|
||||||
|
"subnet_id": "subnet-071b9667aa4e11b05",
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_web_2"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_web_2"
|
||||||
|
},
|
||||||
|
"tenancy": "default",
|
||||||
|
"timeouts": null,
|
||||||
|
"user_data": "9a7decfa2292b8b72a0d1f90fd0801f9a6fca6ae",
|
||||||
|
"user_data_base64": null,
|
||||||
|
"user_data_replace_on_change": false,
|
||||||
|
"volume_tags": null,
|
||||||
|
"vpc_security_group_ids": [
|
||||||
|
"sg-0a917d86778b66c16"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMCwicmVhZCI6OTAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_security_group.demo_sg_web",
|
||||||
|
"aws_subnet.demo_subnet_public_2",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_internet_gateway",
|
||||||
|
"name": "demo_igw_main",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:internet-gateway/igw-0cf0649ef4f106fe6",
|
||||||
|
"id": "igw-0cf0649ef4f106fe6",
|
||||||
|
"owner_id": "095277089098",
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_igw_main"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_igw_main"
|
||||||
|
},
|
||||||
|
"timeouts": null,
|
||||||
|
"vpc_id": "vpc-0f107a79b360c1fb9"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_lb",
|
||||||
|
"name": "demo_lb_main",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"access_logs": [
|
||||||
|
{
|
||||||
|
"bucket": "",
|
||||||
|
"enabled": false,
|
||||||
|
"prefix": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"arn": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:loadbalancer/app/demo-lb-main/79f2bd855b359068",
|
||||||
|
"arn_suffix": "app/demo-lb-main/79f2bd855b359068",
|
||||||
|
"client_keep_alive": 3600,
|
||||||
|
"connection_logs": [
|
||||||
|
{
|
||||||
|
"bucket": "",
|
||||||
|
"enabled": false,
|
||||||
|
"prefix": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"customer_owned_ipv4_pool": "",
|
||||||
|
"desync_mitigation_mode": "defensive",
|
||||||
|
"dns_name": "demo-lb-main-267186099.ap-northeast-1.elb.amazonaws.com",
|
||||||
|
"dns_record_client_routing_policy": null,
|
||||||
|
"drop_invalid_header_fields": false,
|
||||||
|
"enable_cross_zone_load_balancing": true,
|
||||||
|
"enable_deletion_protection": false,
|
||||||
|
"enable_http2": true,
|
||||||
|
"enable_tls_version_and_cipher_suite_headers": false,
|
||||||
|
"enable_waf_fail_open": false,
|
||||||
|
"enable_xff_client_port": false,
|
||||||
|
"enable_zonal_shift": false,
|
||||||
|
"enforce_security_group_inbound_rules_on_private_link_traffic": "",
|
||||||
|
"id": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:loadbalancer/app/demo-lb-main/79f2bd855b359068",
|
||||||
|
"idle_timeout": 60,
|
||||||
|
"internal": false,
|
||||||
|
"ip_address_type": "ipv4",
|
||||||
|
"load_balancer_type": "application",
|
||||||
|
"name": "demo-lb-main",
|
||||||
|
"name_prefix": "",
|
||||||
|
"preserve_host_header": false,
|
||||||
|
"security_groups": [
|
||||||
|
"sg-0a917d86778b66c16"
|
||||||
|
],
|
||||||
|
"subnet_mapping": [
|
||||||
|
{
|
||||||
|
"allocation_id": "",
|
||||||
|
"ipv6_address": "",
|
||||||
|
"outpost_id": "",
|
||||||
|
"private_ipv4_address": "",
|
||||||
|
"subnet_id": "subnet-071b9667aa4e11b05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"allocation_id": "",
|
||||||
|
"ipv6_address": "",
|
||||||
|
"outpost_id": "",
|
||||||
|
"private_ipv4_address": "",
|
||||||
|
"subnet_id": "subnet-0f2e371f0010dc6e0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subnets": [
|
||||||
|
"subnet-071b9667aa4e11b05",
|
||||||
|
"subnet-0f2e371f0010dc6e0"
|
||||||
|
],
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_lb_main"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_lb_main"
|
||||||
|
},
|
||||||
|
"timeouts": null,
|
||||||
|
"vpc_id": "vpc-0f107a79b360c1fb9",
|
||||||
|
"xff_header_processing_mode": "append",
|
||||||
|
"zone_id": "Z14GRHDCWA56QT"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_security_group.demo_sg_web",
|
||||||
|
"aws_subnet.demo_subnet_public_1",
|
||||||
|
"aws_subnet.demo_subnet_public_2",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_lb_listener",
|
||||||
|
"name": "demo_listener_http",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"alpn_policy": null,
|
||||||
|
"arn": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:listener/app/demo-lb-main/79f2bd855b359068/8cacb3572903169c",
|
||||||
|
"certificate_arn": null,
|
||||||
|
"default_action": [
|
||||||
|
{
|
||||||
|
"authenticate_cognito": [],
|
||||||
|
"authenticate_oidc": [],
|
||||||
|
"fixed_response": [],
|
||||||
|
"forward": [],
|
||||||
|
"order": 1,
|
||||||
|
"redirect": [],
|
||||||
|
"target_group_arn": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:targetgroup/demo-tg-web/7b563928eb416771",
|
||||||
|
"type": "forward"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:listener/app/demo-lb-main/79f2bd855b359068/8cacb3572903169c",
|
||||||
|
"load_balancer_arn": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:loadbalancer/app/demo-lb-main/79f2bd855b359068",
|
||||||
|
"mutual_authentication": [],
|
||||||
|
"port": 80,
|
||||||
|
"protocol": "HTTP",
|
||||||
|
"ssl_policy": "",
|
||||||
|
"tags": null,
|
||||||
|
"tags_all": {},
|
||||||
|
"tcp_idle_timeout_seconds": null,
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDAsInVwZGF0ZSI6MzAwMDAwMDAwMDAwfX0=",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_lb.demo_lb_main",
|
||||||
|
"aws_lb_target_group.demo_tg_web",
|
||||||
|
"aws_security_group.demo_sg_web",
|
||||||
|
"aws_subnet.demo_subnet_public_1",
|
||||||
|
"aws_subnet.demo_subnet_public_2",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_lb_target_group",
|
||||||
|
"name": "demo_tg_web",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"arn": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:targetgroup/demo-tg-web/7b563928eb416771",
|
||||||
|
"arn_suffix": "targetgroup/demo-tg-web/7b563928eb416771",
|
||||||
|
"connection_termination": null,
|
||||||
|
"deregistration_delay": "300",
|
||||||
|
"health_check": [
|
||||||
|
{
|
||||||
|
"enabled": true,
|
||||||
|
"healthy_threshold": 5,
|
||||||
|
"interval": 30,
|
||||||
|
"matcher": "200",
|
||||||
|
"path": "/",
|
||||||
|
"port": "traffic-port",
|
||||||
|
"protocol": "HTTP",
|
||||||
|
"timeout": 5,
|
||||||
|
"unhealthy_threshold": 2
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:targetgroup/demo-tg-web/7b563928eb416771",
|
||||||
|
"ip_address_type": "ipv4",
|
||||||
|
"lambda_multi_value_headers_enabled": false,
|
||||||
|
"load_balancer_arns": [],
|
||||||
|
"load_balancing_algorithm_type": "round_robin",
|
||||||
|
"load_balancing_anomaly_mitigation": "off",
|
||||||
|
"load_balancing_cross_zone_enabled": "use_load_balancer_configuration",
|
||||||
|
"name": "demo-tg-web",
|
||||||
|
"name_prefix": "",
|
||||||
|
"port": 80,
|
||||||
|
"preserve_client_ip": null,
|
||||||
|
"protocol": "HTTP",
|
||||||
|
"protocol_version": "HTTP1",
|
||||||
|
"proxy_protocol_v2": false,
|
||||||
|
"slow_start": 0,
|
||||||
|
"stickiness": [
|
||||||
|
{
|
||||||
|
"cookie_duration": 86400,
|
||||||
|
"cookie_name": "",
|
||||||
|
"enabled": false,
|
||||||
|
"type": "lb_cookie"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_tg_web"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_tg_web"
|
||||||
|
},
|
||||||
|
"target_failover": [
|
||||||
|
{
|
||||||
|
"on_deregistration": null,
|
||||||
|
"on_unhealthy": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"target_group_health": [
|
||||||
|
{
|
||||||
|
"dns_failover": [
|
||||||
|
{
|
||||||
|
"minimum_healthy_targets_count": "1",
|
||||||
|
"minimum_healthy_targets_percentage": "off"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"unhealthy_state_routing": [
|
||||||
|
{
|
||||||
|
"minimum_healthy_targets_count": 1,
|
||||||
|
"minimum_healthy_targets_percentage": "off"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"target_health_state": [
|
||||||
|
{
|
||||||
|
"enable_unhealthy_connection_termination": null,
|
||||||
|
"unhealthy_draining_interval": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"target_type": "instance",
|
||||||
|
"vpc_id": "vpc-0f107a79b360c1fb9"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "bnVsbA==",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_lb_target_group_attachment",
|
||||||
|
"name": "demo_attach_web_1",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"availability_zone": null,
|
||||||
|
"id": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:targetgroup/demo-tg-web/7b563928eb416771-20241217065617251800000006",
|
||||||
|
"port": 80,
|
||||||
|
"target_group_arn": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:targetgroup/demo-tg-web/7b563928eb416771",
|
||||||
|
"target_id": "i-0f721588e39e30ae3"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "bnVsbA==",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_instance.demo_web_1",
|
||||||
|
"aws_lb_target_group.demo_tg_web",
|
||||||
|
"aws_security_group.demo_sg_web",
|
||||||
|
"aws_subnet.demo_subnet_public_1",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_lb_target_group_attachment",
|
||||||
|
"name": "demo_attach_web_2",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"availability_zone": null,
|
||||||
|
"id": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:targetgroup/demo-tg-web/7b563928eb416771-20241217065617185700000005",
|
||||||
|
"port": 80,
|
||||||
|
"target_group_arn": "arn:aws:elasticloadbalancing:ap-northeast-1:095277089098:targetgroup/demo-tg-web/7b563928eb416771",
|
||||||
|
"target_id": "i-0daee39cc079c10b4"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "bnVsbA==",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_instance.demo_web_2",
|
||||||
|
"aws_lb_target_group.demo_tg_web",
|
||||||
|
"aws_security_group.demo_sg_web",
|
||||||
|
"aws_subnet.demo_subnet_public_2",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_route_table",
|
||||||
|
"name": "demo_route_table_main",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:route-table/rtb-0fb42cb820278a19c",
|
||||||
|
"id": "rtb-0fb42cb820278a19c",
|
||||||
|
"owner_id": "095277089098",
|
||||||
|
"propagating_vgws": [],
|
||||||
|
"route": [
|
||||||
|
{
|
||||||
|
"carrier_gateway_id": "",
|
||||||
|
"cidr_block": "0.0.0.0/0",
|
||||||
|
"core_network_arn": "",
|
||||||
|
"destination_prefix_list_id": "",
|
||||||
|
"egress_only_gateway_id": "",
|
||||||
|
"gateway_id": "igw-0cf0649ef4f106fe6",
|
||||||
|
"ipv6_cidr_block": "",
|
||||||
|
"local_gateway_id": "",
|
||||||
|
"nat_gateway_id": "",
|
||||||
|
"network_interface_id": "",
|
||||||
|
"transit_gateway_id": "",
|
||||||
|
"vpc_endpoint_id": "",
|
||||||
|
"vpc_peering_connection_id": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_route_table_main"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_route_table_main"
|
||||||
|
},
|
||||||
|
"timeouts": null,
|
||||||
|
"vpc_id": "vpc-0f107a79b360c1fb9"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDAsImRlbGV0ZSI6MzAwMDAwMDAwMDAwLCJ1cGRhdGUiOjEyMDAwMDAwMDAwMH19",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_internet_gateway.demo_igw_main",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_route_table_association",
|
||||||
|
"name": "demo_assoc_public_1",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"gateway_id": "",
|
||||||
|
"id": "rtbassoc-0478a366df34ff2cb",
|
||||||
|
"route_table_id": "rtb-0fb42cb820278a19c",
|
||||||
|
"subnet_id": "subnet-0f2e371f0010dc6e0",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDAsImRlbGV0ZSI6MzAwMDAwMDAwMDAwLCJ1cGRhdGUiOjEyMDAwMDAwMDAwMH19",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_internet_gateway.demo_igw_main",
|
||||||
|
"aws_route_table.demo_route_table_main",
|
||||||
|
"aws_subnet.demo_subnet_public_1",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_route_table_association",
|
||||||
|
"name": "demo_assoc_public_2",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"gateway_id": "",
|
||||||
|
"id": "rtbassoc-0f3962dc6e5b289b6",
|
||||||
|
"route_table_id": "rtb-0fb42cb820278a19c",
|
||||||
|
"subnet_id": "subnet-071b9667aa4e11b05",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDAsImRlbGV0ZSI6MzAwMDAwMDAwMDAwLCJ1cGRhdGUiOjEyMDAwMDAwMDAwMH19",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_internet_gateway.demo_igw_main",
|
||||||
|
"aws_route_table.demo_route_table_main",
|
||||||
|
"aws_subnet.demo_subnet_public_2",
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_security_group",
|
||||||
|
"name": "demo_sg_web",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"attributes": {
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:security-group/sg-0a917d86778b66c16",
|
||||||
|
"description": "Managed by Terraform",
|
||||||
|
"egress": [
|
||||||
|
{
|
||||||
|
"cidr_blocks": [
|
||||||
|
"0.0.0.0/0"
|
||||||
|
],
|
||||||
|
"description": "",
|
||||||
|
"from_port": 0,
|
||||||
|
"ipv6_cidr_blocks": [],
|
||||||
|
"prefix_list_ids": [],
|
||||||
|
"protocol": "-1",
|
||||||
|
"security_groups": [],
|
||||||
|
"self": false,
|
||||||
|
"to_port": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "sg-0a917d86778b66c16",
|
||||||
|
"ingress": [
|
||||||
|
{
|
||||||
|
"cidr_blocks": [
|
||||||
|
"0.0.0.0/0"
|
||||||
|
],
|
||||||
|
"description": "",
|
||||||
|
"from_port": 80,
|
||||||
|
"ipv6_cidr_blocks": [],
|
||||||
|
"prefix_list_ids": [],
|
||||||
|
"protocol": "tcp",
|
||||||
|
"security_groups": [],
|
||||||
|
"self": false,
|
||||||
|
"to_port": 80
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "terraform-20241217065553471700000001",
|
||||||
|
"name_prefix": "terraform-",
|
||||||
|
"owner_id": "095277089098",
|
||||||
|
"revoke_rules_on_delete": false,
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_sg_web"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_sg_web"
|
||||||
|
},
|
||||||
|
"timeouts": null,
|
||||||
|
"vpc_id": "vpc-0f107a79b360c1fb9"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6OTAwMDAwMDAwMDAwfSwic2NoZW1hX3ZlcnNpb24iOiIxIn0=",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_subnet",
|
||||||
|
"name": "demo_subnet_public_1",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"attributes": {
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:subnet/subnet-0f2e371f0010dc6e0",
|
||||||
|
"assign_ipv6_address_on_creation": false,
|
||||||
|
"availability_zone": "ap-northeast-1a",
|
||||||
|
"availability_zone_id": "apne1-az4",
|
||||||
|
"cidr_block": "10.9.1.0/24",
|
||||||
|
"customer_owned_ipv4_pool": "",
|
||||||
|
"enable_dns64": false,
|
||||||
|
"enable_lni_at_device_index": 0,
|
||||||
|
"enable_resource_name_dns_a_record_on_launch": false,
|
||||||
|
"enable_resource_name_dns_aaaa_record_on_launch": false,
|
||||||
|
"id": "subnet-0f2e371f0010dc6e0",
|
||||||
|
"ipv6_cidr_block": "",
|
||||||
|
"ipv6_cidr_block_association_id": "",
|
||||||
|
"ipv6_native": false,
|
||||||
|
"map_customer_owned_ip_on_launch": false,
|
||||||
|
"map_public_ip_on_launch": true,
|
||||||
|
"outpost_arn": "",
|
||||||
|
"owner_id": "095277089098",
|
||||||
|
"private_dns_hostname_type_on_launch": "ip-name",
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_subnet_public_1"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_subnet_public_1"
|
||||||
|
},
|
||||||
|
"timeouts": null,
|
||||||
|
"vpc_id": "vpc-0f107a79b360c1fb9"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_subnet",
|
||||||
|
"name": "demo_subnet_public_2",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"attributes": {
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:subnet/subnet-071b9667aa4e11b05",
|
||||||
|
"assign_ipv6_address_on_creation": false,
|
||||||
|
"availability_zone": "ap-northeast-1c",
|
||||||
|
"availability_zone_id": "apne1-az1",
|
||||||
|
"cidr_block": "10.9.2.0/24",
|
||||||
|
"customer_owned_ipv4_pool": "",
|
||||||
|
"enable_dns64": false,
|
||||||
|
"enable_lni_at_device_index": 0,
|
||||||
|
"enable_resource_name_dns_a_record_on_launch": false,
|
||||||
|
"enable_resource_name_dns_aaaa_record_on_launch": false,
|
||||||
|
"id": "subnet-071b9667aa4e11b05",
|
||||||
|
"ipv6_cidr_block": "",
|
||||||
|
"ipv6_cidr_block_association_id": "",
|
||||||
|
"ipv6_native": false,
|
||||||
|
"map_customer_owned_ip_on_launch": false,
|
||||||
|
"map_public_ip_on_launch": true,
|
||||||
|
"outpost_arn": "",
|
||||||
|
"owner_id": "095277089098",
|
||||||
|
"private_dns_hostname_type_on_launch": "ip-name",
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_subnet_public_2"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_subnet_public_2"
|
||||||
|
},
|
||||||
|
"timeouts": null,
|
||||||
|
"vpc_id": "vpc-0f107a79b360c1fb9"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9",
|
||||||
|
"dependencies": [
|
||||||
|
"aws_vpc.demo_vpc_main"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_vpc",
|
||||||
|
"name": "demo_vpc_main",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"attributes": {
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:vpc/vpc-0f107a79b360c1fb9",
|
||||||
|
"assign_generated_ipv6_cidr_block": false,
|
||||||
|
"cidr_block": "10.9.0.0/16",
|
||||||
|
"default_network_acl_id": "acl-03b345abb56e12174",
|
||||||
|
"default_route_table_id": "rtb-031762f747a4f813e",
|
||||||
|
"default_security_group_id": "sg-042bf87cc7cbdf8ea",
|
||||||
|
"dhcp_options_id": "dopt-5f01e23a",
|
||||||
|
"enable_dns_hostnames": true,
|
||||||
|
"enable_dns_support": true,
|
||||||
|
"enable_network_address_usage_metrics": false,
|
||||||
|
"id": "vpc-0f107a79b360c1fb9",
|
||||||
|
"instance_tenancy": "default",
|
||||||
|
"ipv4_ipam_pool_id": null,
|
||||||
|
"ipv4_netmask_length": null,
|
||||||
|
"ipv6_association_id": "",
|
||||||
|
"ipv6_cidr_block": "",
|
||||||
|
"ipv6_cidr_block_network_border_group": "",
|
||||||
|
"ipv6_ipam_pool_id": "",
|
||||||
|
"ipv6_netmask_length": 0,
|
||||||
|
"main_route_table_id": "rtb-031762f747a4f813e",
|
||||||
|
"owner_id": "095277089098",
|
||||||
|
"tags": {
|
||||||
|
"Name": "demo_vpc_main"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "demo_vpc_main"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ=="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"check_results": null
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
cp -rp userXX user01
|
||||||
|
cp -rp userXX user02
|
||||||
|
・・・・
|
||||||
|
|
||||||
|
cd ../user02
|
||||||
|
|
||||||
|
grep -rl 'userXX' . | xargs sed -i "s/userXX/user02/g"
|
||||||
|
|
||||||
|
git init
|
||||||
|
git checkout -b main
|
||||||
|
git add .
|
||||||
|
git commit -m "first commit"
|
||||||
|
git remote add origin http://aws-handson-gitea.com/hands-on/deploy-user02.git
|
||||||
|
git push -u origin main
|
||||||
|
|
||||||
|
cd ../user01
|
||||||
|
git reset --mixed c8254d163d46145f6c6cf189cd74c1acb77f1d3b
|
||||||
|
git push -f origin main
|
||||||
|
|
||||||
|
cd ../user02
|
||||||
|
git reset --mixed 6ffe5ed7f70929a964acdc384ddfd72dc6a40809
|
||||||
|
git push -f origin main
|
||||||
|
|
||||||
|
cd ../user03
|
||||||
|
git reset --mixed 74186dd766725e65e7b8da2bef8a8d8aded16740
|
||||||
|
git push -f origin main
|
||||||
|
|
||||||
|
cd ../user04
|
||||||
|
git reset --mixed fae85a118324834cfcf79ca2e087a3fb8841fafe
|
||||||
|
git push -f origin main
|
||||||
|
|
||||||
|
cd ../user05
|
||||||
|
git reset --mixed 8c8dbf0f9fb601cc8279b7ada51d386065ae00c6
|
||||||
|
git push -f origin main
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
|
||||||
|
environment {
|
||||||
|
AWS_ACCESS_KEY_ID = credentials('aws-access-key-id') // JenkinsのCredentialで設定したキー
|
||||||
|
AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key') // 同じくCredentialで設定したシークレットキー
|
||||||
|
PUBLIC_IP = '' //WebサーバーのパブリックIP
|
||||||
|
PRIVATE_IP = '' //WebサーバーのプライベートIP
|
||||||
|
}
|
||||||
|
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout(true)
|
||||||
|
}
|
||||||
|
stages{
|
||||||
|
stage("checkout") {
|
||||||
|
steps {
|
||||||
|
// Iacコードを取得
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform init") {
|
||||||
|
steps {
|
||||||
|
// 初期化
|
||||||
|
dir('step1'){
|
||||||
|
sh "terraform init"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform plan") {
|
||||||
|
steps {
|
||||||
|
// 実行計画
|
||||||
|
dir('step1'){
|
||||||
|
sh "terraform plan -out=plan.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform apply") {
|
||||||
|
steps {
|
||||||
|
// 実行
|
||||||
|
dir('step1'){
|
||||||
|
sh "terraform apply plan.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Get Terraform Output') {
|
||||||
|
steps {
|
||||||
|
// ファイル出力
|
||||||
|
script {
|
||||||
|
dir('step1'){
|
||||||
|
PUBLIC_IP = sh(returnStdout: true, script: 'terraform output -raw instance_public_ip').trim()
|
||||||
|
PRIVATE_IP = sh(returnStdout: true, script: 'terraform output -raw instance_private_ip').trim()
|
||||||
|
}
|
||||||
|
dir("${env.WORKSPACE}/step2"){
|
||||||
|
def data1 = "[web]\n" + PRIVATE_IP + "\n"
|
||||||
|
def var1 = "ansible_port=22\n"
|
||||||
|
def var2 = "ansible_user=ec2-user\n"
|
||||||
|
def var3 = "ansible_ssh_private_key_file=~/.ssh_key\n"
|
||||||
|
def data2 = "[web:vars]\n" + var1 + var2 + var3
|
||||||
|
def data = data1 + "\n" + data2
|
||||||
|
writeFile(file: 'host', text: data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
## プロバイダの指定
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1" # 東京リージョン
|
||||||
|
}
|
||||||
|
# EC2インスタンスの作成(Web1)
|
||||||
|
resource "aws_instance" "handson_web1" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00" # AMIの指定 (AmazonLinux2023)
|
||||||
|
instance_type = "t2.micro" # インスタンスタイプの指定
|
||||||
|
availability_zone = "ap-northeast-1a" # アベイラビリティーゾーンの指定
|
||||||
|
subnet_id = "subnet-05b27965d35bb735f" # 既存サブネットの指定
|
||||||
|
vpc_security_group_ids = [
|
||||||
|
"sg-0d92c039f14e9f825", # 既存セキュリティグループの指定
|
||||||
|
]
|
||||||
|
key_name = "jenkins-keypair" # 指定キーペアの指定
|
||||||
|
tags = {
|
||||||
|
Name = "userXX_handson_web1" # タグ名の指定
|
||||||
|
}
|
||||||
|
# 初期セットアップ
|
||||||
|
user_data = <<-EOF
|
||||||
|
#! /bin/bash
|
||||||
|
sudo yum update
|
||||||
|
sudo yum install -y httpd git
|
||||||
|
sudo chkconfig httpd on
|
||||||
|
sudo service httpd start
|
||||||
|
echo "<h1>hello world</h1>" | sudo tee /var/www/html/index.html
|
||||||
|
echo "10.1.5.19 aws-handson-gitea.com" | sudo tee -a /etc/hosts
|
||||||
|
EOF
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
# 作成したEC2のプライベートIPを出力
|
||||||
|
output "instance_private_ip" {
|
||||||
|
description = "The private IP address of the instance"
|
||||||
|
value = aws_instance.handson_web1.private_ip
|
||||||
|
}
|
||||||
|
# 作成したEC2のパブリックIPを出力
|
||||||
|
output "instance_public_ip" {
|
||||||
|
description = "The public IP address of the instance"
|
||||||
|
value = aws_instance.handson_web1.public_ip
|
||||||
|
}
|
||||||
|
# 作成したEC2のIdを出力
|
||||||
|
output "instance_ec2_id" {
|
||||||
|
description = "ec2 id of the instance"
|
||||||
|
value = aws_instance.handson_web1.id
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
Jenkinsi : http://aws-handson-jenkins.com/
|
||||||
|
リポジトリ : http://aws-handson-gitea.com/hands-on/deploy-userXX.git
|
||||||
|
|
||||||
|
@STEP1
|
||||||
|
■リモートリポジトリをクローンする [コンソール操作]
|
||||||
|
cd ~/hands-on/jenkins
|
||||||
|
git clone http://aws-handson-gitea.com/hands-on/deploy-userXX.git
|
||||||
|
cd deploy-userXX
|
||||||
|
cd step1
|
||||||
|
vi main.tf
|
||||||
|
instance_type = "t2.small"
|
||||||
|
|
||||||
|
git add .
|
||||||
|
git commit -m "change"
|
||||||
|
git push
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
|
||||||
|
environment {
|
||||||
|
ANSIBLE_HOST_KEY_CHECKING = false
|
||||||
|
PUBLIC_IP = '52.194.230.165' //WebサーバーのパブリックIP
|
||||||
|
}
|
||||||
|
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout(true)
|
||||||
|
}
|
||||||
|
stages{
|
||||||
|
stage("checkout") {
|
||||||
|
steps {
|
||||||
|
// Iacコードを取得
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Syntax Check') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Ansible Playbookの文法チェック
|
||||||
|
dir('step2'){
|
||||||
|
ansiblePlaybook(
|
||||||
|
playbook: 'playbook.yml',
|
||||||
|
inventory: 'host',
|
||||||
|
extras: '--syntax-check'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Dry Run (Check Mode)') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Ansible Playbookの仮実行 (チェックモード)
|
||||||
|
dir('step2'){
|
||||||
|
ansiblePlaybook(
|
||||||
|
playbook: 'playbook.yml',
|
||||||
|
inventory: 'host',
|
||||||
|
extras: '--check'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Apply (Real Execution)') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Ansible Playbookの本実行
|
||||||
|
dir('step2'){
|
||||||
|
ansiblePlaybook(
|
||||||
|
playbook: 'playbook.yml',
|
||||||
|
inventory: 'host'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Check Web Application Status') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
def status = '0'
|
||||||
|
try {
|
||||||
|
// Webサイトのステータスをチェックする
|
||||||
|
def url = "http://${PUBLIC_IP}/"
|
||||||
|
status = sh(script: "curl -o /dev/null -s -w '%{http_code}' ${url}", returnStdout: true).trim()
|
||||||
|
} catch (Exception e) {
|
||||||
|
// エラー発生時でもジョブを失敗させない
|
||||||
|
echo "Error while checking the website: ${e.getMessage()}"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status != '200') {
|
||||||
|
echo "Website is not accessible. Status code: ${status}"
|
||||||
|
} else {
|
||||||
|
echo "Website is running successfully. Status code: ${status}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
[web]
|
||||||
|
10.1.1.221
|
||||||
|
|
||||||
|
[web:vars]
|
||||||
|
ansible_port=22
|
||||||
|
ansible_user=ec2-user
|
||||||
|
ansible_ssh_private_key_file=~/.ssh_key
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
- name: Deploy updated web pages
|
||||||
|
hosts: web
|
||||||
|
become: yes
|
||||||
|
tasks:
|
||||||
|
- name: remove directory
|
||||||
|
file:
|
||||||
|
path: /var/www/html
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Pull the latest changes from the repository
|
||||||
|
git:
|
||||||
|
repo: 'http://aws-handson-gitea.com:3000/hands-on/webpage.git'
|
||||||
|
dest: '/var/www/html'
|
||||||
|
version: 'HEAD'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
|
||||||
|
- name: Set correct permissions
|
||||||
|
file:
|
||||||
|
path: '/var/www/html'
|
||||||
|
state: directory
|
||||||
|
owner: apache
|
||||||
|
group: apache
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: httpd restart
|
||||||
|
service:
|
||||||
|
name: httpd
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
|
@ -0,0 +1,14 @@
|
||||||
|
Jenkinsi : http://aws-handson-jenkins.com/
|
||||||
|
リポジトリ : http://aws-handson-gitea.com/hands-on/deploy-userXX.git
|
||||||
|
|
||||||
|
@STEP2
|
||||||
|
■STEP1で作成したサーバのIPアドレスを指定する[コンソール操作]
|
||||||
|
cd ../step2
|
||||||
|
vi host
|
||||||
|
|
||||||
|
vi Jenkinsfile
|
||||||
|
|
||||||
|
git add .
|
||||||
|
git commit -m "change"
|
||||||
|
git push
|
||||||
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
|
||||||
|
environment {
|
||||||
|
AWS_ACCESS_KEY_ID = credentials('aws-access-key-id') // JenkinsのCredentialで設定したキー
|
||||||
|
AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key') // 同じくCredentialで設定したシークレットキー
|
||||||
|
PUBLIC_IP = '' //WebサーバーのパブリックIP
|
||||||
|
PRIVATE_IP = '' //WebサーバーのプライベートIP
|
||||||
|
EC2_ID = '' //WebサーバーのEC2インスタンスID
|
||||||
|
ANSIBLE_HOST_KEY_CHECKING = false
|
||||||
|
RECIPIENT_SUCCESS = 'keduka@cm.jip.co.jp' // 成功時の通知先
|
||||||
|
RECIPIENT_FAILURE = 'Jenkins_sendmail@zohomail.jp' // 失敗時の通知先
|
||||||
|
}
|
||||||
|
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout(true)
|
||||||
|
}
|
||||||
|
stages{
|
||||||
|
stage("checkout") {
|
||||||
|
steps {
|
||||||
|
// Iacコードを取得
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform init") {
|
||||||
|
steps {
|
||||||
|
// 初期化
|
||||||
|
dir('step3/terraform'){
|
||||||
|
sh "terraform init"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform plan") {
|
||||||
|
steps {
|
||||||
|
// 実行計画
|
||||||
|
dir('step3/terraform'){
|
||||||
|
sh "terraform plan -out=plan.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform apply") {
|
||||||
|
steps {
|
||||||
|
// 実行
|
||||||
|
dir('step3/terraform'){
|
||||||
|
sh "terraform apply plan.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Get Terraform Output') {
|
||||||
|
steps {
|
||||||
|
// ファイル出力
|
||||||
|
script {
|
||||||
|
dir('step3/terraform'){
|
||||||
|
PUBLIC_IP = sh(returnStdout: true, script: 'terraform output -raw instance_public_ip').trim()
|
||||||
|
PRIVATE_IP = sh(returnStdout: true, script: 'terraform output -raw instance_private_ip').trim()
|
||||||
|
EC2_ID = sh(returnStdout: true, script: 'terraform output -raw instance_ec2_id').trim()
|
||||||
|
}
|
||||||
|
dir("${env.WORKSPACE}/step3/ansible"){
|
||||||
|
def data1 = "[web]\n" + PRIVATE_IP + "\n"
|
||||||
|
def var1 = "ansible_port=22\n"
|
||||||
|
def var2 = "ansible_user=ec2-user\n"
|
||||||
|
def var3 = "ansible_ssh_private_key_file=~/.ssh_key\n"
|
||||||
|
def data2 = "[web:vars]\n" + var1 + var2 + var3
|
||||||
|
def data = data1 + "\n" + data2
|
||||||
|
writeFile(file: 'host', text: data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Initialize') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// インスタンスのステータスOKまで待機
|
||||||
|
sh("aws ec2 wait instance-status-ok --instance-ids ${EC2_ID}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Syntax Check') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Ansible Playbookの文法チェック
|
||||||
|
dir('step3/ansible'){
|
||||||
|
ansiblePlaybook(
|
||||||
|
playbook: 'playbook.yml',
|
||||||
|
inventory: 'host',
|
||||||
|
extras: '--syntax-check'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Dry Run (Check Mode)') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Ansible Playbookの仮実行 (チェックモード)
|
||||||
|
dir('step3/ansible'){
|
||||||
|
ansiblePlaybook(
|
||||||
|
playbook: 'playbook.yml',
|
||||||
|
inventory: 'host',
|
||||||
|
extras: '--check'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Apply (Real Execution)') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Ansible Playbookの本実行
|
||||||
|
dir('step3/ansible'){
|
||||||
|
ansiblePlaybook(
|
||||||
|
playbook: 'playbook.yml',
|
||||||
|
inventory: 'host'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Check Web Application Status') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
def status = '0'
|
||||||
|
try {
|
||||||
|
// Webサイトのステータスをチェックする
|
||||||
|
def url = "http://${PUBLIC_IP}/"
|
||||||
|
status = sh(script: "curl -o /dev/null -s -w '%{http_code}' ${url}", returnStdout: true).trim()
|
||||||
|
} catch (Exception e) {
|
||||||
|
// エラー発生時でもジョブを失敗させない
|
||||||
|
echo "Error while checking the website: ${e.getMessage()}"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status != '200') {
|
||||||
|
echo "Website is not accessible. Status code: ${status}"
|
||||||
|
} else {
|
||||||
|
echo "Website is running successfully. Status code: ${status}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
success {
|
||||||
|
// 正常終了時にメール通知
|
||||||
|
mail to: "${RECIPIENT_SUCCESS}",
|
||||||
|
from: 'jenkins_sendmail@zohomail.jp',
|
||||||
|
subject: "SUCCESS: Web Application Deployed Successfully: ${currentBuild.fullDisplayName}",
|
||||||
|
body: "The web application was deployed successfully and is accessible at http://${PUBLIC_IP}/"
|
||||||
|
}
|
||||||
|
failure {
|
||||||
|
// エラー発生時にエラーメール通知
|
||||||
|
mail to: "${RECIPIENT_FAILURE}",
|
||||||
|
from: 'jenkins_sendmail@zohomail.jp',
|
||||||
|
subject: "FAILURE: Web Application Deployment Failed: ${currentBuild.fullDisplayName}",
|
||||||
|
body: "The web application deployment failed. Please check the Jenkins job for more details.\n${env.BUILD_URL}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
- name: Deploy updated web pages
|
||||||
|
hosts: web
|
||||||
|
become: yes
|
||||||
|
tasks:
|
||||||
|
- name: remove directory
|
||||||
|
file:
|
||||||
|
path: /var/www/html
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Pull the latest changes from the repository
|
||||||
|
git:
|
||||||
|
repo: 'http://aws-handson-gitea.com:3000/hands-on/webpage.git'
|
||||||
|
dest: '/var/www/html'
|
||||||
|
version: 'HEAD'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
|
||||||
|
- name: Set correct permissions
|
||||||
|
file:
|
||||||
|
path: '/var/www/html'
|
||||||
|
state: directory
|
||||||
|
owner: apache
|
||||||
|
group: apache
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: httpd restart
|
||||||
|
service:
|
||||||
|
name: httpd
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
|
@ -0,0 +1,12 @@
|
||||||
|
Jenkinsi : http://aws-handson-jenkins.com/
|
||||||
|
リポジトリ : http://aws-handson-gitea.com/hands-on/deploy-userXX.git
|
||||||
|
|
||||||
|
@STEP3
|
||||||
|
■メール通知先を自身のメールアドレスに変更する[コンソール操作]
|
||||||
|
cd ../step3
|
||||||
|
vi Jenkinsfile
|
||||||
|
|
||||||
|
git add .
|
||||||
|
git commit -m "change"
|
||||||
|
git push
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
## プロバイダの指定
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1" # 東京リージョン
|
||||||
|
}
|
||||||
|
# EC2インスタンスの作成(Web1)
|
||||||
|
resource "aws_instance" "handson_web1" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00" # AMIの指定 (AmazonLinux2023)
|
||||||
|
instance_type = "t2.micro" # インスタンスタイプの指定
|
||||||
|
availability_zone = "ap-northeast-1a" # アベイラビリティーゾーンの指定
|
||||||
|
subnet_id = "subnet-05b27965d35bb735f" # 既存サブネットの指定
|
||||||
|
vpc_security_group_ids = [
|
||||||
|
"sg-0d92c039f14e9f825", # 既存セキュリティグループの指定
|
||||||
|
]
|
||||||
|
key_name = "jenkins-keypair" # 指定キーペアの指定
|
||||||
|
tags = {
|
||||||
|
Name = "userXX_handson_web2" # タグ名の指定
|
||||||
|
}
|
||||||
|
# 初期セットアップ
|
||||||
|
user_data = <<-EOF
|
||||||
|
#! /bin/bash
|
||||||
|
sudo yum update
|
||||||
|
sudo yum install -y httpd git
|
||||||
|
sudo chkconfig httpd on
|
||||||
|
sudo service httpd start
|
||||||
|
echo "<h1>hello world</h1>" | sudo tee /var/www/html/index.html
|
||||||
|
echo "10.1.5.19 aws-handson-gitea.com" | sudo tee -a /etc/hosts
|
||||||
|
EOF
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
# 作成したEC2のプライベートIPを出力
|
||||||
|
output "instance_private_ip" {
|
||||||
|
description = "The private IP address of the instance"
|
||||||
|
value = aws_instance.handson_web1.private_ip
|
||||||
|
}
|
||||||
|
# 作成したEC2のパブリックIPを出力
|
||||||
|
output "instance_public_ip" {
|
||||||
|
description = "The public IP address of the instance"
|
||||||
|
value = aws_instance.handson_web1.public_ip
|
||||||
|
}
|
||||||
|
# 作成したEC2のIdを出力
|
||||||
|
output "instance_ec2_id" {
|
||||||
|
description = "ec2 id of the instance"
|
||||||
|
value = aws_instance.handson_web1.id
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
# This file is maintained automatically by "terraform init".
|
||||||
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/aws" {
|
||||||
|
version = "5.82.2"
|
||||||
|
hashes = [
|
||||||
|
"h1:RuPaHbllUB8a2TGTyc149wJfoh6zhIEjUvFYKR6iP2E=",
|
||||||
|
"zh:0262fc96012fb7e173e1b7beadd46dfc25b1dc7eaef95b90e936fc454724f1c8",
|
||||||
|
"zh:397413613d27f4f54d16efcbf4f0a43c059bd8d827fe34287522ae182a992f9b",
|
||||||
|
"zh:436c0c5d56e1da4f0a4c13129e12a0b519d12ab116aed52029b183f9806866f3",
|
||||||
|
"zh:4d942d173a2553d8d532a333a0482a090f4e82a2238acf135578f163b6e68470",
|
||||||
|
"zh:624aebc549bfbce06cc2ecfd8631932eb874ac7c10eb8466ce5b9a2fbdfdc724",
|
||||||
|
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||||
|
"zh:9e632dee2dfdf01b371cca7854b1ec63ceefa75790e619b0642b34d5514c6733",
|
||||||
|
"zh:a07567acb115b60a3df8f6048d12735b9b3bcf85ec92a62f77852e13d5a3c096",
|
||||||
|
"zh:ab7002df1a1be6432ac0eb1b9f6f0dd3db90973cd5b1b0b33d2dae54553dfbd7",
|
||||||
|
"zh:bc1ff65e2016b018b3e84db7249b2cd0433cb5c81dc81f9f6158f2197d6b9fde",
|
||||||
|
"zh:bcad84b1d767f87af6e1ba3dc97fdb8f2ad5de9224f192f1412b09aba798c0a8",
|
||||||
|
"zh:cf917dceaa0f9d55d9ff181b5dcc4d1e10af21b6671811b315ae2a6eda866a2a",
|
||||||
|
"zh:d8e90ecfb3216f3cc13ccde5a16da64307abb6e22453aed2ac3067bbf689313b",
|
||||||
|
"zh:d9054e0e40705df729682ad34c20db8695d57f182c65963abd151c6aba1ab0d3",
|
||||||
|
"zh:ecf3a4f3c57eb7e89f71b8559e2a71e4cdf94eea0118ec4f2cb37e4f4d71a069",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
## プロバイダの指定
|
||||||
|
provider "aws" {
|
||||||
|
region = var.region # 東京リージョン
|
||||||
|
}
|
||||||
|
# EC2インスタンスの作成
|
||||||
|
resource "aws_instance" "hands_web1" {
|
||||||
|
ami = var.ami # AMIの指定 (AmazonLinux2023)
|
||||||
|
instance_type = var.instance_type # インスタンスタイプの指定
|
||||||
|
availability_zone = var.availability_zone # アベイラビリティーゾーンの指定
|
||||||
|
tags = {
|
||||||
|
Name = var.instance_name # タグ名の指定
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"terraform_version": "1.9.5",
|
||||||
|
"serial": 9,
|
||||||
|
"lineage": "a439b8f6-fc93-0962-779a-330374d69c57",
|
||||||
|
"outputs": {},
|
||||||
|
"resources": [],
|
||||||
|
"check_results": null
|
||||||
|
}
|
|
@ -0,0 +1,144 @@
|
||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"terraform_version": "1.9.5",
|
||||||
|
"serial": 7,
|
||||||
|
"lineage": "a439b8f6-fc93-0962-779a-330374d69c57",
|
||||||
|
"outputs": {},
|
||||||
|
"resources": [
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "aws_instance",
|
||||||
|
"name": "hands_web1",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"attributes": {
|
||||||
|
"ami": "ami-0f75d1a8c9141bd00",
|
||||||
|
"arn": "arn:aws:ec2:ap-northeast-1:095277089098:instance/i-0dd98f633fd5461e6",
|
||||||
|
"associate_public_ip_address": true,
|
||||||
|
"availability_zone": "ap-northeast-1a",
|
||||||
|
"capacity_reservation_specification": [
|
||||||
|
{
|
||||||
|
"capacity_reservation_preference": "open",
|
||||||
|
"capacity_reservation_target": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cpu_core_count": 1,
|
||||||
|
"cpu_options": [
|
||||||
|
{
|
||||||
|
"amd_sev_snp": "",
|
||||||
|
"core_count": 1,
|
||||||
|
"threads_per_core": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cpu_threads_per_core": 1,
|
||||||
|
"credit_specification": [
|
||||||
|
{
|
||||||
|
"cpu_credits": "standard"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"disable_api_stop": false,
|
||||||
|
"disable_api_termination": false,
|
||||||
|
"ebs_block_device": [],
|
||||||
|
"ebs_optimized": false,
|
||||||
|
"enable_primary_ipv6": null,
|
||||||
|
"enclave_options": [
|
||||||
|
{
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ephemeral_block_device": [],
|
||||||
|
"get_password_data": false,
|
||||||
|
"hibernation": false,
|
||||||
|
"host_id": "",
|
||||||
|
"host_resource_group_arn": null,
|
||||||
|
"iam_instance_profile": "",
|
||||||
|
"id": "i-0dd98f633fd5461e6",
|
||||||
|
"instance_initiated_shutdown_behavior": "stop",
|
||||||
|
"instance_lifecycle": "",
|
||||||
|
"instance_market_options": [],
|
||||||
|
"instance_state": "running",
|
||||||
|
"instance_type": "t2.small",
|
||||||
|
"ipv6_address_count": 0,
|
||||||
|
"ipv6_addresses": [],
|
||||||
|
"key_name": "",
|
||||||
|
"launch_template": [],
|
||||||
|
"maintenance_options": [
|
||||||
|
{
|
||||||
|
"auto_recovery": "default"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata_options": [
|
||||||
|
{
|
||||||
|
"http_endpoint": "enabled",
|
||||||
|
"http_protocol_ipv6": "disabled",
|
||||||
|
"http_put_response_hop_limit": 2,
|
||||||
|
"http_tokens": "required",
|
||||||
|
"instance_metadata_tags": "disabled"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"monitoring": false,
|
||||||
|
"network_interface": [],
|
||||||
|
"outpost_arn": "",
|
||||||
|
"password_data": "",
|
||||||
|
"placement_group": "",
|
||||||
|
"placement_partition_number": 0,
|
||||||
|
"primary_network_interface_id": "eni-04623eb60f3d98d70",
|
||||||
|
"private_dns": "ip-172-31-28-119.ap-northeast-1.compute.internal",
|
||||||
|
"private_dns_name_options": [
|
||||||
|
{
|
||||||
|
"enable_resource_name_dns_a_record": false,
|
||||||
|
"enable_resource_name_dns_aaaa_record": false,
|
||||||
|
"hostname_type": "ip-name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"private_ip": "172.31.28.119",
|
||||||
|
"public_dns": "ec2-54-178-34-13.ap-northeast-1.compute.amazonaws.com",
|
||||||
|
"public_ip": "54.178.34.13",
|
||||||
|
"root_block_device": [
|
||||||
|
{
|
||||||
|
"delete_on_termination": true,
|
||||||
|
"device_name": "/dev/xvda",
|
||||||
|
"encrypted": false,
|
||||||
|
"iops": 3000,
|
||||||
|
"kms_key_id": "",
|
||||||
|
"tags": {},
|
||||||
|
"tags_all": {},
|
||||||
|
"throughput": 125,
|
||||||
|
"volume_id": "vol-03b177acfbca431c2",
|
||||||
|
"volume_size": 8,
|
||||||
|
"volume_type": "gp3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"secondary_private_ips": [],
|
||||||
|
"security_groups": [
|
||||||
|
"default"
|
||||||
|
],
|
||||||
|
"source_dest_check": true,
|
||||||
|
"spot_instance_request_id": "",
|
||||||
|
"subnet_id": "subnet-c91da0be",
|
||||||
|
"tags": {
|
||||||
|
"Name": "user01-web1"
|
||||||
|
},
|
||||||
|
"tags_all": {
|
||||||
|
"Name": "user01-web1"
|
||||||
|
},
|
||||||
|
"tenancy": "default",
|
||||||
|
"timeouts": null,
|
||||||
|
"user_data": null,
|
||||||
|
"user_data_base64": null,
|
||||||
|
"user_data_replace_on_change": false,
|
||||||
|
"volume_tags": null,
|
||||||
|
"vpc_security_group_ids": [
|
||||||
|
"sg-24c5aa41"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMCwicmVhZCI6OTAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"check_results": null
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
#
|
||||||
|
instance_name = "user01-web1"
|
||||||
|
instance_type = "t2.small"
|
||||||
|
ami = "ami-0f75d1a8c9141bd00"
|
||||||
|
availability_zone = "ap-northeast-1a"
|
|
@ -0,0 +1,16 @@
|
||||||
|
variable "region" {
|
||||||
|
type = string
|
||||||
|
default = "ap-northeast-1"
|
||||||
|
}
|
||||||
|
variable "availability_zone" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
variable "instance_name" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
variable "instance_type" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
variable "ami" {
|
||||||
|
type = string
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEAmWl8Vr19yjtWrIM5G1h1mPX3yJ8OYH0UstgVEEY4g6uxqZvE
|
||||||
|
3jm37NEve+zJZhs2QaNtA4LtXJkmgNUNEPyd6bsJAwr1dQ9Aessot3TgdfgjzxiE
|
||||||
|
BCQeWlHp5tdmoqaOHGV7Hu8IVl6BUUOmhUkGaOkMBxAlnaG+/EA1u50hr/kuAn+j
|
||||||
|
l/WekKUhXDpcOFq9pBFgNrpHOH8TUQm1t5RxCxLvCwX9kizdWIEeNdr81G3azICO
|
||||||
|
7jGJqw3IEISSYk8pIj6zqsBOAJT8zKP2xCOKH+a4S0d0jxIJ/TPDvy4lwDFL9PtZ
|
||||||
|
8QwciYyjnSVHj8dNwvCPU7Q6IAavmfbJvatkdQIDAQABAoIBABNCrx2kxLozIPqf
|
||||||
|
rvfD71+44dcKQR/UFFkvz9UvO8EsOS32JI1R6cmNqcyBOffbysAK6JDcSzio8bCT
|
||||||
|
DwTm8lx54vPC2HZN5+aCwyXlQpkNAlHp3gk3D6h/SEJ3IKejCYx/ISoNEJrnWoz9
|
||||||
|
VVa+iFN7jssEN/TGbdf1p8laPPR+voXs6fiOHA0oQbZa+BNwdhFT5sPv96z3Ougj
|
||||||
|
fn/4Kt3DPvdiXS5GyVw+Bwdm4L9QxBPT1+vxyH+jGmBz6WR02F/ost2NBYGbuuvJ
|
||||||
|
cE7xq1jvJoKRqbL2TVBYwZutvboBRQttgX/Nv2zT8N5o9yY901iBLJ7pGbPt1VPs
|
||||||
|
6ARp6LECgYEAyqHlxYMvE4YAhbZSBuDifRP8OLDamOfFo6SKuWEJvCsp2zZrRHks
|
||||||
|
cw+0zB4YtEoJfvBmQPGk6G+vzD7q7pLmsKR8wyGoHP4FkQ/HIffyjn0AjdIGMbH1
|
||||||
|
NVyy0tr7BHpl4fiJJuOy4m8m74VP2LBhyAdTa7mixC7q325fcSppeqMCgYEAwdD/
|
||||||
|
7BlA3JTGvkoKO8D9PuOnYkUSt/5e1p28YihJZ6dX0WpHsfvhcAoXww0+2zPZnM5K
|
||||||
|
ecz0iMt/BokY5eIhga1jxEjhVkOcWPXZ12Yz5gZiQ0+OyYCk2WXyQcW6nZvyhZfP
|
||||||
|
AziugFbG2Ts+67lImZKnD3AS72BCep3FBaX9bgcCgYEAsMczZPAApwC1/fFEeJnD
|
||||||
|
HinMVkz8OH+jbhODrxzYWGAzwPol9PPd8nfWXGk5VjhtNmBWZPwryVh+vyp43TAt
|
||||||
|
sBegfMAlIT3/70Ebkif1ZZfqXs/G9Z3ydd5saAYBDjQWJGEmjlYB3wfnqPjd4wZm
|
||||||
|
GBNEFOw78vmXkNuCyoCcyw8CgYBBUbWelVg1vvJIGV3fi4gN1N2JkevgFJtTyy89
|
||||||
|
CYTLqStAiYgGJPRyNQSTGPixGYVigme5KujS3Xo+8p9wgkh2ksAH2+QNlZWwqZK0
|
||||||
|
NF6TTF17f+mIYZGtLt15azEcgv02JtZ+qHCvEg/MEFqBSR19nF4vJr9K628cMeW/
|
||||||
|
pJSHqwKBgD3Ie0lzBM0z9MwG59p5OZvfAUMexcSnn6aBg6ICe3lk8QkkKYR5TuKN
|
||||||
|
7UcXbPKAHVsxq7j/sw31zK65ZFQhl6HzuguekPS8F0h6BMtVVPyoQrhh9gk2gANu
|
||||||
|
DfBhDCEdmjzQ8ztLjyTr6o2HMSJsierCt+AtKS01m1RFxKeXo8fd
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,29 @@
|
||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdz
|
||||||
|
c2gtcnNhAAAAAwEAAQAAAQEAmWl8Vr19yjtWrIM5G1h1mPX3yJ8OYH0UstgVEEY4
|
||||||
|
g6uxqZvE3jm37NEve+zJZhs2QaNtA4LtXJkmgNUNEPyd6bsJAwr1dQ9Aessot3Tg
|
||||||
|
dfgjzxiEBCQeWlHp5tdmoqaOHGV7Hu8IVl6BUUOmhUkGaOkMBxAlnaG+/EA1u50h
|
||||||
|
r/kuAn+jl/WekKUhXDpcOFq9pBFgNrpHOH8TUQm1t5RxCxLvCwX9kizdWIEeNdr8
|
||||||
|
1G3azICO7jGJqw3IEISSYk8pIj6zqsBOAJT8zKP2xCOKH+a4S0d0jxIJ/TPDvy4l
|
||||||
|
wDFL9PtZ8QwciYyjnSVHj8dNwvCPU7Q6IAavmfbJvatkdQAAA7imsP9sprD/bAAA
|
||||||
|
AAdzc2gtcnNhAAABAQCZaXxWvX3KO1asgzkbWHWY9ffInw5gfRSy2BUQRjiDq7Gp
|
||||||
|
m8TeObfs0S977MlmGzZBo20Dgu1cmSaA1Q0Q/J3puwkDCvV1D0B6yyi3dOB1+CPP
|
||||||
|
GIQEJB5aUenm12aipo4cZXse7whWXoFRQ6aFSQZo6QwHECWdob78QDW7nSGv+S4C
|
||||||
|
f6OX9Z6QpSFcOlw4Wr2kEWA2ukc4fxNRCbW3lHELEu8LBf2SLN1YgR412vzUbdrM
|
||||||
|
gI7uMYmrDcgQhJJiTykiPrOqwE4AlPzMo/bEI4of5rhLR3SPEgn9M8O/LiXAMUv0
|
||||||
|
+1nxDByJjKOdJUePx03C8I9TtDogBq+Z9sm9q2R1AAAAAwEAAQAAAQATQq8dpMS6
|
||||||
|
MyD6n673w+9fuOHXCkEf1BRZL8/VLzvBLDkt9iSNUenJjanMgTn328rACuiQ3Es4
|
||||||
|
qPGwkw8E5vJceeLzwth2TefmgsMl5UKZDQJR6d4JNw+of0hCdyCnowmMfyEqDRCa
|
||||||
|
51qM/VVWvohTe47LBDf0xm3X9afJWjz0fr6F7On4jhwNKEG2WvgTcHYRU+bD7/es
|
||||||
|
9zroI35/+Crdwz73Yl0uRslcPgcHZuC/UMQT09fr8ch/oxpgc+lkdNhf6LLdjQWB
|
||||||
|
m7rryXBO8atY7yaCkamy9k1QWMGbrb26AUULbYF/zb9s0/DeaPcmPdNYgSye6Rmz
|
||||||
|
7dVT7OgEaeixAAAAgD3Ie0lzBM0z9MwG59p5OZvfAUMexcSnn6aBg6ICe3lk8Qkk
|
||||||
|
KYR5TuKN7UcXbPKAHVsxq7j/sw31zK65ZFQhl6HzuguekPS8F0h6BMtVVPyoQrhh
|
||||||
|
9gk2gANuDfBhDCEdmjzQ8ztLjyTr6o2HMSJsierCt+AtKS01m1RFxKeXo8fdAAAA
|
||||||
|
gQDKoeXFgy8ThgCFtlIG4OJ9E/w4sNqY58WjpIq5YQm8KynbNmtEeSxzD7TMHhi0
|
||||||
|
Sgl+8GZA8aTob6/MPurukuawpHzDIagc/gWRD8ch9/KOfQCN0gYxsfU1XLLS2vsE
|
||||||
|
emXh+Ikm47LibybvhU/YsGHIB1NruaLELurfbl9xKml6owAAAIEAwdD/7BlA3JTG
|
||||||
|
vkoKO8D9PuOnYkUSt/5e1p28YihJZ6dX0WpHsfvhcAoXww0+2zPZnM5Kecz0iMt/
|
||||||
|
BokY5eIhga1jxEjhVkOcWPXZ12Yz5gZiQ0+OyYCk2WXyQcW6nZvyhZfPAziugFbG
|
||||||
|
2Ts+67lImZKnD3AS72BCep3FBaX9bgcAAAAAAQID
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,24 @@
|
||||||
|
# This file is maintained automatically by "terraform init".
|
||||||
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/aws" {
|
||||||
|
version = "5.84.0"
|
||||||
|
hashes = [
|
||||||
|
"h1:dwpeFUdcxgXVAc0JSqO57xf0/r2qOBLPloombCQWFz8=",
|
||||||
|
"zh:078f77438aba6ec8bf9154b7d223e5c71c48d805d6cd3bcf9db0cc1e82668ac3",
|
||||||
|
"zh:1f6591ff96be00501e71b792ed3a5a14b21ff03afec9a1c4a3fd9300e6e5b674",
|
||||||
|
"zh:2ab694e022e81dd74485351c5836148a842ed71cf640664c9d871cb517b09602",
|
||||||
|
"zh:33c8ccb6e3dc496e828a7572dd981366c6271075c1189f249b9b5236361d7eff",
|
||||||
|
"zh:6f31068ebad1d627e421c72ccdaafe678c53600ca73714e977bf45ff43ae5d17",
|
||||||
|
"zh:7488623dccfb639347cae66f9001d39cf06b92e8081975235a1ac3a0ac3f44aa",
|
||||||
|
"zh:7f042b78b9690a8725c95b91a70fc8e264011b836605bcc342ac297b9ea3937d",
|
||||||
|
"zh:88b56ac6c7209dc0a775b79975a371918f3aed8f015c37d5899f31deff37c61a",
|
||||||
|
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||||
|
"zh:a1979ba840d704af0932f8de5f541cbb4caa9b6bbd25ed552a24e6772175ba07",
|
||||||
|
"zh:b058c0533dae580e69d1adbc1f69e6a80632374abfc10e8634d06187a108e87b",
|
||||||
|
"zh:c88610af9cf957f8dcf4382e0c9ca566ef10e3290f5de01d4d90b2d81b078aa8",
|
||||||
|
"zh:e9562c055a2247d0c287772b55abef468c79f8d66a74780fe1c5e5dae1a284a9",
|
||||||
|
"zh:f7a7c71d28441d925a25c08c4485c015b2d9f0338bc9707443e91ff8e161d3d9",
|
||||||
|
"zh:fee533e81976d0900aa6fa443dc54ef171cbd901847f28a6e8edb1d161fa6fde",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,375 @@
|
||||||
|
Copyright (c) 2017 HashiCorp, Inc.
|
||||||
|
|
||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
|
@ -0,0 +1,6 @@
|
||||||
|
mysql -h ansible-rds.cikxgx5zabf3.ap-northeast-1.rds.amazonaws.com -u admin -p
|
||||||
|
|
||||||
|
# DB情報の設定
|
||||||
|
db_name = "mysql"
|
||||||
|
username = "admin"
|
||||||
|
password = "passw0rd!"
|
|
@ -0,0 +1,30 @@
|
||||||
|
# ---------------------------
|
||||||
|
# RDS
|
||||||
|
# ---------------------------
|
||||||
|
|
||||||
|
# RDSインスタンスの作成
|
||||||
|
resource "aws_db_instance" "ansible_rds" {
|
||||||
|
identifier = "ansible-rds"
|
||||||
|
# インスタンスクラス、ストレージサイズの指定
|
||||||
|
instance_class = "db.t3.micro"
|
||||||
|
allocated_storage = 20
|
||||||
|
# DBサブネットグループの指定
|
||||||
|
db_subnet_group_name = "jenkins-db-subnet-group"
|
||||||
|
# セキュリティグループの指定
|
||||||
|
vpc_security_group_ids = [
|
||||||
|
"sg-007ef3c5be8c5e086"
|
||||||
|
]
|
||||||
|
# DBエンジンの指定
|
||||||
|
engine = "mysql"
|
||||||
|
engine_version = "8.0.35"
|
||||||
|
# DB情報の設定
|
||||||
|
db_name = "mysql"
|
||||||
|
username = "admin"
|
||||||
|
password = "passw0rd!"
|
||||||
|
# 設定変更の即時反映
|
||||||
|
apply_immediately = true
|
||||||
|
# DB削除時にスナップショットを作成しない
|
||||||
|
skip_final_snapshot = true
|
||||||
|
# バックアップ保持期間(0に設定すると自動バックアップ無効)
|
||||||
|
backup_retention_period = "10"
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"terraform_version": "1.9.5",
|
||||||
|
"serial": 1,
|
||||||
|
"lineage": "e4701827-11eb-8fc2-447d-cfb58d1ebb4f",
|
||||||
|
"outputs": {},
|
||||||
|
"resources": [],
|
||||||
|
"check_results": null
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
|
||||||
|
environment {
|
||||||
|
AWS_ACCESS_KEY_ID = credentials('aws-access-key-id') // JenkinsのCredentialで設定したキー
|
||||||
|
AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key') // 同じくCredentialで設定したシークレットキー
|
||||||
|
}
|
||||||
|
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout(true)
|
||||||
|
}
|
||||||
|
tools {
|
||||||
|
terraform "Terraform-1.9.5"
|
||||||
|
}
|
||||||
|
stages{
|
||||||
|
stage("checkout") {
|
||||||
|
when {
|
||||||
|
expression {
|
||||||
|
return stats.toBoolean()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// Iacコードを取得
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform init") {
|
||||||
|
when {
|
||||||
|
expression {
|
||||||
|
return stats.toBoolean()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// 初期化
|
||||||
|
dir('demo2'){
|
||||||
|
sh "terraform init -no-color"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform plan") {
|
||||||
|
when {
|
||||||
|
expression {
|
||||||
|
return stats.toBoolean()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// 実行計画
|
||||||
|
dir('demo2'){
|
||||||
|
sh "terraform plan -no-color -out=plan.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform apply") {
|
||||||
|
when {
|
||||||
|
expression {
|
||||||
|
return stats.toBoolean()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// 実行
|
||||||
|
dir('demo2'){
|
||||||
|
sh "terraform apply plan.out -no-color"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("terraform destroy") {
|
||||||
|
when {
|
||||||
|
expression {
|
||||||
|
return !stats.toBoolean()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// 実行
|
||||||
|
dir('demo2'){
|
||||||
|
sh "terraform destroy -auto-approve -no-color"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
# IaCセッション 自動化デモ
|
||||||
|
|
||||||
|
これは、Infrastructure as Code(IaC)の化デモのコードです。
|
|
@ -0,0 +1,22 @@
|
||||||
|
## プロバイダの指定
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1" # 東京リージョン
|
||||||
|
}
|
||||||
|
# EC2インスタンスの作成(Web1)
|
||||||
|
resource "aws_instance" "iac_web1" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00" # AMIの指定 (AmazonLinux2023)
|
||||||
|
instance_type = "t3.micro" # インスタンスタイプの指定
|
||||||
|
availability_zone = "ap-northeast-1a" # アベイラビリティーゾーンの指定
|
||||||
|
tags = {
|
||||||
|
Name = "iac_web1" # タグ名の指定
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# EC2インスタンスの作成(Web2)
|
||||||
|
resource "aws_instance" "iac_web2" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00" # AMIの指定 (AmazonLinux2023)
|
||||||
|
instance_type = "t3.micro" # インスタンスタイプの指定
|
||||||
|
availability_zone = "ap-northeast-1a" # アベイラビリティーゾーンの指定
|
||||||
|
tags = {
|
||||||
|
Name = "iac_web2" # タグ名の指定
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,175 @@
|
||||||
|
provider "aws" {
|
||||||
|
region = "ap-northeast-1"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_vpc" "demo_vpc_main" {
|
||||||
|
cidr_block = "10.9.0.0/16"
|
||||||
|
enable_dns_support = true
|
||||||
|
enable_dns_hostnames = true
|
||||||
|
tags = {
|
||||||
|
Name = "demo_vpc_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "demo_subnet_public_1" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
cidr_block = "10.9.1.0/24"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
availability_zone = "ap-northeast-1a"
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_subnet_public_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "demo_subnet_public_2" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
cidr_block = "10.9.2.0/24"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
availability_zone = "ap-northeast-1c"
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_subnet_public_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_internet_gateway" "demo_igw_main" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
tags = {
|
||||||
|
Name = "demo_igw_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table" "demo_route_table_main" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
route {
|
||||||
|
cidr_block = "0.0.0.0/0"
|
||||||
|
gateway_id = aws_internet_gateway.demo_igw_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_route_table_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table_association" "demo_assoc_public_1" {
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_1.id
|
||||||
|
route_table_id = aws_route_table.demo_route_table_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table_association" "demo_assoc_public_2" {
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_2.id
|
||||||
|
route_table_id = aws_route_table.demo_route_table_main.id
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_security_group" "demo_sg_web" {
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
ingress {
|
||||||
|
from_port = 80
|
||||||
|
to_port = 80
|
||||||
|
protocol = "tcp"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
|
||||||
|
egress {
|
||||||
|
from_port = 0
|
||||||
|
to_port = 0
|
||||||
|
protocol = "-1"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_sg_web"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "demo_web_1" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00"
|
||||||
|
instance_type = "t2.micro"
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_1.id
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
|
||||||
|
user_data = <<-EOF
|
||||||
|
#!/bin/bash
|
||||||
|
yum update -y
|
||||||
|
yum install -y httpd
|
||||||
|
echo "<html><body><h1>Terraformで作成されたWebサーバ1</h1></body></html>" > /var/www/html/index.html
|
||||||
|
systemctl enable httpd
|
||||||
|
systemctl start httpd
|
||||||
|
EOF
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_web_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "demo_web_2" {
|
||||||
|
ami = "ami-0f75d1a8c9141bd00"
|
||||||
|
instance_type = "t2.micro"
|
||||||
|
subnet_id = aws_subnet.demo_subnet_public_2.id
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
|
||||||
|
user_data = <<-EOF
|
||||||
|
#!/bin/bash
|
||||||
|
yum update -y
|
||||||
|
yum install -y httpd
|
||||||
|
echo "<html><body><h1>Terraformで作成されたWebサーバ2</h1></body></html>" > /var/www/html/index.html
|
||||||
|
systemctl enable httpd
|
||||||
|
systemctl start httpd
|
||||||
|
EOF
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_web_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb" "demo_lb_main" {
|
||||||
|
name = "demo-lb-main"
|
||||||
|
internal = false
|
||||||
|
load_balancer_type = "application"
|
||||||
|
security_groups = [aws_security_group.demo_sg_web.id]
|
||||||
|
subnets = [
|
||||||
|
aws_subnet.demo_subnet_public_1.id,
|
||||||
|
aws_subnet.demo_subnet_public_2.id
|
||||||
|
]
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_lb_main"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group" "demo_tg_web" {
|
||||||
|
name = "demo-tg-web"
|
||||||
|
port = 80
|
||||||
|
protocol = "HTTP"
|
||||||
|
vpc_id = aws_vpc.demo_vpc_main.id
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "demo_tg_web"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group_attachment" "demo_attach_web_1" {
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
target_id = aws_instance.demo_web_1.id
|
||||||
|
port = 80
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_target_group_attachment" "demo_attach_web_2" {
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
target_id = aws_instance.demo_web_2.id
|
||||||
|
port = 80
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lb_listener" "demo_listener_http" {
|
||||||
|
load_balancer_arn = aws_lb.demo_lb_main.arn
|
||||||
|
port = 80
|
||||||
|
protocol = "HTTP"
|
||||||
|
|
||||||
|
default_action {
|
||||||
|
type = "forward"
|
||||||
|
target_group_arn = aws_lb_target_group.demo_tg_web.arn
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
[default]
|
||||||
|
region = ap-northeast-1
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[default]
|
||||||
|
aws_access_key_id = AKIARMLXVAFFJJ7YJACG
|
||||||
|
aws_secret_access_key = MxJ0GkqP3FjpKyT/LvCXw6xswQRkZzl/zPyIplnO
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export AWS_SHARED_CREDENTIALS_FILE=/root/IAM-Users/aws-credentials/credentials
|
||||||
|
export AWS_CONFIG_FILE=/root/IAM-Users/aws-credentials/config
|
|
@ -0,0 +1,25 @@
|
||||||
|
# This file is maintained automatically by "terraform init".
|
||||||
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
|
provider "registry.terraform.io/hashicorp/aws" {
|
||||||
|
version = "5.54.1"
|
||||||
|
constraints = "~> 5.54.1"
|
||||||
|
hashes = [
|
||||||
|
"h1:SOdZNOAcBvbrkV6V1S7UiGh9K//O66qfyXpHgyXeBeI=",
|
||||||
|
"zh:37c09b9a0a0a2f7854fe52c6adb15f71593810b458a8283ed71d68036af7ba3a",
|
||||||
|
"zh:42fe11d87723d4e43b9c6224ae6bacdcb53faee8abc58f0fc625a161d1f71cb1",
|
||||||
|
"zh:57c6dfc46f28c9c2737559bd84acbc05aeae90431e731bb72a0024028a2d2412",
|
||||||
|
"zh:5ba9665a4ca0e182effd75575b19a4d47383ec02662024b9fe26f78286c36619",
|
||||||
|
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||||
|
"zh:b55980be0237644123a02a30b56d4cc03863ef29036c47d6e8ab5429ab45adf5",
|
||||||
|
"zh:b81e7664f10855a3a6fc234a18b4c4f1456273126a40c41516f2061696fb9870",
|
||||||
|
"zh:bd09736ffafd92af104c3c34b5add138ae8db4402eb687863ce472ca7e5ff2e2",
|
||||||
|
"zh:cc2eb1c62fba2a11d1f239e650cc2ae94bcab01c907384dcf2e213a6ee1bd5b2",
|
||||||
|
"zh:e5dc40205d9cf6f353c0ca532ae29afc6c83928bc9bcca47d74b640d3bb5a38c",
|
||||||
|
"zh:ebf1acdcd13f10db1b9c85050ddaadc70ab269c47c5a240753362446442d8371",
|
||||||
|
"zh:f2fc28a4ad94af5e6144a7309286505e3eb7a94d9dc106722b506c372ff7f591",
|
||||||
|
"zh:f49445e8435944df122aa89853260a2716ba8b73d6a6a70cae1661554926d5a2",
|
||||||
|
"zh:fc3b5046e60ae7cab20715be23de8436eb12736136fd6d0f0cc1549ebda6cc73",
|
||||||
|
"zh:fdb98a53500e245a3b5bec077b994da6959dba8fc4eb7534528658d820e06bd5",
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,375 @@
|
||||||
|
Copyright (c) 2017 HashiCorp, Inc.
|
||||||
|
|
||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
|
@ -0,0 +1,71 @@
|
||||||
|
{
|
||||||
|
"Version": "2012-10-17",
|
||||||
|
"Statement": [
|
||||||
|
{
|
||||||
|
"Sid": "VisualEditor0",
|
||||||
|
"Effect": "Allow",
|
||||||
|
"Action": [
|
||||||
|
"ec2:AssociateRouteTable",
|
||||||
|
"ec2:AssociateSubnetCidrBlock",
|
||||||
|
"ec2:AttachInternetGateway",
|
||||||
|
"ec2:AuthorizeSecurityGroupEgress",
|
||||||
|
"ec2:AuthorizeSecurityGroupIngress",
|
||||||
|
"ec2:CreateInternetGateway",
|
||||||
|
"ec2:CreateRoute",
|
||||||
|
"ec2:CreateRouteTable",
|
||||||
|
"ec2:CreateSecurityGroup",
|
||||||
|
"ec2:CreateSubnet",
|
||||||
|
"ec2:CreateTags",
|
||||||
|
"ec2:CreateVPC",
|
||||||
|
"ec2:DeleteInternetGateway",
|
||||||
|
"ec2:DeleteRouteTable",
|
||||||
|
"ec2:DeleteSecurityGroup",
|
||||||
|
"ec2:DeleteSubnet",
|
||||||
|
"ec2:DeleteTags",
|
||||||
|
"ec2:DeleteVPC",
|
||||||
|
"ec2:DescribeAccountAttributes",
|
||||||
|
"ec2:DescribeInstanceAttribute",
|
||||||
|
"ec2:DescribeInstanceCreditSpecifications",
|
||||||
|
"ec2:DescribeInstanceTypes",
|
||||||
|
"ec2:DescribeInstances",
|
||||||
|
"ec2:DescribeInternetGateways",
|
||||||
|
"ec2:DescribeNetworkAcls",
|
||||||
|
"ec2:DescribeNetworkInterfaces",
|
||||||
|
"ec2:DescribeRouteTables",
|
||||||
|
"ec2:DescribeSecurityGroups",
|
||||||
|
"ec2:DescribeSubnets",
|
||||||
|
"ec2:DescribeTags",
|
||||||
|
"ec2:DescribeVolumes",
|
||||||
|
"ec2:DescribeVpcAttribute",
|
||||||
|
"ec2:DescribeVpcs",
|
||||||
|
"ec2:DetachInternetGateway",
|
||||||
|
"ec2:DisassociateRouteTable",
|
||||||
|
"ec2:DisassociateSubnetCidrBlock",
|
||||||
|
"ec2:ModifyInstanceAttribute",
|
||||||
|
"ec2:ModifySubnetAttribute",
|
||||||
|
"ec2:ModifyVpcAttribute",
|
||||||
|
"ec2:ModifyVpcTenancy",
|
||||||
|
"ec2:ReplaceRouteTableAssociation",
|
||||||
|
"ec2:RevokeSecurityGroupEgress",
|
||||||
|
"ec2:RevokeSecurityGroupIngress",
|
||||||
|
"ec2:RunInstances",
|
||||||
|
"ec2:StartInstances",
|
||||||
|
"ec2:StopInstances",
|
||||||
|
"ec2:TerminateInstances"
|
||||||
|
],
|
||||||
|
"Resource": [
|
||||||
|
"*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sid": "VisualEditor1",
|
||||||
|
"Effect": "Allow",
|
||||||
|
"Action": [
|
||||||
|
"ssm:GetParameter"
|
||||||
|
],
|
||||||
|
"Resource": [
|
||||||
|
"*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue