Skip to content

Commit 687cf37

Browse files
committed
again
1 parent b1b8326 commit 687cf37

38 files changed

+3542
-0
lines changed

docs/_site/architecture/index.html

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Architecture - FreeIPA Workshop Deployer</title>
7+
<link rel="stylesheet" href="/assets/css/style.css">
8+
</head>
9+
<body>
10+
<div class="container">
11+
<header>
12+
<h1><a href="/">FreeIPA Workshop Deployer</a></h1>
13+
<nav>
14+
<ul>
15+
<li><a href="/overview/">Overview</a></li>
16+
<li><a href="/architecture/">Architecture</a></li>
17+
<li><a href="/technical-setup/">Technical Setup</a></li>
18+
<li><a href="/deployment/">Deployment</a></li>
19+
</ul>
20+
</nav>
21+
</header>
22+
23+
<main>
24+
<article class="page">
25+
<h1>Architecture</h1>
26+
<div class="content">
27+
<h1 id="system-architecture">System Architecture</h1>
28+
29+
<p>The FreeIPA Workshop Deployer is built using Infrastructure as Code (IaC) principles, with a modular architecture that ensures flexibility and maintainability.</p>
30+
31+
<h2 id="key-components">Key Components</h2>
32+
33+
<h3 id="1-infrastructure-layer">1. Infrastructure Layer</h3>
34+
35+
<ul>
36+
<li><strong>Providers:</strong>
37+
<ul>
38+
<li>AWS (EC2, Route53, VPC)</li>
39+
<li>DigitalOcean (Droplets, DNS)</li>
40+
<li>kcli (local virtualization)</li>
41+
</ul>
42+
</li>
43+
<li><strong>Configuration:</strong> Managed through Terraform scripts</li>
44+
<li><strong>Features:</strong>
45+
<ul>
46+
<li>Multiple provider support</li>
47+
<li>Automated resource provisioning</li>
48+
<li>Infrastructure state management</li>
49+
</ul>
50+
</li>
51+
</ul>
52+
53+
<h3 id="2-configuration-layer">2. Configuration Layer</h3>
54+
55+
<ul>
56+
<li><strong>Ansible Playbooks:</strong>
57+
<ul>
58+
<li>Automate FreeIPA server configuration</li>
59+
<li>Handle DNS setup and user provisioning</li>
60+
<li>Manage certificates and security settings</li>
61+
</ul>
62+
</li>
63+
<li><strong>Modules:</strong>
64+
<ul>
65+
<li>Package installation</li>
66+
<li>Service management</li>
67+
<li>File manipulation</li>
68+
<li>System configuration</li>
69+
</ul>
70+
</li>
71+
</ul>
72+
73+
<h3 id="3-dns-management">3. DNS Management</h3>
74+
75+
<ul>
76+
<li><strong>Dynamic DNS:</strong>
77+
<ul>
78+
<li>Python-based implementation</li>
79+
<li>Ansible playbook integration</li>
80+
<li>Profile-based configuration</li>
81+
</ul>
82+
</li>
83+
<li><strong>Features:</strong>
84+
<ul>
85+
<li>Dynamic updates</li>
86+
<li>Profile-based management</li>
87+
<li>Cloud provider integration</li>
88+
</ul>
89+
</li>
90+
</ul>
91+
92+
<h2 id="architecture-patterns">Architecture Patterns</h2>
93+
94+
<h3 id="modular-design">Modular Design</h3>
95+
<ul>
96+
<li>Components are loosely coupled</li>
97+
<li>Easy to maintain and scale</li>
98+
<li>Flexible provider support</li>
99+
</ul>
100+
101+
<h3 id="infrastructure-as-code">Infrastructure as Code</h3>
102+
<ul>
103+
<li>All infrastructure defined in code</li>
104+
<li>Version-controlled configurations</li>
105+
<li>Reproducible deployments</li>
106+
<li>State management</li>
107+
</ul>
108+
109+
<h3 id="configuration-management">Configuration Management</h3>
110+
<ul>
111+
<li>Consistent system configurations</li>
112+
<li>Automated deployments</li>
113+
<li>Idempotent operations</li>
114+
<li>Role-based organization</li>
115+
</ul>
116+
117+
<h3 id="dynamic-dns-management">Dynamic DNS Management</h3>
118+
<ul>
119+
<li>Flexible DNS configurations</li>
120+
<li>Profile-based management</li>
121+
<li>Automated updates</li>
122+
<li>Provider integration</li>
123+
</ul>
124+
125+
<h2 id="key-technical-decisions">Key Technical Decisions</h2>
126+
127+
<h3 id="terraform-selection">Terraform Selection</h3>
128+
<ul>
129+
<li>Robust infrastructure provisioning</li>
130+
<li>Multi-provider support</li>
131+
<li>State management capabilities</li>
132+
<li>Strong community support</li>
133+
</ul>
134+
135+
<h3 id="ansible-implementation">Ansible Implementation</h3>
136+
<ul>
137+
<li>Powerful configuration management</li>
138+
<li>Easy to understand YAML syntax</li>
139+
<li>Extensive module library</li>
140+
<li>Agentless architecture</li>
141+
</ul>
142+
143+
<h3 id="python-integration">Python Integration</h3>
144+
<ul>
145+
<li>Dynamic DNS management</li>
146+
<li>Extensive standard library</li>
147+
<li>Rich ecosystem of packages</li>
148+
<li>Cross-platform compatibility</li>
149+
</ul>
150+
151+
<h3 id="shell-scripting">Shell Scripting</h3>
152+
<ul>
153+
<li>Deployment automation</li>
154+
<li>Configuration scripts</li>
155+
<li>System integration</li>
156+
<li>Environment setup</li>
157+
</ul>
158+
159+
</div>
160+
</article>
161+
162+
</main>
163+
164+
<footer>
165+
<p>&copy; 2025 FreeIPA Workshop Deployer. Powered by Jekyll.</p>
166+
</footer>
167+
</div>
168+
</body>
169+
</html>

docs/_site/assets/css/style.css

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
/* Base styles */
2+
:root {
3+
--primary-color: #007bff;
4+
--text-color: #333;
5+
--bg-color: #fff;
6+
--header-bg: #f8f9fa;
7+
--border-color: #dee2e6;
8+
}
9+
10+
body {
11+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
12+
line-height: 1.6;
13+
color: var(--text-color);
14+
margin: 0;
15+
padding: 0;
16+
background-color: var(--bg-color);
17+
}
18+
19+
.container {
20+
max-width: 1200px;
21+
margin: 0 auto;
22+
padding: 0 20px;
23+
}
24+
25+
/* Header styles */
26+
header {
27+
background-color: var(--header-bg);
28+
padding: 1rem 0;
29+
border-bottom: 1px solid var(--border-color);
30+
margin-bottom: 2rem;
31+
}
32+
33+
header h1 {
34+
margin: 0;
35+
font-size: 2rem;
36+
}
37+
38+
header h1 a {
39+
color: var(--text-color);
40+
text-decoration: none;
41+
}
42+
43+
nav ul {
44+
list-style: none;
45+
padding: 0;
46+
margin: 1rem 0 0 0;
47+
display: flex;
48+
gap: 1.5rem;
49+
}
50+
51+
nav a {
52+
color: var(--text-color);
53+
text-decoration: none;
54+
font-weight: 500;
55+
}
56+
57+
nav a:hover {
58+
color: var(--primary-color);
59+
}
60+
61+
/* Main content styles */
62+
main {
63+
padding: 2rem 0;
64+
}
65+
66+
article {
67+
max-width: 900px;
68+
margin: 0 auto;
69+
}
70+
71+
/* Typography */
72+
h1, h2, h3, h4, h5, h6 {
73+
margin-top: 2rem;
74+
margin-bottom: 1rem;
75+
line-height: 1.3;
76+
}
77+
78+
h1 {
79+
font-size: 2.5rem;
80+
border-bottom: 2px solid var(--border-color);
81+
padding-bottom: 0.5rem;
82+
}
83+
84+
h2 {
85+
font-size: 2rem;
86+
}
87+
88+
h3 {
89+
font-size: 1.5rem;
90+
}
91+
92+
/* Links */
93+
a {
94+
color: var(--primary-color);
95+
text-decoration: none;
96+
}
97+
98+
a:hover {
99+
text-decoration: underline;
100+
}
101+
102+
/* Code blocks */
103+
pre {
104+
background-color: var(--header-bg);
105+
border: 1px solid var(--border-color);
106+
border-radius: 4px;
107+
padding: 1rem;
108+
overflow-x: auto;
109+
}
110+
111+
code {
112+
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
113+
font-size: 0.9em;
114+
padding: 0.2em 0.4em;
115+
background-color: var(--header-bg);
116+
border-radius: 3px;
117+
}
118+
119+
/* Home page styles */
120+
.home {
121+
text-align: center;
122+
max-width: 800px;
123+
margin: 0 auto;
124+
}
125+
126+
.quick-links {
127+
margin-top: 3rem;
128+
text-align: left;
129+
}
130+
131+
.quick-links ul {
132+
list-style: none;
133+
padding: 0;
134+
display: grid;
135+
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
136+
gap: 1.5rem;
137+
margin-top: 2rem;
138+
}
139+
140+
.quick-links li {
141+
background-color: var(--header-bg);
142+
border: 1px solid var(--border-color);
143+
border-radius: 8px;
144+
padding: 1.5rem;
145+
transition: transform 0.2s ease;
146+
}
147+
148+
.quick-links li:hover {
149+
transform: translateY(-3px);
150+
}
151+
152+
.quick-links a {
153+
color: var(--text-color);
154+
text-decoration: none;
155+
}
156+
157+
.quick-links h3 {
158+
margin-top: 0;
159+
color: var(--primary-color);
160+
}
161+
162+
.quick-links p {
163+
margin: 0;
164+
font-size: 0.9rem;
165+
color: #666;
166+
}
167+
168+
/* Footer styles */
169+
footer {
170+
text-align: center;
171+
padding: 2rem 0;
172+
margin-top: 4rem;
173+
border-top: 1px solid var(--border-color);
174+
color: #666;
175+
}
176+
177+
/* Responsive adjustments */
178+
@media (max-width: 768px) {
179+
nav ul {
180+
flex-direction: column;
181+
gap: 0.5rem;
182+
}
183+
184+
.container {
185+
padding: 0 15px;
186+
}
187+
188+
h1 {
189+
font-size: 2rem;
190+
}
191+
192+
h2 {
193+
font-size: 1.75rem;
194+
}
195+
196+
h3 {
197+
font-size: 1.25rem;
198+
}
199+
}
16.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)