| سطر 4: |
سطر 4: |
| | | | |
| | هناك عدّة خيارات لإعداد خادم خبيئة الحزم (package caching)، لكننا سنستخدم squid-deb-proxy المعد مسبقا للعمل مع اوبونتو (ويمكن تعديل الإعدادات ليشمل مخازن حزم deb اخرى) | | هناك عدّة خيارات لإعداد خادم خبيئة الحزم (package caching)، لكننا سنستخدم squid-deb-proxy المعد مسبقا للعمل مع اوبونتو (ويمكن تعديل الإعدادات ليشمل مخازن حزم deb اخرى) |
| − | | + | {{puppet-manifest|manifest=package { |
| | + | 'squid-deb-proxy-client': |
| | + | ensure => installed |
| | + | }|manifest-name=squid-deb-proxy}} |
| | sudo apt-get install squid-deb-proxy | | sudo apt-get install squid-deb-proxy |
| | | | |
| سطر 10: |
سطر 13: |
| | | | |
| | sudo apt-get install squid-deb-proxy-client | | sudo apt-get install squid-deb-proxy-client |
| | + | |
| | == إعداد خادم الدليل - إل داب == | | == إعداد خادم الدليل - إل داب == |
| | | | |
| سطر 40: |
سطر 44: |
| | mkdir /tmp/ldif_output | | mkdir /tmp/ldif_output |
| | | | |
| − | while read line; do slapcat -f /tmp/schema_convert -F /tmp/ldif_output -n0 -s "cn={$count}`echo $line | cut -f5 -d\/`,cn=schema,cn=config" ; count=`expr $count + 1`; done < /tmp/schema_convert | + | while read line; do slapcat -f /tmp/schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={$count}`echo $line | cut -f5 -d\/`,cn=schema,cn=config" ; count=`expr $count + 1`; done < /tmp/schema_convert.conf |
| | | | |
| | cd /tmp/ldif_output/cn=config/cn=schema | | cd /tmp/ldif_output/cn=config/cn=schema |
| سطر 46: |
سطر 50: |
| | | | |
| | for i in * ; do head -n -7 $i > $i.tmp ; mv $i.tmp $i ; done | | for i in * ; do head -n -7 $i > $i.tmp ; mv $i.tmp $i ; done |
| | + | |
| | + | cd /tmp/ldif_output/cn\=config/cn\=schema/ && ls | sort -V | while read line ; do sudo ldapadd -Y EXTERNAL -H ldapi:/// -f $line ; done |
| | + | للبدء في إنشاء مدخلات إل داب ضع الآتي في ملف مطبقا التغييرات التي تحتاجها: |
| | + | |
| | + | <pre> |
| | + | # Load dynamic backend modules |
| | + | dn: cn=module,cn=config |
| | + | objectClass: olcModuleList |
| | + | cn: module |
| | + | olcModulepath: /usr/lib/ldap |
| | + | olcModuleload: back_hdb |
| | + | |
| | + | # Database settings |
| | + | dn: olcDatabase=hdb,cn=config |
| | + | objectClass: olcDatabaseConfig |
| | + | objectClass: olcHdbConfig |
| | + | olcDatabase: {1}hdb |
| | + | olcSuffix: dc=adefcamps,dc=org |
| | + | olcDbDirectory: /var/lib/ldap |
| | + | olcRootDN: cn=adefadmin,dc=adefcamps,dc=org |
| | + | olcRootPW: secret |
| | + | olcDbConfig: set_cachesize 0 2097152 0 |
| | + | olcDbConfig: set_lk_max_objects 1500 |
| | + | olcDbConfig: set_lk_max_locks 1500 |
| | + | olcDbConfig: set_lk_max_lockers 1500 |
| | + | olcDbIndex: objectClass eq |
| | + | olcLastMod: TRUE |
| | + | olcDbCheckpoint: 512 30 |
| | + | olcAccess: to attrs=userPassword by dn="cn=adefadmin,dc=adefcamps,dc=org" write by anonymous auth by self write by * none |
| | + | olcAccess: to attrs=shadowLastChange by self write by * read |
| | + | olcAccess: to dn.base="" by * read |
| | + | olcAccess: to * by dn="cn=adefadmin,dc=adefcamps,dc=org" write by * read |
| | + | </pre> |
| | + | |
| | + | حمّل الملف إلى قاعدة بيانات إل داب: |
| | + | |
| | + | sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/file.bleh |
| | + | |
| | + | لو واجهت خطأ كالآتي: |
| | + | |
| | + | adding new entry "cn=module,cn=config" |
| | + | ldap_add: Other (e.g., implementation specific) error (80) |
| | + | additional info: <olcModuleLoad> handler exited with 1 |
| | + | |
| | + | فقم بإزالة المدخلة المذكورة cn=module,cn=config فالخطأ يشير أنها موجودة مسبقا |
| | + | |
| | + | نقوم بعدها بتعريف النطاق الرئيسي: |
| | + | <pre> |
| | + | # Create top-level object in domain |
| | + | dn: dc=example,dc=com |
| | + | objectClass: top |
| | + | objectClass: dcObject |
| | + | objectclass: organization |
| | + | o: Example Organization |
| | + | dc: Example |
| | + | description: LDAP Example |
| | + | |
| | + | # Admin user. |
| | + | dn: cn=admin,dc=example,dc=com |
| | + | objectClass: simpleSecurityObject |
| | + | objectClass: organizationalRole |
| | + | cn: admin |
| | + | description: LDAP administrator |
| | + | userPassword: secret |
| | + | </pre> |
| | + | تستطيعون الآن البدء بإنشاء مدخلات إل داب، لفعل ذلك عليكم إختيار أداة مناسبة، هناك العشرات من المشاريع التي تسعى إلى ذلك، بعضها يفترض هيكلية معيّنة ل إل داب، أدوات اخرى تتطلب فهما وتمكنا من صيغ إل داب بينما تعاني اخرى من مشاكل أداء وثبات و/أو توطين، نقترح هنا إستخدام أداة lat المتوفرة للينكس على أمل إيجاد أداة متكاملة مستقبلا! |
| | + | |
| | + | === إدارة وإنشاء المدخلات في إل داب === |
| | + | |
| | + | قوموا بتثبيت lat بإستخدام: |
| | + | sudo apt-get install lat |
| | + | |
| | + | شغل lat وإختر connect من قائمة server، أدخل عنوان أي بي الخادم، ادخل المعطيات مثلا: |
| | + | BaseDN: dc=adefcamps,dc=org |
| | + | Username: cn=admin,dc=adefcamps,dc=org |
| | + | |
| | + | قوموا بعدها بإختيار Populate for samba |
| | + | |
| | + | ستحتاجون لقيمة ل sid، للحصول عليها، على الخادم طبّقوا الأمر التالي: |
| | + | |
| | + | sudo net getlocalsid |
| | | | |
| | ==خادم إعداد الشبكة التلقائي (DHCP)== | | ==خادم إعداد الشبكة التلقائي (DHCP)== |
| − | apt-get install dhcpd-ldap | + | لإعداد خادم إعداد الشبكة التلقائي متكامل مع ldap |
| | + | على خادم dhcp طبّق الآتي: |
| | + | apt-get install isc-dhcp-server-ldap |
| | | | |
| | + | sudo sh -c "zcat /usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz > /tmp/dhcp.schema" |
| | + | scp /tmp/dhcp.schema adefadmin@ldap-server-address:/etc/ldap/schema/dhcp.schema |
| | + | في حال تم تثبيت الملف على خادم LDAP يمكن إستخدام الأمر : |
| | sudo sh -c "zcat /usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema" | | sudo sh -c "zcat /usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema" |
| | | | |
| سطر 55: |
سطر 145: |
| | | | |
| | sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{0\}dhcp.ldif | | sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{0\}dhcp.ldif |
| | + | === أوامر مفيدة === |
| | + | لإستكشاف عناوين الأيبي الحالية بإستخدام avahi ووضعها في ملف /usr/local/etc/hosts.camp |
| | + | |
| | + | for i in lab{1..3}-pc{1..12}.local ; |
| | + | do avahi-resolve -n -4 $i ; |
| | + | done | sed -e 's/\(.*\).local/\1 \1.adefcamps.org/' | awk '{print $3,$2,$1}' > /usr/local/etc/hosts.camp |
| | + | |
| | + | لبناء قائمة بعناوين MAC ADDRESS من هذه القائمة: |
| | + | cat /usr/local/etc/hosts.camp | cut -f1 -d\ | xargs -l ping -c 1 |
| | + | |
| | + | لإنشاء مدخلات LDAP ذات علاقة: |
| | + | CONTAINER_DN="cn=labs,cn=DHCP Config,ou=Services,dc=adefcamps,dc=org" |
| | + | arp -n | awk '{print $1,$3}'| while read -d' ' a b ; do echo -e "dn: $(avahi-resolve -a $b|cut -f2|cut -f1 -d.),$CONTAINER_DN\ncn: name2\nobjectClass: top\nobjectClas: dhcpHost\ndhcpHWAddress: ethernet $a\ndhcpStatements:fixed-address $b\n\n" ; done |
| | + | |
| | + | == إعداد الإدارة المركزية للحزم بإستخدام puppetmaster == |
| | + | |
| | + | لتثبيت خادم puppet master قم بإستخدام الأمر: |
| | + | |
| | + | sudo apt-get install puppetmaster |
| | + | |
| | + | === إعداد puppet على أجهزة المستخدمين (الزبون|client) === |
| | + | |
| | + | قم بتثبيت الحزمة puppet : |
| | + | sudo apt-get install puppet |
| | + | |
| | + | قم بتفعيل الخدمة بتعديل السطر في الملف /etc/default/puppet إلى: |
| | + | SRART=yes |
| | + | |
| | + | قم بإستيثاق الجهاز الزبون على الخادم (قم بتشغيل الأمر التالي على الخادم): |
| | + | puppetca --sign clientname |
| | + | |
| | + | |
| | + | <NOINCLUDE> |
| | + | for i in openshot pitivi audacity lmms mixxx ardour jack vocproc hydrogen gimp inkscape pencil stopmotion rosegarden blender soundconverter winff hydrogen ubuntu-restricted-extras vlc soundconverter synfigstudio fonts-arabeyes fonts-hosny-amiri fonts-hosni-thabit k3b ; do /bin/echo -e "package {\n '$i': \n ensure => installed \n}\n" ; done >> /etc/puppet/manifests/site.pp |
| | + | </NOINCLUDE> |
| | + | |
| | + | === دفع التغيرات إلى الأجهزة الزبون إختيارا === |
| | + | |
| | + | لفعل ذلك نحتاج إلى إستخدام الأمر puppet kick على الخادم، ولكن قبل ذلك، يجب تعديل إعدادات puppet على الزبون ليقوم بالتنصت لأوامر الخادم وذلك يحتاج إلى إضافة تصريح |
| | + | |
| | + | {{TODO}} |
| | + | |
| | + | === معلومات ذات علاقة === |
| | + | * [[وصفات puppet master المستخدمة في معسكر 2013]] |
| | + | * [http://arabdigitalexpression.org/wiki/%D8%AE%D8%A7%D8%B5:%D9%85%D8%A7%D8%B0%D8%A7_%D9%8A%D8%B5%D9%84_%D9%87%D9%86%D8%A7/%D9%82%D8%A7%D9%84%D8%A8:Puppet-manifest صفحات تحتوي على وصفات puppet master] |
| | + | |
| | + | == إعداد خادم سامبا المتكامل مع إل داب == |
| | + | بعد إعداد خادم إل داب بالشكل الموصوف أعلاه، قم على خادم سامبا بتثبيت الآتي: |
| | + | sudo apt-get install samba samba-doc smbldap-tools |
| | + | |
| | + | تأكد أن إسم خادم ال داب مضاف إلى /etc/hosts أو يمكن قراءته من خادم الأسماء، ثم في ملف /etc/samba/smb.conf إبحث عن : |
| | + | passdb backend = tdbsam |
| | + | |
| | + | قم بتعليقها، وإضف الآتي: |
| | + | |
| | + | <pre> |
| | + | # passdb backend = tdbsam |
| | + | |
| | + | # LDAP Settings |
| | + | passdb backend = ldapsam:ldap://hostname |
| | + | ldap suffix = dc=example,dc=com |
| | + | ldap user suffix = ou=People |
| | + | ldap group suffix = ou=Groups |
| | + | ldap machine suffix = ou=Computers |
| | + | ldap idmap suffix = ou=Idmap |
| | + | ldap admin dn = cn=adefadmin,dc=adefcamps,dc=org |
| | + | ldap ssl = start tls# |
| | + | ldap ssl = off# |
| | + | ldap passwd sync = yes |
| | + | ... |
| | + | add machine script = sudo /usr/sbin/smbldap-useradd -t 0 -w "%u" |
| | + | </pre> |
| | + | الخطوات: https://help.ubuntu.com/lts/serverguide/samba-ldap.html#samba-ldap-samba-configuration |
| | + | |
| | + | |
| | + | == إعداد خادم NFS == |
| | + | [[التجهيز التقني#المجلدات المشتركة]] |
| | + | ===إعداد automount على الجهاز الزبون=== |
| | + | # sudo apt-get install autofs |
| | + | sudo apt-get install autofs libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind |
| | + | |
| | + | echo "/adefcamps /etc/auto.adefcamps --ghost" | sudo tee -a /etc/auto.master |
| | + | |
| | + | |
| | + | echo "SAN -fstype=nfs 10.0.0.16:/export/SAN" | sudo tee -a /etc/auto.adefcamps |
| | + | |
| | + | sudo mkdir /adefcamps |
| | + | |
| | + | sudo /etc/init.d/autofs restart |
| | + | |
| | | | |
| | + | * ملاحظة : ليعمل نظام السموحات بشكل جيد، يجب أن يكون كلا من الخادم والجهاز الزبون مطلعين على ذات المجموعة من المستخدمين ومجموعاتهم (عبر إستخدام إل داب) |
| | | | |
| | ==kvm== | | ==kvm== |
| سطر 74: |
سطر 255: |
| | bridge_maxwait 0 | | bridge_maxwait 0 |
| | | | |
| | + | == خادم الإقلاع من الشبكة == |
| | + | {{:خادم الإقلاع من الشبكة}} |
| | [[تصنيف:البنية الرقمية للمعسكرات]] | | [[تصنيف:البنية الرقمية للمعسكرات]] |