<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.campisano.org/wiki/Oci_(Cloud)/history?feed=atom</id>
	<title>Oci (Cloud) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.campisano.org/wiki/Oci_(Cloud)/history?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://www.campisano.org/wiki/Oci_(Cloud)/history"/>
	<updated>2026-06-29T14:07:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2873&amp;oldid=prev</id>
		<title>T1t0 at 16:43, 23 November 2025</title>
		<link rel="alternate" type="text/html" href="https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2873&amp;oldid=prev"/>
		<updated>2025-11-23T16:43:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:43, 23 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l379&quot;&gt;Line 379:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 379:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	terraform destroy -input=false -var-file=vars.json&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	terraform destroy -input=false -var-file=vars.json&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EOF&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EOF&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Database =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Oracle offer a free db instance&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;an example java connection:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;docker run -it --rm openjdk:11 /bin/bash&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wget https://download.oracle.com/otn-pub/otn_software/jdbc/215/ojdbc11.jar&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cat &amp;gt; JDBCExample.java &amp;lt;&amp;lt; &#039;EOF&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;import java.sql.Connection;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;import java.sql.DriverManager;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;import java.sql.SQLException;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;public class JDBCExample {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    public static void main(String[] args) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        try (Connection conn = DriverManager.getConnection(&quot;jdbc:oracle:thin:@(description= (retry_count=1)(retry_delay=3)(address=(protocol=tcps)(port=1521)(host=adb.eu-amsterdam-1.oraclecloud.com))(connect_data=(service_name=gef737c78aa7665_test_medium.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)(ssl_server_cert_dn=\&quot;CN=adb.eu-amsterdam-1.oraclecloud.com, OU=Oracle ADB AMSTERDAM, O=Oracle Corporation, L=Redwood City, ST=California, C=US\&quot;)))&quot;, &quot;admin&quot;, &quot;&amp;lt;YOUR_PASSWORD&amp;gt;&quot;)) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            if (conn != null) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                System.out.println(&quot;Connected to the database!&quot;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            } else {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                System.out.println(&quot;Failed to make connection!&quot;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        } catch (SQLException e) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            System.err.format(&quot;SQL State: %s\n%s&quot;, e.getSQLState(), e.getMessage());&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        } catch (Exception e) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            e.printStackTrace();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;EOF&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;javac JDBCExample.java&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;java -Djava.security.egd=file:/dev/./urandom -cp &quot;$(pwd)/ojdbc11.jar:$(pwd)&quot; JDBCExample&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>T1t0</name></author>
	</entry>
	<entry>
		<id>https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2603&amp;oldid=prev</id>
		<title>T1t0: /* OCI - Oracle Cloud Infrastructure */</title>
		<link rel="alternate" type="text/html" href="https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2603&amp;oldid=prev"/>
		<updated>2023-08-26T13:58:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;OCI - Oracle Cloud Infrastructure&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:58, 26 August 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= OCI - Oracle Cloud Infrastructure =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= OCI - Oracle Cloud Infrastructure =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There is a really free and useful [https://www.oracle.com/cloud/free/#always-free free tier offer at Oracle Cloud Infrastructure (OCI)], where we can obtain up two Virtual Private Server (VPS) with 1 GB of memory and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;100 &lt;/del&gt;GB of disk &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;storage &lt;/del&gt;(a free Oracle database instance and others stuffs), completely free and forever ([https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm under certain limits] like bandwidth consumption etc.), so lets start with a cuple of free VPS using [https://www.terraform.io/ Terraform].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There is a really free and useful [https://www.oracle.com/cloud/free/#always-free free tier offer at Oracle Cloud Infrastructure (OCI)], where we can obtain&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, for instance, &lt;/ins&gt;up two Virtual Private Server (VPS) with &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AMD/Intel CPU and &lt;/ins&gt;1 GB of memory&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;also up to 4 ARM64 CPU with 24 GB of memory (there are tricky limits for the storage disk, 200 GB free in total, but each instance requires 50GB so you can obtain up to 4 VPS with 50 &lt;/ins&gt;GB of disk &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;at max, not bad! more details [https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm here]) &lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and &lt;/ins&gt;a free Oracle database instance and others stuffs), completely free and forever ([https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm under certain limits] like bandwidth consumption etc.), so lets start with a cuple of free VPS using [https://www.terraform.io/ Terraform].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Configure a OCI account =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Configure a OCI account =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>T1t0</name></author>
	</entry>
	<entry>
		<id>https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2602&amp;oldid=prev</id>
		<title>T1t0: /* Configure a OCI account */</title>
		<link rel="alternate" type="text/html" href="https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2602&amp;oldid=prev"/>
		<updated>2023-08-26T13:49:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Configure a OCI account&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:49, 26 August 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Choose a O.S. image to use in your VPSs. A list is available [https://docs.oracle.com/en-us/iaas/images/ here]. In this example we will use &amp;#039;&amp;#039;Canonical-Ubuntu-20.04-Minimal-2021.05.17-0&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Choose a O.S. image to use in your VPSs. A list is available [https://docs.oracle.com/en-us/iaas/images/ here]. In this example we will use &amp;#039;&amp;#039;Canonical-Ubuntu-20.04-Minimal-2021.05.17-0&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Note about ARM Ubuntu minimal images: from this link [https://docs.oracle.com/en-us/iaas/Content/Compute/References/images.htm#OracleProvided_Images OracleProvided_Images]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;x86 shapes and Arm-based shapes are supported with this image. For Arm-based shapes, use the Ubuntu image, not Minimal Ubuntu.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Create a custom ssh keypair =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Create a custom ssh keypair =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>T1t0</name></author>
	</entry>
	<entry>
		<id>https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2601&amp;oldid=prev</id>
		<title>T1t0: /* Setup free virtual machine using Terraform */</title>
		<link rel="alternate" type="text/html" href="https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2601&amp;oldid=prev"/>
		<updated>2023-08-23T01:27:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Setup free virtual machine using Terraform&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:27, 23 August 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l40&quot;&gt;Line 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Setup free virtual machine using Terraform =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Setup free virtual machine using Terraform =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note: the source code is available at [https://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;github&lt;/del&gt;.com/campisano/terraform_oci_module &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Github &lt;/del&gt;- terraform_oci_module].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note: the source code is available at [https://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gitlab&lt;/ins&gt;.com/campisano/terraform_oci_module &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GitLab &lt;/ins&gt;- terraform_oci_module].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* configure Terraform&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* configure Terraform&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>T1t0</name></author>
	</entry>
	<entry>
		<id>https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2600&amp;oldid=prev</id>
		<title>T1t0: /* References */</title>
		<link rel="alternate" type="text/html" href="https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2600&amp;oldid=prev"/>
		<updated>2021-06-13T21:19:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;References&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:19, 13 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l383&quot;&gt;Line 383:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 383:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://dev.to/phocks/how-to-get-2x-oracle-cloud-servers-free-forever-4o22&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://dev.to/phocks/how-to-get-2x-oracle-cloud-servers-free-forever-4o22&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://github.com/terraform-providers/terraform-provider-oci/blob/master/examples/always_free/main.tf&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://github.com/terraform-providers/terraform-provider-oci/blob/master/examples/always_free/main.tf&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformproviderconfiguration.htm#terraformproviderconfiguration_topic-SDK_and_CLI_Config_File&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* https://docs.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:oci]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:oci]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:cloud]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:cloud]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:terraform]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:terraform]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>T1t0</name></author>
	</entry>
	<entry>
		<id>https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2599&amp;oldid=prev</id>
		<title>T1t0: Created page with &quot;= OCI - Oracle Cloud Infrastructure =  There is a really free and useful [https://www.oracle.com/cloud/free/#always-free free tier offer at Oracle Cloud Infrastructure (OCI)],...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.campisano.org/mediawiki/index.php?title=Oci_(Cloud)&amp;diff=2599&amp;oldid=prev"/>
		<updated>2021-06-13T21:15:23Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= OCI - Oracle Cloud Infrastructure =  There is a really free and useful [https://www.oracle.com/cloud/free/#always-free free tier offer at Oracle Cloud Infrastructure (OCI)],...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= OCI - Oracle Cloud Infrastructure =&lt;br /&gt;
&lt;br /&gt;
There is a really free and useful [https://www.oracle.com/cloud/free/#always-free free tier offer at Oracle Cloud Infrastructure (OCI)], where we can obtain up two Virtual Private Server (VPS) with 1 GB of memory and 100 GB of disk storage (a free Oracle database instance and others stuffs), completely free and forever ([https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm under certain limits] like bandwidth consumption etc.), so lets start with a cuple of free VPS using [https://www.terraform.io/ Terraform].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure a OCI account =&lt;br /&gt;
&lt;br /&gt;
* Create an [https://www.oracle.com/cloud/free/ OCI free account].&lt;br /&gt;
&lt;br /&gt;
* Create the Oracle config file (&amp;#039;&amp;#039;~/.oci/config&amp;#039;&amp;#039;) configured to have access to the OCI API services using [https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformproviderconfiguration.htm#APIKeyAuth APIKeyAuth] authentication. This will be used by Terraform to create and manage resources e.g. the VPS creation. Follow those steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
go to https://cloud.oracle.com/identity/users&lt;br /&gt;
open you user api-key section&lt;br /&gt;
click on add apikey&lt;br /&gt;
download private key to ~/.oci/my-api-key.pem&lt;br /&gt;
click on create&lt;br /&gt;
save the config file snippet content in ~/.oci/config sobstituting the key_file value with ~/.oci/my-api-key.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Configure the &amp;#039;&amp;#039;tenancy_ocid&amp;#039;&amp;#039; variable in the &amp;#039;&amp;#039;var.json&amp;#039;&amp;#039; file with the value saved in the &amp;#039;&amp;#039;~/.oci/config&amp;#039;&amp;#039; file.&lt;br /&gt;
&lt;br /&gt;
* Choose a O.S. image to use in your VPSs. A list is available [https://docs.oracle.com/en-us/iaas/images/ here]. In this example we will use &amp;#039;&amp;#039;Canonical-Ubuntu-20.04-Minimal-2021.05.17-0&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= Create a custom ssh keypair =&lt;br /&gt;
&lt;br /&gt;
* Define a SSH Key Pair to have access to the VPS. To create a new keypair, do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -q -t rsa -b 2048 -N &amp;#039;&amp;#039; -f ~/.ssh/oci-keypair&lt;br /&gt;
chmod 400 ~/.ssh/oci-keypair&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Install Terraform =&lt;br /&gt;
&lt;br /&gt;
[https://www.terraform.io/ Terraform] allows to manage Infrastructure as Code, so that you can programmatically define (and versioning) your infrastructure using code and setup virtual servers and other resources in the Cloud in few minutes.&lt;br /&gt;
&lt;br /&gt;
To install, follow [[Terraform_(Application)]] instructions or see [https://www.terraform.io/downloads.html the official doc].&lt;br /&gt;
&lt;br /&gt;
= Setup free virtual machine using Terraform =&lt;br /&gt;
&lt;br /&gt;
Note: the source code is available at [https://github.com/campisano/terraform_oci_module Github - terraform_oci_module].&lt;br /&gt;
&lt;br /&gt;
* configure Terraform&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; versions.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
terraform {&lt;br /&gt;
  required_version = &amp;quot;&amp;gt;= 0.13&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  required_providers {&lt;br /&gt;
    oci = &amp;quot;&amp;gt;= 4.0&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* define a oci provider&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; provider.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
provider &amp;quot;oci&amp;quot; {&lt;br /&gt;
  auth                = var.oci_provider.auth&lt;br /&gt;
  config_file_profile = var.oci_provider.config_file_profile&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* create a module to optionally manage multiple virtual networks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p modules/oci/vcn&lt;br /&gt;
cat &amp;gt; modules/oci/vcn/input.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
variable &amp;quot;name&amp;quot;           { type = string }&lt;br /&gt;
variable &amp;quot;compartment_id&amp;quot; { type = string }&lt;br /&gt;
variable &amp;quot;cidr_block&amp;quot;     { type = string }&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; modules/oci/vcn/main.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
resource &amp;quot;oci_core_vcn&amp;quot; &amp;quot;vcn&amp;quot; {&lt;br /&gt;
  compartment_id = var.compartment_id&lt;br /&gt;
  display_name   = var.name&lt;br /&gt;
  cidr_block     = var.cidr_block&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
resource &amp;quot;oci_core_internet_gateway&amp;quot; &amp;quot;internet_gateway&amp;quot; {&lt;br /&gt;
  compartment_id = var.compartment_id&lt;br /&gt;
  display_name   = &amp;quot;${var.name}-internet-gateway&amp;quot;&lt;br /&gt;
  vcn_id         = oci_core_vcn.vcn.id&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
resource &amp;quot;oci_core_default_route_table&amp;quot; &amp;quot;default_route_table&amp;quot; {&lt;br /&gt;
  display_name               = &amp;quot;${var.name}-default-route-table&amp;quot;&lt;br /&gt;
  manage_default_resource_id = oci_core_vcn.vcn.default_route_table_id&lt;br /&gt;
&lt;br /&gt;
  route_rules {&lt;br /&gt;
    destination       = &amp;quot;0.0.0.0/0&amp;quot;&lt;br /&gt;
    destination_type  = &amp;quot;CIDR_BLOCK&amp;quot;&lt;br /&gt;
    network_entity_id = oci_core_internet_gateway.internet_gateway.id&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; modules/oci/vcn/output.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
output &amp;quot;vcn&amp;quot; {&lt;br /&gt;
  value = oci_core_vcn.vcn&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* create a module to optionally manage multiple subnets&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p modules/oci/subnet&lt;br /&gt;
cat &amp;gt; modules/oci/subnet/input.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
variable &amp;quot;name&amp;quot;           { type = string }&lt;br /&gt;
variable &amp;quot;compartment_id&amp;quot; { type = string }&lt;br /&gt;
variable &amp;quot;vcn&amp;quot;            { type = any }&lt;br /&gt;
variable &amp;quot;ad_name&amp;quot;        { type = string }&lt;br /&gt;
variable &amp;quot;cidr_block&amp;quot;     { type = string }&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; modules/oci/subnet/main.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
resource &amp;quot;oci_core_subnet&amp;quot; &amp;quot;subnet&amp;quot; {&lt;br /&gt;
  compartment_id      = var.compartment_id&lt;br /&gt;
  display_name        = var.name&lt;br /&gt;
  availability_domain = var.ad_name&lt;br /&gt;
  cidr_block          = var.cidr_block&lt;br /&gt;
  security_list_ids   = [var.vcn.default_security_list_id]&lt;br /&gt;
  vcn_id              = var.vcn.id&lt;br /&gt;
  route_table_id      = var.vcn.default_route_table_id&lt;br /&gt;
  dhcp_options_id     = var.vcn.default_dhcp_options_id&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; modules/oci/subnet/output.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
output &amp;quot;subnet&amp;quot; {&lt;br /&gt;
  value = oci_core_subnet.subnet&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* create a module to optionally manage multiple instances&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p modules/oci/instance&lt;br /&gt;
cat &amp;gt; modules/oci/instance/input.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
variable &amp;quot;name&amp;quot;             { type = string }&lt;br /&gt;
variable &amp;quot;compartment_id&amp;quot;   { type = string }&lt;br /&gt;
variable &amp;quot;subnet_id&amp;quot;        { type = string }&lt;br /&gt;
variable &amp;quot;ad_name&amp;quot;          { type = string }&lt;br /&gt;
variable &amp;quot;keypair_path&amp;quot;     { type = string }&lt;br /&gt;
variable &amp;quot;instance_shape&amp;quot;   { type = string }&lt;br /&gt;
variable &amp;quot;image_ocid&amp;quot;       { type = string }&lt;br /&gt;
variable &amp;quot;boot_disk_size&amp;quot;   { type = string }&lt;br /&gt;
variable &amp;quot;static_ip&amp;quot;        {&lt;br /&gt;
  type = bool&lt;br /&gt;
  default = false&lt;br /&gt;
}&lt;br /&gt;
variable &amp;quot;init_script_path&amp;quot; {&lt;br /&gt;
  type = string&lt;br /&gt;
  default = null&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; modules/oci/instance/main.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
data &amp;quot;template_file&amp;quot; &amp;quot;init_script&amp;quot; {&lt;br /&gt;
  count = var.init_script_path != null ? 1 : 0&lt;br /&gt;
&lt;br /&gt;
  template = file(var.init_script_path)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
resource &amp;quot;oci_core_instance&amp;quot; &amp;quot;instance&amp;quot; {&lt;br /&gt;
  compartment_id      = var.compartment_id&lt;br /&gt;
  display_name        = var.name&lt;br /&gt;
  availability_domain = var.ad_name&lt;br /&gt;
  shape               = var.instance_shape&lt;br /&gt;
&lt;br /&gt;
  source_details {&lt;br /&gt;
    source_type             = &amp;quot;image&amp;quot;&lt;br /&gt;
    source_id               = var.image_ocid&lt;br /&gt;
    boot_volume_size_in_gbs = var.boot_disk_size&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  create_vnic_details {&lt;br /&gt;
    display_name     = &amp;quot;${var.name}-primary-vnic&amp;quot;&lt;br /&gt;
    subnet_id        = var.subnet_id&lt;br /&gt;
    assign_public_ip = var.static_ip&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  metadata = {&lt;br /&gt;
    ssh_authorized_keys = file(var.keypair_path)&lt;br /&gt;
    user_data           = var.init_script_path == null ? null : base64encode(data.template_file.init_script[0].rendered)&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  preserve_boot_volume = false&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; modules/oci/instance/output.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
output &amp;quot;static_ip&amp;quot; {&lt;br /&gt;
  value = oci_core_instance.instance.public_ip&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* configure the modules using external variables&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; input.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
variable &amp;quot;oci_provider&amp;quot;        { type = map(string) }&lt;br /&gt;
variable &amp;quot;oci_vcn_module&amp;quot;      { type = map(any) }&lt;br /&gt;
variable &amp;quot;oci_subnet_module&amp;quot;   { type = map(any) }&lt;br /&gt;
variable &amp;quot;oci_instance_module&amp;quot; { type = map(any) }&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; main.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
data &amp;quot;oci_identity_availability_domain&amp;quot; &amp;quot;ad&amp;quot; {&lt;br /&gt;
  compartment_id = var.oci_provider.tenancy_ocid&lt;br /&gt;
  ad_number      = 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
resource &amp;quot;oci_identity_compartment&amp;quot; &amp;quot;compartment&amp;quot; {&lt;br /&gt;
  compartment_id = var.oci_provider.tenancy_ocid&lt;br /&gt;
  name           = &amp;quot;tf-compartment&amp;quot;&lt;br /&gt;
  description    = &amp;quot;compartment created by terraform&amp;quot;&lt;br /&gt;
  enable_delete  = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module &amp;quot;oci_vcn&amp;quot; {&lt;br /&gt;
  source = &amp;quot;./modules/oci/vcn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  for_each = var.oci_vcn_module&lt;br /&gt;
&lt;br /&gt;
  name              = each.key&lt;br /&gt;
  compartment_id    = oci_identity_compartment.compartment.compartment_id&lt;br /&gt;
  cidr_block        = each.value.cidr_block&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module &amp;quot;oci_subnet&amp;quot; {&lt;br /&gt;
  source = &amp;quot;./modules/oci/subnet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  for_each = var.oci_subnet_module&lt;br /&gt;
&lt;br /&gt;
  name              = each.key&lt;br /&gt;
  compartment_id    = oci_identity_compartment.compartment.compartment_id&lt;br /&gt;
  vcn               = module.oci_vcn[each.value.vcn_name].vcn&lt;br /&gt;
  ad_name           = data.oci_identity_availability_domain.ad.name&lt;br /&gt;
  cidr_block        = each.value.cidr_block&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module &amp;quot;oci_instance&amp;quot; {&lt;br /&gt;
  source = &amp;quot;./modules/oci/instance&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  for_each = var.oci_instance_module&lt;br /&gt;
&lt;br /&gt;
  name             = each.key&lt;br /&gt;
  compartment_id   = oci_identity_compartment.compartment.compartment_id&lt;br /&gt;
  subnet_id        = module.oci_subnet[each.value.subnet_name].subnet.id&lt;br /&gt;
  ad_name          = data.oci_identity_availability_domain.ad.name&lt;br /&gt;
  keypair_path     = each.value.keypair_path&lt;br /&gt;
  instance_shape   = each.value.instance_shape&lt;br /&gt;
  image_ocid       = each.value.image_ocid&lt;br /&gt;
  boot_disk_size   = each.value.boot_disk_size&lt;br /&gt;
  static_ip        = lookup(each.value, &amp;quot;static_ip&amp;quot;, false)&lt;br /&gt;
  init_script_path = lookup(each.value, &amp;quot;init_script_path&amp;quot;, null)&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
cat &amp;gt; output.tf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
output &amp;quot;oci_identity_compartment&amp;quot; {&lt;br /&gt;
  value = oci_identity_compartment.compartment.compartment_id&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
output &amp;quot;oci_instances&amp;quot; {&lt;br /&gt;
  value = {for key, val in module.oci_instance : key =&amp;gt; val.static_ip}&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* configure external variables&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; vars.json &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;oci_provider&amp;quot;: {&lt;br /&gt;
        &amp;quot;auth&amp;quot;: &amp;quot;APIKey&amp;quot;,&lt;br /&gt;
        &amp;quot;config_file_profile&amp;quot;: &amp;quot;DEFAULT&amp;quot;,&lt;br /&gt;
        &amp;quot;tenancy_ocid&amp;quot;: &amp;quot;ocid1.tenancy.oc1..aaaaaaaau53ror64zva7gnsrnahfq23ksnngiyglsf4dutzltbb7dag7ugua&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;oci_vcn_module&amp;quot;: {&lt;br /&gt;
        &amp;quot;tf-vcn1&amp;quot;: {&lt;br /&gt;
            &amp;quot;cidr_block&amp;quot;: &amp;quot;10.1.0.0/16&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;oci_subnet_module&amp;quot;: {&lt;br /&gt;
        &amp;quot;tf-vcn1-subnet1&amp;quot;: {&lt;br /&gt;
            &amp;quot;vcn_name&amp;quot;: &amp;quot;tf-vcn1&amp;quot;,&lt;br /&gt;
            &amp;quot;cidr_block&amp;quot;: &amp;quot;10.1.20.0/24&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;tf-vcn1-subnet2&amp;quot;: {&lt;br /&gt;
            &amp;quot;vcn_name&amp;quot;: &amp;quot;tf-vcn1&amp;quot;,&lt;br /&gt;
            &amp;quot;cidr_block&amp;quot;: &amp;quot;10.1.21.0/24&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;oci_instance_module&amp;quot;: {&lt;br /&gt;
        &amp;quot;tf-instance1&amp;quot;: {&lt;br /&gt;
            &amp;quot;subnet_name&amp;quot;: &amp;quot;tf-vcn1-subnet1&amp;quot;,&lt;br /&gt;
            &amp;quot;keypair_path&amp;quot;: &amp;quot;~/.ssh/oci-keypair.pub&amp;quot;,&lt;br /&gt;
            &amp;quot;instance_shape&amp;quot;: &amp;quot;VM.Standard.E2.1.Micro&amp;quot;,&lt;br /&gt;
            &amp;quot;image_ocid&amp;quot;: &amp;quot;ocid1.image.oc1.eu-amsterdam-1.aaaaaaaae37x4oll5jixkbmkc63pk25ggvjh3h4iug7trp35agtexcpatw6q&amp;quot;,&lt;br /&gt;
            &amp;quot;boot_disk_size&amp;quot;: 100,&lt;br /&gt;
            &amp;quot;static_ip&amp;quot;: true,&lt;br /&gt;
            &amp;quot;init_script_path&amp;quot;: &amp;quot;init_script.sh&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;tf-instance2&amp;quot;: {&lt;br /&gt;
            &amp;quot;subnet_name&amp;quot;: &amp;quot;tf-vcn1-subnet2&amp;quot;,&lt;br /&gt;
            &amp;quot;keypair_path&amp;quot;: &amp;quot;~/.ssh/oci-keypair.pub&amp;quot;,&lt;br /&gt;
            &amp;quot;instance_shape&amp;quot;: &amp;quot;VM.Standard.E2.1.Micro&amp;quot;,&lt;br /&gt;
            &amp;quot;image_ocid&amp;quot;: &amp;quot;ocid1.image.oc1.eu-amsterdam-1.aaaaaaaae37x4oll5jixkbmkc63pk25ggvjh3h4iug7trp35agtexcpatw6q&amp;quot;,&lt;br /&gt;
            &amp;quot;boot_disk_size&amp;quot;: 100,&lt;br /&gt;
            &amp;quot;static_ip&amp;quot;: true,&lt;br /&gt;
            &amp;quot;init_script_path&amp;quot;: &amp;quot;init_script.sh&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* (optionally) configure init_script.sh&lt;br /&gt;
&lt;br /&gt;
The script can be used to customize the O.S. image. You may use it as example or skip it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; init_script.sh &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
export DEBIAN_FRONTEND=noninteractive&lt;br /&gt;
&lt;br /&gt;
apt-get -y update&lt;br /&gt;
apt-get -y dist-upgrade&lt;br /&gt;
apt-get -y clean&lt;br /&gt;
sync&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;custom init script completed&amp;quot; &amp;gt; /var/log/init_script.log&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* execute creation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
terraform init&lt;br /&gt;
terraform apply -input=false -var-file=vars.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* destroy all resources&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
terraform destroy -input=false -var-file=vars.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Optionally, use a simple Makefile to setup the previous custom commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; Makefile &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
export TF_PLUGIN_CACHE_DIR := ${HOME}/.terraform.d/plugin-cache&lt;br /&gt;
&lt;br /&gt;
.PHONY: clean&lt;br /&gt;
clean:&lt;br /&gt;
	@mkdir -p ${TF_PLUGIN_CACHE_DIR} || true&lt;br /&gt;
	@rm -rf .terraform&lt;br /&gt;
&lt;br /&gt;
.PHONY: init&lt;br /&gt;
init: clean&lt;br /&gt;
	terraform init&lt;br /&gt;
&lt;br /&gt;
.PHONY: apply&lt;br /&gt;
apply:&lt;br /&gt;
	terraform apply -input=false -var-file=vars.json&lt;br /&gt;
&lt;br /&gt;
.PHONY: destroy&lt;br /&gt;
destroy:&lt;br /&gt;
	terraform destroy -input=false -var-file=vars.json&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://docs.oracle.com/en-us/iaas/developer-tutorials/tutorials/tf-compute/01-summary.htm&lt;br /&gt;
* https://registry.terraform.io/providers/hashicorp/oci/4.24.0/docs&lt;br /&gt;
* https://dev.to/phocks/how-to-get-2x-oracle-cloud-servers-free-forever-4o22&lt;br /&gt;
* https://github.com/terraform-providers/terraform-provider-oci/blob/master/examples/always_free/main.tf&lt;br /&gt;
&lt;br /&gt;
[[category:oci]]&lt;br /&gt;
[[category:cloud]]&lt;br /&gt;
[[category:terraform]]&lt;/div&gt;</summary>
		<author><name>T1t0</name></author>
	</entry>
</feed>