-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/alptugay/Dokumanlar
- Loading branch information
Showing
15 changed files
with
1,096 additions
and
1,017 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
![ULAKBIM](../img/ulakbim.jpg) | ||
#State-ng Rolü ve Dizaynı | ||
------ | ||
|
||
State-ng rolü uç sistemlerin yapılandırma değişiklerini git sunucu üzerinden çekmesi ve kendi üzerinde çalıştırması ya da MYS cihazının değişiklileri otomatik bir şekilde uç birimlere aktarabilmesi için kullanılmaktadır. | ||
|
||
Bu dökümanda bu rolün dizaynı anlatılmıştır. | ||
|
||
------ | ||
|
||
* Kurulum dökümanında anlatıldığı gibi bir host state-ng olarak eklendiginde ve playbook calistirildiginda, uç makinaya ansible kurulur. Cron yapılandırması yapılarak makinanın belirli zamanlarda yapılandırma değişiklikleri kontrol edilir. Cron zamanı vars dosyasından ayarlanabilir. | ||
|
||
* Bu yapılandırmanın MYS tarafında her push tarafından tetiklenmesi isteniyorsa aşağıdaki gibi alias tanımlanmalıdır. | ||
|
||
$ **git config alias.xpush '!git push $1 $2 && ansible-playbook/etc/ansible/playbooks/state-ng.yml --tags smarttrigger'** | ||
|
||
|
||
* Son olarak herhangi bir yapılandırmanın her bir commit sonrası uygulanması için post-commit hookuna aşağıdaki komut eklenir. Bu script MYS cihazına state-ng playbooku tarafından yuklenmektedir. | ||
|
||
**/usr/sbin/ahtapot_stateng.py --smart-push** | ||
|
||
* Bu komut playbook tarafından cron a eklenmektedir. İstenildiği taktirde manual olarak da çalıştırılabilir. | ||
|
||
|
||
* State-ng playbooku çalıştırıldıtan sonra makinalar aşağıdaki şemaya uygun çalışır. | ||
|
||
|
||
![state-ng](../img/state-ng.png) | ||
|
||
|
||
|
||
**Sayfanın PDF versiyonuna erişmek için [buraya](state-ng-dizayn.pdf) tıklayınız.** |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# State-ng | ||
State-ng, uç birimlerin yapılandırmalarını periyodik olarak çekmesi için tasarlanan playbook'tur. “**/etc/ansible/playbooks/**” dizini altında bulunan “**state-ng.yml**” dosyasına bakıldığında, “**hosts**” satırında ansible’a ait “**/etc/ansible/**” altında bulunan “**hosts**” dosyasında “**[state-ng]**” satırı altına yazılmış tüm sunucularda bu playbookun oynatılacağı belirtilir. “**sudo**” satırı ile çalışacak komutların sudo yetkisi ile çalışması belirlenir. “**vars_files**” satırı state-ng playbookunun değişken dosyalarını belirtmektedir. “**roles**” satırı altında bulunan satırlarda ise bu playbook çalıştığında “**state-ng**” rolünün çalışacağı belirtilmektedir. | ||
``` | ||
- hosts: state-ng | ||
sudo: yes | ||
vars_files: | ||
- /etc/ansible/roles/state-ng/vars/main.yml | ||
roles: | ||
- role: state-ng | ||
``` | ||
#### State-ng Rolü Değişkenleri | ||
Bu roldeki değişkenler “**/etc/ansible/roles/state-ng/vars/**” dizini altında bulunan **state-ng.yml** dosyasında belirtilmiştir. Değişken bilgileri aşağıdaki gibidir; | ||
|
||
- "**ansible_git_url**" değişkeni uç birimin pull ediceği ansible reposunu belirtir. | ||
"**gdys_git_url**" değişkeni uç birimin pull ediceği gdys reposunu belirtir. Firewall cihazları bu repodan değişiklik kontrolu yapmaktadır. | ||
Uç birim ile git reposu arasında ssh yapılandırılması yapılmalıdır. | ||
"**branch**" değişkeni hangi git branch'ının kullanılacağını belirtir. | ||
"**ansible_directory**" ve "**gdys_directory**"değişkenleri ansible ve gdys repolarının nereye kaydedilmesi gerektiğini belirtir. | ||
Anbible için bu klasörun MYS cihazındaki ile aynı olması gerektiğine dikkat ediniz. | ||
"**cron_file**" cron yapılandırmalarının kaydedileceği dosyayı belirtir. | ||
"**cron_minute**" cron dakika yapılandırması, | ||
"**cron_hour**" cron saat yapılandırması, | ||
"**cron_day**" cron gün yapılandırmasıdır. | ||
"**pull_hosts**" değişkenine eklenen hostlar yapılandırmalarını otomatik olarak cron ile alır. Öntanımlı olarak kapalıdır. | ||
|
||
|
||
``` | ||
state_ng: | ||
ansible_git_url: "ahtapotops@10.0.0.200:/srv/git/ansible.git" | ||
gdys_git_url: "ahtapotops@10.0.0.200:/srv/git/gdys.git" | ||
branch: "master" | ||
ansible_directory: "/etc/ansible" | ||
gdys_directory: "/home/ahtapotops/gdys" | ||
mys: | ||
cron_file: "/etc/cron.d/ahtapot-stateng" | ||
cron_minute: "0" | ||
cron_hour: "*/4" | ||
cron_day: "*" | ||
host: | ||
cron_file: "/etc/cron.d/ahtapot-stateng" | ||
cron_hour: "*/4" | ||
cron_day: "*" | ||
#pull_hosts: | ||
#- host1 | ||
#- host2 | ||
#- host3 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.