diff --git a/index.html b/index.html index 1085efb..03b8335 100644 --- a/index.html +++ b/index.html @@ -25,91 +25,30 @@ } .reveal h1, .reveal h2 { - text-align: center; + text-align: left; } .reveal h1 { font-size: 1.8em; } - .reveal h2 { font-size: 1.3em; } - .reveal p, .reveal li { font-size: 0.78em; } + .reveal h2 { font-size: 1.4em; line-height: 1.2; } + .reveal p, .reveal li { font-size: 0.85em; } .reveal code { font-size: 0.7em; } .reveal pre { width: 100%; } .title-slide { text-align: center !important; } - .title-slide h1 { font-size: 2em; margin-bottom: 0.2em; } + .title-slide h1 { text-align: center; font-size: 2em; margin-bottom: 0.2em; } .title-slide .subtitle { font-size: 1em; color: #aaa; } .title-slide .meta { font-size: 0.7em; color: #888; margin-top: 1em; } - .tag { - display: inline-block; - padding: 2px 10px; - border-radius: 4px; - font-size: 0.55em; - font-weight: bold; - vertical-align: middle; - margin-left: 8px; - } - .tag-puppet { background: var(--puppet-color); color: #000; } - .tag-ansible { background: var(--ansible-color); color: #fff; } - .tag-tf { background: var(--terraform-color);color: #fff; } - - .card-row { - display: flex; - gap: 1em; - margin-top: 0.5em; - } - .card { - flex: 1; - border-radius: 8px; - padding: 0.7em 1em; - font-size: 0.7em; - } - .card-puppet { border: 2px solid var(--puppet-color); background: rgba(255,174,26,0.08); } - .card-ansible { border: 2px solid var(--ansible-color); background: rgba(238,0,0,0.08); } - .card-tf { border: 2px solid var(--terraform-color);background: rgba(123,66,188,0.08); } - .card h3 { margin: 0 0 0.4em; font-size: 1.1em; } - .card ul { margin: 0; padding-left: 1.2em; } - - .comparison-table { - width: 100%; - border-collapse: collapse; - font-size: 0.62em; - margin-top: 0.5em; - } - .comparison-table th, .comparison-table td { - border: 1px solid rgba(255,255,255,0.2); - padding: 0.4em 0.6em; - text-align: center; - } - .comparison-table th { background: rgba(255,255,255,0.1); } - .comparison-table td:first-child { text-align: left; font-weight: bold; } .puppet-col { color: var(--puppet-color); } .ansible-col { color: var(--ansible-color); } .tf-col { color: var(--terraform-color); } - .highlight-box { - border-left: 4px solid #4CAF50; - background: rgba(76,175,80,0.1); - padding: 0.5em 1em; - margin: 0.5em 0; - border-radius: 0 6px 6px 0; - font-size: 0.75em; + .filename { + font-family: monospace; + font-size: 0.65em; + color: #888; + margin-bottom: 0.2em; } - - .agenda-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 0.5em; - margin-top: 0.5em; - } - .agenda-item { - background: rgba(255,255,255,0.07); - border-radius: 6px; - padding: 0.5em 0.8em; - font-size: 0.75em; - } - .agenda-item .num { font-size: 1.3em; font-weight: bold; color: #888; } - - .emoji { font-style: normal; }
@@ -120,298 +59,22 @@ - +Tech Lead @ OVHCloud
+arnaud.premel-cabic@ovhcloud.com
Great.
Three main problem spaces:
-
-# manifests/webserver.pp
-class webserver {
- package { 'nginx':
- ensure => installed,
- }
-
- file { '/etc/nginx/nginx.conf':
- ensure => file,
- content => template('webserver/nginx.conf.erb'),
- notify => Service['nginx'],
- }
-
- service { 'nginx':
- ensure => running,
- enable => true,
- }
-}
-
- 🔁 Run again → idempotent: only changes what diverged from the desired state
-
-# playbook/webserver.yml
-- name: Configure web server
- hosts: webservers
- become: true
-
- tasks:
- - name: Install nginx
- ansible.builtin.package:
- name: nginx
- state: present
-
- - name: Copy nginx config
- ansible.builtin.template:
- src: nginx.conf.j2
- dest: /etc/nginx/nginx.conf
- notify: Restart nginx
-
- - name: Ensure nginx is running
- ansible.builtin.service:
- name: nginx
- state: started
- enabled: true
-
- handlers:
- - name: Restart nginx
- ansible.builtin.service:
- name: nginx
- state: restarted
-
-
-# main.tf
-terraform {
- required_providers {
- aws = { source = "hashicorp/aws", version = "~> 5.0" }
- }
-}
-
-provider "aws" { region = "eu-west-3" }
-
-resource "aws_instance" "web" {
- ami = "ami-0c55b159cbfafe1f0"
- instance_type = "t3.micro"
-
- tags = { Name = "meetup-webserver" }
-}
-
-output "public_ip" {
- value = aws_instance.web.public_ip
-}
-
- 🗺️ terraform plan shows a diff · terraform apply creates resources · terraform destroy removes them
| - | 🐾 Puppet | -⚡ Ansible | -🏗️ Terraform | -
|---|---|---|---|
| Primary focus | Config management | Automation / Orchestration | Infrastructure provisioning |
| Language | Puppet DSL | YAML | HCL |
| Approach | Declarative | Procedural + idempotent | Declarative |
| Push / Pull | Pull | Push | Push (via API) |
| Agent needed | Yes | No | No |
| State file | Catalog (server) | None (stateless) | Yes (.tfstate) |
| Cloud resources | Limited | Yes (modules) | Excellent |
| Learning curve | High | Low | Medium |
A common real-world stack:
-- → Right tool for the right layer of the stack -
-