Bu proje, AytiTech DevOps Bootcamp kapsamında geliştirilmiştir. Amaç, statik bir portföy web sitesini Linux ortamında çalıştırmak, AWS servisleri (EBS ve Ağ Arayüzü) ile entegre etmek ve Bash script + Crontab kullanarak otomasyon sağlamaktır.
- GitHub’daki
onepageşablonu klonlandı. - Web sitesi yerel Linux makinede servis edildi.
- EC2 instancelara EBS diski eklendi.
- Statik IP’ye sahip yeni bir Network Interface oluşturuldu.
- Route Table ayarlanarak yönlendirme yapıldı.
- EBS diski tek partition olarak biçimlendirildi.
/var/www/htmldizininesystemdile otomatik mount edildi.
Yazılan Bash script aşağıdaki işlemleri gerçekleştirdi:
-
/tmpKlasörüne Repo Klonlama/tmp/onepageklasörü var mı kontrol edilir.- Yoksa GitHub'dan repo klonlanır (çünkü reboot sonrası
/tmpsilinir).
-
Değişiklikleri Çekme
- Klasöre girilir,
git pullile son güncellemeler alınır.
- Klasöre girilir,
-
İçerik Güncelleme
index.htmliçindeki"ISIM"gerçek ad ile değiştirilir."EPOSTA"kısmı kişisel e-posta ile değiştirilir.
-
Web Dizinine Kopyalama
onepageklasöründeki tüm dosyalar/var/www/htmldizinine kopyalanır. Aynı dosyalar varsa üzerine yazılır.
- Script
crontabile belirli aralıklarla çalışacak şekilde zamanlandı.
- Arkaplan resmi değişikliği için yeni branch oluşturuldu.
- Değişiklikler push edilip Pull Request açıldı.
- Issue kullanılarak iş takibi yapıldı.
- Ana branch'e başarıyla merge edildi.
- Apache (httpd) kurulup yapılandırıldı.
- Yerel IP ile sayfaya erişim sağlandı.
| Araç | Amaç |
|---|---|
| Git & GitHub | Versiyon Kontrolü & İşbirliği |
| Linux (Bash, Crontab, Systemd) | Otomasyon & Sistem Yönetimi |
| Apache HTTP Server | Web Hosting |
| AWS EC2, EBS, ENI | Bulut Altyapısı |
| HTML/CSS | Web Özelleştirme |
This project was developed as part of the AytiTech DevOps Bootcamp. The main goal was to deploy a static portfolio website on a Linux-based environment, integrate AWS services such as EBS and Network Interface, and automate deployment using Bash scripting and Crontab.
- Cloned a pre-built portfolio template (
onepage) from GitHub. - Served the website locally on a Linux machine.
- Attached an additional EBS volume to an EC2 instance.
- Created and assigned a new Network Interface with a static IP address.
- Configured Route Table to enable proper access.
- Formatted the EBS volume into a single partition.
- Mounted it to
/var/www/htmlusing asystemdunit file for persistent access.
A Bash script was written to handle:
-
Cloning the Repository to
/tmp- Checks if
/tmp/onepageexists. - If not, clones the repo from GitHub (since
/tmpis wiped on reboot).
- Checks if
-
Pulling Remote Changes
- Navigates into the folder and pulls the latest updates using
git pull.
- Navigates into the folder and pulls the latest updates using
-
Modifying Content
- Replaces
"ISIM"with the actual name. - Replaces
"EPOSTA"with a personal email inindex.html.
- Replaces
-
Copying to Web Directory
- Copies all files from
onepageinto/var/www/html, replacing existing files if necessary.
- Copies all files from
- The script was scheduled using
crontabto run at defined intervals for continuous synchronization and update.
- Created a new branch to update the background image.
- Pushed changes and opened a Pull Request on GitHub.
- Utilized Issues for task tracking and collaboration.
- Successfully merged changes into the main branch.
- Installed and configured Apache (httpd).
- Verified website accessibility using the machine’s local IP address.
| Tool | Purpose |
|---|---|
| Git & GitHub | Version Control & Collaboration |
| Linux (Bash, Crontab, Systemd) | Automation & System Management |
| Apache HTTP Server | Static Website Hosting |
| AWS EC2, EBS, ENI | Cloud Infrastructure |
| HTML/CSS | Website Customization |