اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

آموزش راه اندازیه سیستم DRBD Clustering&HA Clustering برای سرویس Asterisk

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    آموزش راه اندازیه سیستم DRBD Clustering&HA Clustering برای سرویس Asterisk

    آموزش راه اندازیه سیستم DRBD Clustering&HA Clustering برای سرویس Asterisk





    کلاسترینگ چیست؟

    کلاسترینگ به گروهی از سرورها شامل یک یا بیشتر از یک سرور گفته میشود که با یکدیگر نرم افزاری مشخص را اجرا میکنند که نتیجه ی آن احتمال خطای کمتر و سرعت لد بالاتر برنامه هاست. سرویس کلاسترینگ بیشتر برای سازمان و شرکتهایی به کار میرود که برنامه ی آنها تحت هر شرایطی باید اجرا شود و در حالت اجرا باقی بماند حتی زمانی که یکی از سرورها از سرویس خارج شده باشد. در سرویس کلاسترینگ تمامی سرورها همان برنامه و قوانینی را که باقی سرورها اجرا میکنند اجرا خواهند کرد لذا اگر سروری از سرویس خارج شود باقی سرورها بلافاصه شروع به کار خواهند کرد که به آن Failover گفته میشود.






    »ما در این آموزش از سیستم عامل اوبونتو استفاده کرده ایم!






    ما بوسیله DRBD میتوانیم دیوایسهایی نظیر هارد شبکه و… برای استفاده در مجموعه کلاسترینگ و برای برنامه خاصی بکار ببریم٫که در اینجا ما برای ساخت یک پارتیشن از دیوایس استوریج بین دو سرور بکار میبریم.
    DRBD یک پارتیشن مجازی برای تمامیه سرورها میسازد و آنرا بر اساس قوانین خودش بین سرورها پاس میدهد.در اصل DRBD وقتی که سرور اصلی fail میشود٫ پارتیشن مجازی را به سرور slave پاس میدهد٫ و پارتیشن را برای آن مانت میکند!

    Heartbeat/HA clustering





    ماشین های مجازی به وسیله لینک اختصاصی جهت ارتباط لحظه به لحظه (Heartbeat) و لینک عمومی به یکدیگر متصل هستند.
    کار اصلی Heartbeat این است که بدنبال سرور زنده و پایا میباشد٫ البته با حفظ اولویت!یعنی اگر سرور master در شبکه وجود داشته باشد سرویسه مربوطه برروی آن اجرا میشود٫ در غیر این صورت روی سرورهای بعدی اجرا میشود.همچنین Heartbeat* وظیفه ساختن IP مجازی را بر عهده دارد٫ پس کانفیگ آن از اهمیت بالایی برخوردار است!!!

    پیش نیازها:
    1. دو سرور
    2. برای هر سرور ۲ کارت شبکه٫یک کابل کراس٫ یک سوییچ
    3. و نرم افزارهای DRBD,Heartbeat,ntp,ntpdate,اسکریپتهای مربوطه برای هدایت سرویس و سرورها


    این آموزش در هر توضیع از لینوکس قابل پیاده سازیست!


    نکته:فقط توجه داشته باشین که هنگام نصب لینوکس یک پارتیشن از نوع روت و یک حافظه swp کافی میباشد٫ و حتما یک بخش از فضای هارد خالی باشد که بعدا ما برای پارتیشن مجازی DRBD به آن نیاز خواهیم داشت!

    در آغاز ما آیپی eth0 دو سرور را در رنج متوالی هم قرار میدهیم و بعد نام آنها را عوض مینماییم٫به این صورت:

    server 1 ۱۹۲٫۱۶۸٫۲٫۲
    server2 ۱۹۲٫۱۶۸٫۲٫۳
    و بعد از آن virtual IP یا IP مجازی را هم تعریف میکنیم!

    برای اینکار ما فایلهایه hosts و hostname را تغییر میدهیم:

    1. فایل hosts :


    ۱۹۲٫۱۶۸٫۰٫۱۰۰ failover1
    ۱۹۲٫۱۶۸٫۰٫۱۰۱ failover2
    ۱۹۲٫۱۶۸٫۰٫۱۰۵ VIP

    Virtual IP:


    کار آی پی مجازی این است که یک آی پی واسط بینه سرورها ایجاد میکند تا گوشیها و دستگاها و کلاینتها به آن متصل شوند!



    ۲- در فایل hostname نام گرها را وارد میکنیم!
    و حالا ما باید کارت شبکه های دومeth1 را آدرس دهی کنیم٫به این صورت:
    server1:10.1.1.1
    server2:10.1.1.2

    ما باید همه IPها را IP استاتیک دهیم ٫ در سیستم عامل اوبونتو بصورت زیر میباشد:

    root@failover1#vi /etc/network/interfaces

    auto lo

    iface lo inet loopback





    auto eth0

    iface eth0 inet static

    address 192.168.0.100

    netmask 255.255.255.0

    gateway 192.168.0.1 —->ip your gateway







    auto eth1

    iface eth1 inet static

    address 10.1.1.1

    netmask 255.255.255.0

    و به همین شیوه در سرور دوم:



    root@failover2#vi /etc/network/interfaces

    auto lo

    iface lo inet loopback





    auto eth0

    iface eth0 inet static

    address 192.168.0.101

    netmask 255.255.255.0

    gateway 192.168.0.1 —->ip your gateway







    auto eth1

    iface eth1 inet static

    address 10.1.1.2

    netmask 255.255.255.0

    وبعد با دستور

    #/etc/init.d/networking restart

    و در سیستم عاملهای فدورا و رد هت و سنت او اس باید با دستور زیر آی پی استاتیک داد:

    system-config-network

    بعد وارد محیطی میشوید که تمامیه ethernetها با نامه آنها ذکر شده که شما باید تغییر دهین!



    و بعد با دستور

    #/etc/init.d/network restart

    نکته:توجه کنید که تنها آی پی که نباید در اینجا دستی وارد کرد آی پی مجازی هست!چون خود برنامه Heartbeat اینکار را خودکار انجام میدهد!

    البته برای راه اندازیه Heartbeat و اینکه چه آی پی به کلاینها بدهد در قسمت Heartbeat کاملا توضیح داده میشود.







    حال برای همگام سازی sync دو سرور ما باید برنامه ntp ntpdate بطریق زیر نصب نماییم:

    apt-get install ntp ntpdate





    حال ما باید یک پارتیشن مجازی و مشترک بین دو سرور راه اندازی کنیم!

    با دستور fdisk -l یک وضعیت از پارتیشنها گرفته:

    Disk /dev/sda: 320.1 GB, 320072933376 bytes

    ۲۵۵ heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x3524ac13



    Device Boot Start End Blocks Id System

    /dev/sda1 * ۲۰۴۸ ۴۰۹۵۹۹ ۲۰۳۷۷۶ ۷ HPFS/NTFS/exFAT

    /dev/sda2 ۴۰۹۶۰۰ ۳۱۷۱۵۷۳۷۵ ۱۵۸۳۷۳۸۸۸ ۷ HPFS/NTFS/exFAT

    /dev/sda3 ۴۵۴۲۶۸۹۲۶ ۵۹۲۲۴۰۶۳۹ ۶۸۹۸۵۸۵۷ ۵ Extended

    /dev/sda4 ۳۱۷۱۵۷۳۷۶ ۴۵۴۲۶۶۸۷۹ ۶۸۵۵۴۷۵۲ ۸۳ Linux

    /dev/sda5 ۵۷۴۹۷۱۹۰۴ ۵۹۲۲۴۰۶۳۹ ۸۶۳۴۳۶۸ ۸۲ Linux swap / Solaris

    /dev/sda6 ۴۵۴۲۶۸۹۲۸ ۵۷۴۹۶۹۸۵۵ ۶۰۳۵۰۴۶۴ ۸۳ Linux

    و با دستور fdisk /dev/sda پارتیشن خود را ساخته:

    sudo fdisk /dev/sda

    >>>>

    n
    p
    ۳ or any number for sda,but no number of fdisk -l
    enter default or manualy
    enter default or manualy
    t
    ۳ or number of sda
    ۸۳
    w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    Syncing disks.

    و حالابا یکبار زدن دیگر دستور fdisk -l پارتیشن ساخته شده را میبینیم.


    و هر دو سرور را ریستارت میکنیم…



    حال پارتیشن ساخته شده را با دستور زیر در هر دو سرور فرمت مینماییم:



    mke2fs -j /dev/sda(number of your partion for drbd)

    dd if=/dev/zero bs=1M count=1 of=/dev/sda(number of your partion for drbd); sync



    نوبت به نصب برنامه drbd8-utils میرسد(برای اوبونتو):

    apt-get install drbd8-utils

    برای فدورا٫ سنت او اس٫ رد هت:

    yum install drbd83 kmod-drbd83 -y

    این تنظیماتDRBD برای هر۲ سرور میباشد!

    و برای لود کردن کرنل ماژول drbd وچک و ران کردن:

    modprobe drbd
    lsmod | grep drbd

    و حالا نوبت به کانفیگ فایله drbd.conf میرسد:

    این فایل در مسیر etc/drbd.con میباشد

    تنظیم فایل drbd.conf :

    global { usage-count no; }

    common { syncer { rate 100M; } }

    resource r0 {

    protocol C;

    handlers {

    fence-peer “/usr/lib/heartbeat/drbd-peer-outdater”;

    fence-peer “/usr/lib/drbd/crm-fence-peer.sh”;

    after-resync-target “/usr/lib/drbd/crm-unfence-peer.sh”;

    pri-on-incon-degr “echo ‘DRBD: primary requested but inconsistent!’ | wall; /etc/init.d/heartbeat stop”; #”halt -f”;

    pri-lost-after-sb “echo ‘DRBD: primary requested but lost!’ | wall; /etc/init.d/heartbeat stop”; #”halt -f”;

    }

    startup {

    wfc-timeout 15;

    degr-wfc-timeout 60;

    }

    disk { on-io-error detach; } # or panic, …

    net {

    cram-hmac-alg sha1;

    shared-secret “secret”;

    after-sb-0pri discard-younger-primary;

    after-sb-1pri consensus;

    after-sb-2pri disconnect;

    rr-conflict disconnect;

    }

    on failover1 {

    device /dev/drbd0;

    disk /dev/sda3;

    address 10.1.1.1:7788;

    meta-disk internal;

    }

    on failover2 {

    device /dev/drbd0;

    disk /dev/sda3;

    address 10.1.1.2:7788;

    meta-disk internal;

    }

    }



    توجه داشته باشید که در اینجا باید آیپی eth1 را وارد کنید٫ و همینطور پارتیشن ساخته شده sda3








    درضمن مطمئن شوید که اسمه نودهای وارد شده در drbd.conf با اسم hostname یکی باش!با دستور uname -n

    حال ما میخواهیم که دو برنامه Heartbeat و DRBD موازی با هم و در تعامل با هم کار کنن٫برای همین منظور ما دستوراته زیر را برای استفاده کردن Heartbeat از ماژولهای DRBD وارد مینماییم!

    فقط توجه داشته باشید که برای این قسمت اول باید heartbeat نصب باشد!!!

    chgrb haclient /sbin/drbdsetup

    chmod o-x /sbin/drbdsetup

    chmod u+x /sbin/drbdsetup

    ************************************************** *********

    chgrb haclient /sbin/drbdmeta

    chmod o-x /sbin/drbdmeta

    chmod u+x /sbin/drbdmeta

    حال به سراغ نصب برنامه heartbeat میرویم(برای اوبونتو).

    apt-get install heartbeat

    برای فدورا٫ سنت او اس٫ رد هت:

    yum install heartbeat -y

    برنامه heartbeat از سه قسمت(فایل) اساسی تشکیل شده:

    ha.cf-haresource-authkeys

    که در مسیر /etc/ha.d/ قرار دارد.

    فایل ha.cf برای این منظور تعبیه شده که برنامه heartbeat از چه توپولوژی و از چه طریقی از ابزارها و وسیلها و پورتها برای راه اندازیه کلاستر استفاده کند.

    فایل authkeys کلید یا همان مجوز انتقال داده بین گره ها میباشد.

    فایل haresource برای اینکه به heartbeat بگوید از کدام پارتیشن و از کدام سرور و کدام برنامه برای سوییچ در هنگام Failover شدن سرور اصلی استفاده کند.و همچنین کار اصلی ساختن VIP بعهده این فایل میباشد٫و همینطور وقتی سرورها Failover شدن یا سروری ریست شد٫ مانت کردن پارتیشن بعهده این فایل خواهد بود.

    حال به کانفیگ اصلی این برنامه میپردازیم:

    فایل cf:

    debugfile /var/log/ha-debug

    logfile /var/log/ha-log

    logfacility local0

    keepalive 2

    deadtime 30

    warntime 10

    initdead 120

    udpport 694

    bcast eth1

    auto_failback on

    node failover1

    node failover2

    respawn hacluster /usr/lib/heartbeat/dopd

    apiauth dopd gid=haclient uid=hacluster





    keepalive تعداد دفعاتی که heartbeat پکت میفرستد.

    Node که بیانگر گره ها میباشد.

    Bcast ست آپ کردن کارت شبکهeth

    دو خط آخر برای وقتی است که برای کابلها یا کارتهای شبکه مشکل پیش آید و عملیات sync را دوباره انجام دهد.

    ۲.فایل haresource:

    failover1 drbddisk::r0 Filesystem::/dev/drbd0::/replica::ext3 \ IPaddr::192.168.5.203/24/eth0 mysqld asterisk httpd kava.py

    در اول اسمه نود مستر را وارد کرده و بعد ساخت vip بوسیله این پارامتر:

    Ipaddr::VIP/Prefix/interface/broadcast

    در خط دوم باز اسم مستر و بعد از آن مانت کردن پارتیشنی که با drbd ساخته اییم بهمراه نوع پارتیشن.و در آخر خط هم باید سرویسی که قرار است روی heartbeat سوییچ شود را مینویسیم٫ که ما در اینجا از استریسک استفاده کرده ایم.

    نکته:توجه کنید که بهتر است فایل asterisk در مسیر /etc/init.d/ را در مسیر /etc/ha.d/resource.d/ کپی کرده!

    و همچنین فایل اسکریپتی kava.py که با فایل pdf ضمیمه کرده ام!

    این فایل در صورتی که سرور دوم به هر مشکلی بر خورد باعث جلوگیری از down شدن سیستم شده و همچنین تمامیه سرویسهایه مورد نیاز برای اجرا شدن درسته استریسک برقرار مینماید!

    این فایل باید حالت اجرایی بگیرید.با دستور:

    chmod +x kava.py

    بعد از آن باید در تمامیه این مسیرها کپی شود:

    /etc/init.d/

    /etc/rc0.d/

    /etc/rc6.d/

    /etc/ha.d/rc.d/

    /etc/ha.d/resource.d/

    /etc/ha.d/



    فایل authkeys:

    auth 1

    ۱ sha1 password

    sha1 همان مجوزی هست که در فایل drbd.conf تعریف کرده بودیم.

    و بعد از آن پسورد مورد نظر.

    نکته:برای فایل authkeys باید مجوز تعریف کنید:

    chmod 600 /etc/ha.d/authkeys



    نکته:تمام کانفیگهایه بالا باید در هردو سرور صورت پذیرد.





    حالا ما باید meta-disk ارزش دهی اولیه کنیم(در هر دو سرور=*):

    *server1,2# drbdadm create-md r0

    با این دستور سرویس را استارت مینماییم:

    service drbd start

    r0 همان نام ریسورس در drbd.conf میباشد.

    با این دستور یک مانیتور از فرایند کار میگیریم.

    *cat /proc/drbd

    DRBD :

    توضیحاتی درباره دستور cat /proc/drbd

    Cs → connection state

    st → node state(local/remote)

    ld → local data consistency

    ns → network send

    nr → network receive

    dw → disk write

    dr → disk read

    pe → pending (wating for ack)

    ua → unack’d (still need to send ack)

    al → access log write count



    با این دستور ما تعیین میکنیم که کدام سرور اصلی و primary باشه و پارتیشن drbd بر رویه primary ساخته شود

    و بعد از آن یک دایرکتوری بنامه replica بسازیم و مانت میکنیم:

    server01# drbdadm — –overwrite-data-of-peer primary r0

    server01#watch -n 1 cat /proc/drbdاول منتظر بمانیید تا عملیات سینک تمام شود

    server01# mkfs.ext3 /dev/drbd0

    server01# mkdir /replica

    server01# mount /dev/drbd0 /replica

    و حالا ما باید یک asterisk همگام سازی شده بین دو سرور بر روی پارتیشن ساخته شده بوسیله drbd ایجاد نماییم:

    اول وارد دایرکتوریه replica شده:

    cd /replica

    و بعد تمام این دستورات را برایه وارد کردن فایلها و مسیرهای asterisk در مسیر replica برای کلاسترمان وارد مینماییم:

    tar -zcvf etc-asterisk.tgz /etc/asterisk
    tar -zxvf etc-asterisk.tgz
    rm -rf /etc/asterisk
    ln -s /replica/etc/asterisk /etc/asterisk
    tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk
    tar -zxvf var-lib-asterisk.tgz
    rm -rf /var/lib/asterisk
    ln -s /replica/var/lib/asterisk /var/lib/asterisk
    tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk
    tar -zxvf usr-lib-asterisk.tgz
    rm -rf /usr/lib/asterisk
    ln -s /replica/usr/lib/asterisk /usr/lib/asterisk
    tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk
    tar -zxvf var-spool-asterisk.tgz
    rm -rf /var/spool/asterisk
    ln -s /replica/var/spool/asterisk /var/spool/asterisk
    tar -zcvf var-lib-mysql.tgz /var/lib/mysql
    tar -zxvf var-lib-mysql.tgz
    rm -rf /var/lib/mysql
    ln -s /replica/var/lib/mysql /var/lib/mysql
    tar -zcvf var-spool.tgz /var/spool/
    tar -zxvf var-spool.tgz
    rm -rf /var/spool
    ln -s /replica/var/spool /var/spool
    tar -zcvf var-www-html.tgz /var/www/html
    tar -zxvf var-www-html.tgz
    rm -rf /var/www/html
    ln -s /replica/var/www/html /var/www/html

    cd ..

    /etc/init.d/myql(in elastix:mysqld) restart

    /etc/init.d/myql(in elastix:mysqld) stop #for unmounting

    umount /replica ; drbdadm secondary r0



    و این دستورات هم در سرور اسلیو:دومی

    mkdir /replica ; drbdadm primary r0 ; mount /dev/drbd0 /replica

    rm -rf /etc/asterisk

    rm -rf /var/lib/asterisk

    rm -rf /usr/lib/asterisk/

    rm -rf /var/spool/asterisk

    rm -rf /var/lib/mysql/

    rm -rf /var/log/asterisk/

    ln -s /replica/etc/asterisk/ /etc/asterisk

    ln -s /replica/var/lib/asterisk/ /var/lib/asterisk

    ln -s /replica/usr/lib/asterisk/ /usr/lib/asterisk

    ln -s /replica/var/spool/asterisk/ /var/spool/asterisk

    ln -s /replica/var/lib/mysql/ /var/lib/mysql

    ln -s /replica/var/log/asterisk/ /var/log/asterisk

    ln -s /replica/var/www /var/www



    /etc/init.d/myql(in elastix:mysqld) restart

    /etc/init.d/myql(in elastix:mysqld) stop #for unmounting



    umount /replica/ ; drbdadm secondary r0



    و حال دوباره در سرور اصلی رفته:

    drbdadm primary r0



    و در آخر بر روی هر دو گره دستورات زیر را تایپ مینماییم:

    /etc/init.d/heartbeat start

    chkconfig –add heartbeat

    حال میرسیم به کنترل و هدایت سرورها و هدایت Heartbeat و DRBD با اسکریپتها:

    در هر دو سرور یک فولدر بنام cron که در ضمیمه گذاشته ام باید در مسیر /home/ کپی شود.

    دقت شود که محتویات cron مستر با cron اسلیو فرق میکند!

    بعد در فایل crontab در مسیر /etc/ این خط را به انتهای آن اضافه کنید:



    */۱ * * * * root /etc/init.d/pingin.py

    اسکریپت pingin.py , pingin2.py را در مسیر /etc/init.d/ کپی نموده و با دستور زیر به آن حالت اجرایی دهید:

    chmod +x /etc/init.d/pingin.py

    chmod +x /etc/init.d/pingin2.py

    و همچنین اسکریپت ایمیل را در سرور دوم در مسیر بالا کپی کرده و در فایل crontab این خط را اضافه کنید:

    */۱ * * * * root /etc/init.d/mail3.py

    و همچنین به این فایل هم حالت اجرایی دهید.

    و فایل m-cron هم در همان مسیر سرویسهای لینوکس کپی شده و حالت اجرایی بدهید به آن!

    فقط برای ایمیل زدن دقت نمایید که سرویس ssmtp را در سرور خود فعال ونصب و راه اندازی نمایید:

    نحوه نصب ssmtp بر روی CentOS:

    فایل epel-release-5-4.noarch را در فایلهای ضمیمه موجود است.

    root@server2#rpm -Uvh epel-release-5-4.noarch.rpm



    root@server2# yum -y install ssmtp





    در سیستم عاملهایی که بر پایه ردهت هستن باید دستور زیر را وارد کرده و گزینه ایی که ssmtp وجود دارد انتخاب شود!

    alternatives – -config mta

    توضیح کانفیگ سرویس میل:

    بعد از نصب ssmtp شما در مسیرetc/ssmtp/ssmtp.conf / رفته وآن را به شیوه زیر ویرایش کنید:

    root=habili@linux-zone.org (your e-mail)*



    # The place where the mail goes. The actual machine name is required

    # no MX records are consulted. Commonly mailhosts are named mail.domain.com

    # The example will fit if you are in domain.com and your mailhub is so named.

    mailhub=smtp.gmail.com:587 *

    # Example for SMTP port number 2525

    # mailhub=mail.your.domain:2525

    # Example for SMTP port number 25 (Standard/RFC)

    # mailhub=mail.your.domain

    # Example for SSL encrypted connection

    # mailhub=mail.your.domain:465



    # Where will the mail seem to come from?

    RewriteDomain=gmail.com *

    AuthUser=
    habili@linux-zone.org *

    AuthPass=****(your pass) *



    # The full hostname

    #Hostname=



    # Set this to never rewrite the “From:” line (unless not given) and to

    # use that address in the “from line” of the envelope.

    FromLineOverride=YES *



    # Use SSL/TLS to send secure messages to server.

    UseTLS=YES *

    UseSTARTTLS=YES *



    # Use SSL/TLS certificate to authenticate against smtp host.

    #UseTLSCert=YES

    # Use this RSA certificate.

    #TLSCert=/etc/pki/tls/private/ssmtp.pem



    # Get enhanced (*really* enhanced) debugging information in the logs

    # If you want to have debugging of the config file parsing, move this option

    # to the top of the config file and uncomment

    #Debug=YES



    آنهایی که آخرشان ستاره دارن باید قرار داده بشوند!و آنهایی که اولشان علامت # دارن برای توضیحات میباشد!



    فایله بعدی که برای کانفیگ لازم است در مسیرetc/ssmtp/revaliases / قرار دارد.

    کانفیگ این فایل هم به قرار زیر میباشد:

    # sSMTP aliases

    #

    # Format: local_account:outgoing_address:mailhub

    #

    # Example: root:your_login@your.domain:mailhub.your.domain[:port]

    # where [:port] is an optional port number that defaults to 25.

    root:
    habili@linux-zone.org:smtp.gmail.com:587

    البته من این ۲ فایل را با ایمیل خودم مثال زدم٫ هر جا که ایمیل من بود شما باید ایمیل مورد نظر خود را جایگزین نمایید!
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 11-13-2015, 05:27 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X