Ansible ඉගෙනගමු

lahirushanaka

Member
Dec 25, 2007
106
4
0
තැන්ක්ස් හැමෝටම ... නෝමල් යුස් කරන්න පුලුවන් යම් එක්නෙ ප්ලේ බුක් එකක් ලියාගෙන . production වලදි ඇන්සිබල් ටවර් එක ගන්න ඕනේ අපි ටවර් එකට දාන හොස්ට් ගානට ගෙවන්න ඕනේ. ටවර් එකේ මොනිටරින්ග් සිස්ටම් එකෙන් ඔක්කම කන්ට්ට්‍රොල් කරනවා. හිතපන් ඇපෑචි සවර් සෙට් එකක් තියනාවා හිට්ස් එනවා ලෝඩ් එක හැන්ඩ්ල් කරගන්න බැරි උන ගමන් ඇන්සිබල් මොනිට්‍රන්ග් එකෙන් තව සවර් 5 විතර හදනවා ඇප්ස් දාල කන්විග කරලා ඒවට ටැෆික් එනේබල් කරනවා. ආයේ ඇහැක් අරල බලන්න ඕනේ සිස්ට්ම් එක ගැන. ආයේ ටැෆික් අඩු උනාම මොනිට කරලා සවර් 3ක් වගේ අඩු කරනවා. මන් මේ කිව්වේ ක්ල්වුඩ් එක්ක සවර් සිස්ටම් එකක් ඩිප්ලෝයි වෙන විදිග. ඇන්සිබල් වටින්නේ ක්ල්වුඩ් සයිඩ් එකට තමා ඉබෙයා මෙටල් එක්ක උනත් පාවිව්චි කරාට අවුලක් නෑ. ඉන්ස්ටොලේෂන් ඔක්කම ක්ෂනිකව දාගන්න පුලුවන් . බෑෂ් වලට වඩා හොදයි
Thanks Machan explanation ekata, patta try karala balana wisthare kiyannam ko
 

Don GasCan

Well-known member
  • Nov 3, 2010
    43,231
    49,584
    113
    සේදවත්ත
    හරි දැන් බලමු මේ හදපු ෆයිල් ස්ට්‍රක්චර් එකෙන් මොකක්ද වෙන්නෙ කියලා

    cd /Repository/don


    yumfolder.yml මෙක තමා මේන් යමල් ෆයිල් එක මේක අස්සේ තමා ඕක්කම රොල්ස් අපි කොල් කරන්න ඕනේ . හිතන්න ඇපාචි දාල ෆෝල්ඩර් ස්ට්‍රක්චර් එකක් හදන්න තියනවා කියලා . ඔය දෙක වැඩ දෙකක් ඒ කියන්නේ පේලේ බුක් දෙකක් . ඔය දෙකම එක පාර ඩිෆයින් කරලා අපිට එක පාරින් වැඩේ කරගන්න පුලුවන්. කරනකොට මීටරේට වැටෙයි

    රෝල්ස් ෆෝල්ඩර් එක අස්සේ තියනවා,

    ෆයිල් (files) - මේක අස්සේ තමා ඕයා පාවිච්චි කරන ස්ක්‍රිප්ට් දාගන්නේ එ කියන්නේ ඕයා නෙට් එකෙන් බාගන්නේ නැත්තම් සොව්ට්වෙයා පැකේජ්ස් , සොව්ට්වෙයා ස්ටාර්ට් ස්ටොප් කරන ස්ක්‍රප්ට් එහෙම දාල තියෙන්නේ

    හැන්ඩ්ලර්ස් (handles) - මේක අසේ තමා ඔය සොව්ට්වෙයා රීස්ටාර්ට් කරන ඒවා ස්ටොප් කරන ඒවා ඩිෆයින් කරන්නේ උදා. ඇපාචි ස්ටාර්ට් එක

    ටාස්ක් (task) - මේක අස්සේ තමා ඕයාගේ මේන් ප්ලේ එක ලියන්න ඕනේ ඕක්කම වෙන්න ඕන සිද්දිය එකින් එක කියන්න ඕනේ ටැග්ස් විදිහට උදා. යම් එකෙන් සොව්ට්වෙයා දාල යුසර් කෙනෙක් හදලා ෆයිල් කොපි කරලා ඕක්කම වැඩ කිඩ සෙට් එක ලියන්න ඕනේ මේකේ

    වාර්ස් ( vars) - මේකේ තමා වේරියබල් තියාගන්නේ උදා. සොව්ට්වෙයා ලෝකේෂන් . ෆයිල් පාත්

    ටෙම්පේල්ට් - මේක තියාගන පුලුවන් ලොකු කන්ෆිගරේෂන් ෆයිල් ඩමියක් වගේ . ඊට පස්සේ වාස් වලින් රිෆර් කරලා ටෙම්ප්ලේට් එකේ වැලිව් චෙන්ජ් කරගනෙම සොව්ට්වෙයා එකක් වගේ ඩිප්ලෝයි කරගන්න පුලුවන් . උදා. ඇපාචි කොන්ෆ් ෆයිල් එක මෙතනට දාල වාස් වල අපි අපීස් දාල . ඇපාචි දානකොටම අපි දාන අපී එකත් එක්ක ඇපාචි කොන්ෆ් එක කොපි වෙන්න හදන්න පුලුවන් . ඒ කියන්නේ ඇපාචිය කස්ටමයිස් කරගන්න පුලුවන්

     
    Last edited:

    Don GasCan

    Well-known member
  • Nov 3, 2010
    43,231
    49,584
    113
    සේදවත්ත
    හරි අපි පලවෙනි ප්ලේ බුකිය ලියමු එහෙනම්.
    ඇපි කරන්න යන්නේ යම් ඉන්ස්ටෝල් එකක් කරලා ෆයිල් වගයක් හදන්න

    යමු ටාස්ක් ෆයිල් එක අස්සට

    ---
    - name: Install httpd
    yum: name=httpd state=latest

    - name: Folder structure
    file: path=/etc/{{item}} state=directory mode=0755
    with_items:
    - test1
    - test2

    මේ ටික ටාස්ක් එක අසේසේ තියන main.yml අස්සේ ලියන්න . ඇන්සිබල් ලියද්දි සින්ටැක්ස් හරිටම තියෙන්න ඕනේ. නැත්තම් එරස් ගමකට දෙනවා හැම ෆයිල් එකක්ම පටන් ගන්න කලින් --- දාල පටන් ගන්න ඕනේ

    හරි දැන් යමු yumfolder.yml එක අස්සට

    ---
    - hosts: multi
    sudo: yes

    roles:
    - { role: yumfolder}

    හරි දැන් යමු එක අස්සට අපි දැන් අපි ලිව්ව රෝල් එක මේන් ප්ලේ එකෙන් කෝල් කරන්න ඕනේ.

    හොස්ට් කියන්නේ අපි අර මුල් හරියේ ඩිෆයින් කරපු සවර් ලිස්ට් එක.
    සුඩෝ කියන්නේ අපි මේ ටාස්ක් එක කරන්න රුට් පර්මිෂන් අරන් දෙනවා ඇන්සිබල් වලට
    රෝල් එක අස්සේ තමා අපේ ප්ලේ එකා අනික් ෆයිල් ටික තියෙන්නේ. ඒ නිසා අපි කියන්නේ ඕනේ ඇන්සිබල් වලට මොන රොල් එකද කෝල් වෙන්න ඕනේ කියලා

    ඔයාලගේ ෆොර්ල්ඩර් ස්ට්‍රක්චර් එක තියෙන්නේ ඕනේ දැන්,

    cd /Repository/don
    yumfolder.yml - file

    roles - directory (inside this)
    files - directory ---- mian.yml - file
    handles - directory ---- mian.yml - file
    task - directory ---- mian.yml - file
    vars - directory ---- mian.yml - file

    ඕයාලට සින්ටැක්ස් එරස් වනවන්ම් මට එකක් දාන්න මන් ලියපු එකක් එවන්නම් තේරුම් ගන්න.

    දැන් මෙතනට ගිහින්

    cd /Repository/don/

    අපි ප්ලේ බුක් එක රන් කරමු


    වැඩේ හරිනම් මේවගේ රන් වෙන්නඩ ඕනේ

    ansible-playbook yumfolder.yml

    LAY [multi] *******************************************************************

    TASK [setup] *******************************************************************
    TASK [nrpe : Install httpd] ****************************************************

    ok: HTTPD installed

    TASK [nrpe : Folder structure] *************************************************
    changed: [192.168.0.170] => (item=test1)
    changed: [192.168.0.170] => (item=test2)

    PLAY RECAP *********************************************************************
    192.168.0.170 : ok=5 changed=1 unreachable=0 failed=0

    ඔයලා ස්ලේව් පිසී එකට ගිහින් බලන්න ඇපාචි සොෆ්ට්වෙයා සහ අර හදපු ටෙස්ට් ෆොල්ඩර් දෙක හැදිලා තියනවා
     
    Last edited:
    • Like
    Reactions: kkroxc

    Heshankavindu

    Active member
  • Jan 25, 2009
    995
    59
    28
    machan mamath networking patten yanna baluwe. karanne telecom n computer. Sys Ad wenna monada follow up karanna oni?
     

    d2k566

    Member
    May 12, 2010
    1
    0
    0
    Folder structure

    මුලින්ම Folder structure එක ගැන දැනගන්න පහල තියෙන screen short එක බලන්න
    7.PNG



    වැඩි විස්තර සදහා මේ ලින්ක් එක බලන්න
    http://docs.ansible.com/ansible/playbooks_best_practices.html
     

    Don GasCan

    Well-known member
  • Nov 3, 2010
    43,231
    49,584
    113
    සේදවත්ත
    පාඩම ඉදිරියට කරගෙන යන්වා රැදී සිටින්න... නිවඩු නිසා කොල්ලා ඩිස්මිස්
     

    Don GasCan

    Well-known member
  • Nov 3, 2010
    43,231
    49,584
    113
    සේදවත්ත
    මං ආව ආයෙත්. අද ඉදලා මං ඇන්සිබල් මොඩුයුල් පාවිච්චි කරන්නේ කෝමද කියලා කියලා දෙන්නම් .
    අද අපි බලමු යම් පැකේජ් ටිකක් දාගන්න විදිහ බලමු යම් මොඩියුල් එකෙන්. කලින් මං කියලා දුන්නා පේල් බුක් එකක් හදන්නේ කෝමද ෆයිල් ස්ට්‍රක්චර් එක හදාගන්න විදිහ . ඒ වගේ ප්ලේ එකක් හදාගෙන මේ ටික ටාස්ක් ෆය්ල් එකේ දාල රන් කරන්න

    inside task file
    ---
    - name: Install Apache 2.4
    yum: name={{ item }} state=present
    with_items:
    - '@web-server'
    - httpd-devel
    - php
    - php-pgsql
    notify: restart apache


    inside handlers file

    ---
    - name: restart apache
    service: name=httpd state=restarted enabled=yes


    මේ තියෙන්නේ ඇපාචි දාගන්න විදිග . පලවෙනියට ටැග් එකට නමක් දාගන්න.ඊට පස්සේ ඇපාචි මොඩියුල් එක පාවිච්චි කරලා අපි එක පාර යම් ඉන්ටෝල් 4ක් කරගන්න යන්නේ . අයිටම් ලිස්ට් එකක් දෙන්න පුලුවන් . ඊට පස්සේ ඒක වෙරියබල් එකක් වගේ කෝල් කරනවා. ස්ටේට් එකෙන් කියන්නේ දැනට තියන අලුත්ම වර්ෂන් එක ඩවුන්ලෝඩ් කරන්න කියලා.නොටිෆයි එකෙන් කරන්නේ අපි හැන්ඩ්ලර් එක අස්සේ ඇපාචී රීස්ටාර්ට් එකක් ලියනවා ඒක කෝල් කරන එක. ඕක්කම ඉන්ස්ටෝල් වෙලා ඇපාචි රීස්ටාර්ට් වෙනවා.

    හැන්ඩ්ලර් එකෙන් වෙන්නේ අපිට ටාස්ක් ෆයිල් එක අස්සේ සර්විස් එකක් රීස්ටාර්ට් කරන්න ඕනේ නම් එක ඩිෆයින් කරලා තියාලා ඕනේ තැන යුස් කරන්න පුලුවන්. ඉස්සෙල්ලා නමක් දෙන්න ඊලගට මොකද්ද සර්විස් එක ඊලගට මොකද්ද වෙන්න ඕනේ ස්ටාර් ඕ ස්ටොප් . එනේබල් එකෙන් වෙන්නේ බුට් එකේදිම ඇපාචි අප් වෙන්න (chkconfig) හදනවා

    http://docs.ansible.com/ansible/yum_module.html

     
    Last edited:

    Don GasCan

    Well-known member
  • Nov 3, 2010
    43,231
    49,584
    113
    සේදවත්ත
    දැන් අපි බලමු ඩිරෙක්ට්‍රියක් හදාගන්න විදිහ

    - name: Create Sofware folder structure for postrges
    file: path=/home/software/postgres state=directory mode=0775


    නමක් දෙන්න ටැග් එකට ඊට පස්සේ ෆයිල් මොඩියුල් එක දාල ඩිරෙක්ට්‍රය හදාගන්න පැරාමීටර් වලට පර්මිෂන් පාස් කරන්න පුලුවන්


    තව සිප් ෆයිල් අන්සිප් කරන්නේ අන්-ආකයිව් මොඩුල් එක දාල
    src එකට ඔයාගේ ෆයිල් එක තියන පාත් එක දෙන්න( මේක ෆයිල් අස්සට දාන්න පුලුවන් නැත්තම ඇන්සිබල් ස්වර් එකේ පාත් එක) dest එක ක්ලයන්ට් පීසී එකේ කොහෙට ගිහින් අන්සිප් වෙන්න ඕනේද කියන එක. සගල වරහන් අස්සේ දාල තියෙන්නේ වේරියබල්ස් එවා vars ෆයිල් එකේ ඩිෆයින් කරලා කෝල් කරන්නේ

    - name: Transfer and Unzip postgres_version
    unarchive: src=/Repository/don/roles/postgres/files /{{postgres_version}} dest={{software_folder_path}} copy=yes

     

    Don GasCan

    Well-known member
  • Nov 3, 2010
    43,231
    49,584
    113
    සේදවත්ත
    නමක් දෙන්න . ඉට පස්සේ ලයින් ඉන් මොඩියුල් එක දාල ඔයාගේ වෙනස් වෙන්න ඕනේ ෆයිල් පාත් එක දෙන්න. මං අයිටම් යුස් කරලා එක පාර පැරාමීටර් 3 ෆයිල් එකට රයිට් කරනවා මේ උදාහරනේ

    - name: Add networks
    lineinfile: dest=/usr/local/pgsql/data/pg_hba.conf line={{item}}
    with_items:
    - "host all all 192.168.220.200 255.255.254.0 trust # for Internal Servers"
    - "host all all 210.237.210.142 255.25.255.255 trust # for External Servers"
    - "host all all 103.123.126.267 255.25.255.255 trust # for External Servers"

    http://docs.ansible.com/ansible/lineinfile_module.html
     
    Last edited:

    Don GasCan

    Well-known member
  • Nov 3, 2010
    43,231
    49,584
    113
    සේදවත්ත
    දැන් බලමු කමාන්ඩ් කියන මොඩියුල් එක යුස් කරන විදිහ , මේක වැදගත් මොඩුයුල් එකක් මේකෙන් පුලුවන් කස්ටම් ඉන්ටොලේෂන් කරන්න , කමාන්ඩ් එකක්ක් එක්සිකියුට් කරගන්නන. නමක් දෙන්න ඊට පස්සේ කමාන්ඩ් මොඩුයුල් එක යුස් කරලා මං කරලා තියෙන්නේ පොස්ට්ග්‍රේස් ඩීබී එකක් දාන විදිහ. වෙන්නේ කලින් සොව්ට්වෙයා එක ඉන්ස්ටෝල් වෙලාද බලන එක එක ට්‍රයු නම් කමාන්ඩ් එක ස්කිප් කරනවා , හොඩක් වෙලාවට මේකට පාස් කරන්න ඕනේ ඉන්ටෝල් වෙලා එන කොන්ෆ් ෆයිල් එක්ක පාත් එකක් උදා./ /postrgessql.conf , / /httpd.conf
    chdir එකෙන් වෙන්නේ පාත් එක චෙන්ජ් කරගන්න එක සොව්ට්වෙයා සෝස් ෆයිල් එකගාවට අයිටම් එකෙන් මං කමාන්ඩ් ටික පාස් කරනවා ඩීබී එක ඉන්ස්ටෝල් කරගන්න

    - name: Install Postgres
    command: creates="{{postgres_config_path}}" chdir={{software_folder_path}} {{item}}
    with_items:
    - ./configure --prefix=/usr/local/pgsql --with-tcl --with-pgport=5432 --enable-thread-safety
    - gmake
    - gmake install

    http://docs.ansible.com/ansible/command_module.html
     
    Last edited:

    lahirushanaka

    Member
    Dec 25, 2007
    106
    4
    0
    Error ekak awane use karanakota, uba dannawada solution ekak ?

    {"changed": false, "failed": true, "msg": "No Package matching 'aide*' found available, installed or updated", "rc": 0, "results": []}

    tasks:
    - name: install aide on Cent or Redhat
    yum: pkg=aide* state=installed
    when: ansible_os_family == 'CentOS' or ansible_os_family == 'RedHat'
    register: aideinstall_2


    Hewwa hewwa, kisima solution ekak nane, eth meka manualy install karanna haduwama package eka thiyenawa install karanna, Meka redhat 6 ekak . Mokak hari idea ekak thiyenawada ?