В общем. Не могу воткнуть, что мне надо. Вернее как это надо сделать. Попробую расписать структуру и попытаться объяснить что я хочу увидеть, а кто имеет опыт, вас бы я хотел услышать как это сделать. Техническая часть проблем не вызывает. Поднять свн, прикрутить к апачу - все ерунда. Ближе к делу: Имеется следующая структура каталогов: /usr/local/www/sites - тут всякие куски всяких сайтов валяются /usr/local/www/sites/crsystem - один из этих кусков, собственно, который и нужен. /usr/local/www/svn/repos - корень репозитория /usr/local/www/svn/repos/crsystem - каталог проекта Я девелопер конторы. Захожу по урлу http://xxx.xxx.xxx.xxx. Смотрю - красивый сайт. Приходит таск - изменить то-то то-то. 1. Апдейчу себе свн, правлю то что надо. 2. коммитю. Но сайт еще не изменился. 3. Я сообщаю супер-главному админу, чтобы он обновил. 4. Супер-главный админ делает что-то. И изменения прикручиваются к сайту. Нужно реализовать такую схему Вот такая сказочка. Пока работал только с клиентской частью. Не думал что сервер это такая заморочка
то что получилось у мня - вроде бы и ничего. Но, когда делаю первый раз чекаут из /usr/local/www/sites/crsystem он мне там еще одну папку crsystem создает и какая-то папка .svn напрягает. Но это ладно А когда по веб-интерфейсу ходим http://ххх.ххх.ххх.ххх/svn/crsystem/ то видим и структуру, которая нужна в конечном итоге. В общем, у меня каша уже в голове. И видимо я где-то напутал последние 100 раз что перенастраивал эту ерунду
Ну вобще-то SVN сервер это всего лишь хранилище. А если тебе нужно выложить изменения на сайт, то нужно делать либо экспорт, либо update на соотвествующий сервер что бы изменения приехали куда надо. Т.е. svn up /usr/local/www/sites/crsystem делаем (если ставили сайт через checkout), либо svn svn://svnhost/crsystem /usr/local/www/sites/crsystem для экспорта проекта в папку.
транк основная ветка разработки. рядом с ней можно вести различные дополнительные ветки branches. т.е. к примеру. ты ведешь проект. все работают в trunk. потом на каком-то этапе вы говорите. все. это релиз. выносите его в бранчи. далее если что-то правится в релизе, то потом аккуратно мержиться с основной веткой и наоборот. тут просто нужна культура ведения svn. например у нас для дизайнеров вынесен отдельный бранч где они там курочат. потом всеаккуратно сливается в транк и оттуда в нужные релизы.
440Hz, понял. Ветвление. Я пропустил пока эту часть, ибо единственным разработчиком буду я. Чаще всего и человеком применяющим мои изменения на сервер, буду тоже я. Но не всегда. Надо просто отработать механизм. а это как?
когда выкладывется проект на веб. тм просто делается svn up и выкачивается текуще состояние. туда же летят папки .svn, так вот через них можно получить доступ к исходникам. надо закрывать в них доступ по вебу.
разница по-моему только в том, что апдейт обновляет локально только измененные с прошлой сессии файлы. Чекаут всю папку выливает локально. Вообще чекаут в классическом контроле версий должен еще лочить файл, чтоб только один разработчик одновременно вносить изменения. в свн это две разные команды.
checkout это выбрать проект из SVN. Обычно его делают когда хотят сделать себе локальную копию проекта. update уже просто получает обновления с момента последней синхронизации.
engager, я разобрался. Без чекаута папка - просто папка. Она без контроля и апдейт в такую папку не прокатит. Первоначально в нее надо получить рабочую копию, а потом уже апдейтить. приму на заметку. Но помоему надежнее сделать ее владельцем юзера от которого делается апдейт. Или если кто-нить получит права вебсервера меня уже ничего спасет ? =)
Ну и последний вопрос к гуру. Надо настроить ipfw. Пересобрал ядро с поддержкой. Все как полагается, дефаулт ту денай. Надо дать доступ к серваку только по ftp, http, https. ssh Вот такие у меня правила Код (Text): #!/bin/sh ipfw='/sbin/ipfw -q' ${ipfw} flush ${ipfw} add deny icmp from any to any in icmptype 5,9,13,14,15,16,17 ${ipfw} add allow ip from any to any via lo ${ipfw} add allow ip from me to any ${ipfw} add allow icmp from any to any ${ipfw} add allow tcp from any to me http,https,xxxx,ftp где xxxx - порт ssh 1. Достаточный ли набор? 2. Появилась проблемка: При авторизации ssh - ввожу логин и все к чертям зависает. upd. Второй вопрос отпал.. все норм. Осталось - достаточно ли правил ? =) Прошу помощи =)
что-то не то.. ssh очень долго заходит. Ребут зависает в sshd старте мой любимый mc вообще заводится пол часа
Так.. ничего не получается =) Взял за основу стандартный набор правил. Код (Text): 00100 32 3888 allow ip from any to any via lo0 00200 0 0 deny ip from any to 127.0.0.0/8 00300 0 0 deny ip from 127.0.0.0/8 to any 00400 220 75706 allow ip from me to 10.128.168.0/24 00500 270 21775 allow ip from 10.128.168.0/24 to me 00600 0 0 allow tcp from any to any established 00700 0 0 allow ip from any to any frag 00800 0 0 allow tcp from any to me dst-port 25 setup 00900 0 0 allow tcp from me to any setup 01000 0 0 deny tcp from any to any setup 01100 54 5409 allow udp from me to any dst-port 53 keep-state 01200 0 0 allow udp from me to any dst-port 123 keep-state 65535 6 845 deny ip from any to any Подскажите, плз. Что убрать или добавить чтобы было лучше =) Используются порты http, https, ftp, ssh
вот мой. с хостинга моего Код (Text): hosting(root):/usr/src#>cat /etc/firewall.conf # # 440hz zone # fwcmd="/sbin/ipfw -q" setup_loopback () { ${fwcmd} add pass all from any to any via lo0 ${fwcmd} add deny all from any to 127.0.0.0/8 ${fwcmd} add deny ip from 127.0.0.0/8 to any } $fwcmd -f flush $fwcmd zero # CHECK-STATE $fwcmd add check-state ### TABLES ### # SSH POOL $fwcmd table 1 flush $fwcmd table 1 add 87.248.240.102/32 $fwcmd table 1 add 195.2.240.6/32 $fwcmd table 1 add 77.234.201.222/32 $fwcmd table 1 add 195.131.135.159/32 $fwcmd table 1 add 195.182.159.106/32 $fwcmd table 1 add 87.248.240.102/32 # RUSIMPORT $fwcmd table 1 add 213.170.72.138/32 # BAN $fwcmd table 6 flush $fwcmd table 6 add 216.240.153.33/32 $fwcmd table 6 add 211.95.78.80/32 $fwcmd table 6 add 59.125.229.74/24 $fwcmd table 6 add 91.213.29.11/24 $fwcmd table 6 add 91.213.121.91/24 $fwcmd table 6 add 193.34.144.0/24 $fwcmd table 6 add 61.233.9.58/24 $fwcmd table 6 add 210.212.83.114/24 $fwcmd table 6 add 60.19.28.24/24 $fwcmd table 6 add 95.52.93.192/24 $fwcmd table 6 add 78.36.213.29/24 # BOTCRACK $fwcmd table 6 add 85.17.201.131/24 $fwcmd table 6 add 194.126.204.26/24 $fwcmd table 6 add 95.32.68.192/24 $fwcmd table 6 add 208.43.16.50/24 $fwcmd table 6 add 212.45.24.41/24 $fwcmd table 6 add 94.246.126.61/24 $fwcmd table 6 add 83.145.214.81/24 ### RULES ### # LOOPBACK setup_loopback # SSH $fwcmd add pass tcp from me ssh to any $fwcmd add pass tcp from table\(1\) to me ssh #$fwcmd add deny tcp from any to me ssh # BAN $fwcmd add deny tcp from table\(6\) to me # ICMP $fwcmd add pass icmp from any to me $fwcmd add pass icmp from me to any # IPERF #$fwcmd add pass tcp from any to me 5001 #$fwcmd add pass tcp from me 5001 to any # HTTP $fwcmd add pass tcp from any to me 80 $fwcmd add pass tcp from me 80 to any # FTP $fwcmd add pass tcp from any to me 21 $fwcmd add pass tcp from me 21 to any $fwcmd add pass tcp from any to me 20 $fwcmd add pass tcp from me 20 to any # 49500 50500 $fwcmd add pass tcp from any to me 49500-50500 $fwcmd add pass tcp from me 49500-50500 to any # TORRENTS # 49160 49300 #$fwcmd add pass tcp from any to me 49160-49300 #$fwcmd add pass tcp from me 49160-49300 to any # DNS $fwcmd add pass all from any to me 53 $fwcmd add pass all from me 53 to any $fwcmd add pass all from me to any 53 $fwcmd add pass all from any 53 to me # TIME $fwcmd add pass ip from me 123,525 to any 123,525 $fwcmd add pass ip from any 123,525 to me 123,525 ### ESTABLISH ### # Allow TCP through if setup succeeded $fwcmd add pass tcp from any to any established # Allow IP fragments to pass through $fwcmd add pass all from any to any frag # ME TO ANY $fwcmd add pass tcp from me to any setup # Allow setup of incoming email #$fwcmd add pass tcp from any to me 25 setup ### DENY ### # RSYNC # $fwcmd add deny all from any to me 873 # SNMP $fwcmd add deny all from any to me 199,161 # MYSQL $fwcmd add deny all from any to me 3306 $fwcmd add deny all from any to me 1186 # ALL #$fwcmd add deny log logamount 500 all from any to any #$fwcmd add deny all from any to any # # # Код (Text): hosting(root):/usr/src#>cat /etc/rc.conf # # 440hz@mail.ru # font8x14="cp866-8x14" font8x16="cp866b-8x16" font8x8="cp866-8x8" keymap="ru.koi8-r" mousechar_start="3" nfs_client_enable="YES" nfs_server_enable="YES" # SSH sshd_enable="YES" # HOST hostname="hosting.440hz.ru" # NET defaultrouter="77.234.201.221" network_interfaces="lo0 rl0" ifconfig_rl0="inet 77.234.201.222 netmask 0xfffffffc" # FIREWALL firewall_enable="YES" firewall_script="/etc/firewall.conf" # ROUTINE keymap="ru.koi8-r" sshd_enable="YES" usbd_enable="NO" # SENDMAIL sendmail_enable="NONE" sendmail_submit_enable="NO" # proftpd proftpd_enable=YES # DNS named_enable=YES # nginx nginx_enable=YES # php_fpm php_fpm_enable=YES # mysql mysql_enable=YES mysql_dbdir="/usr/db/mysql" # memcached memcached_enable=YES memcached_flags="-m 128 -l 127.0.0.1" # dovecot dovecot_enable=YES # exim exim_enable=YES # clamav_clamd clamav_clamd_enable=YES # clamav_freshclam clamav_freshclam_enable=YES # TIMESYNC #ntpdate_enable="YES" ntpd_enable="YES" ntpd_flags="-l /var/log/ntpd.log -p /var/run/ntpd.pid -f /var/db/ntpd.drift" ntpd_sync_on_start="YES" timed_enable="YES" timed_flags="-t -M" # spamd spamd_enable=YES spamd_flags="-c -x -m 10 -u spamd" # WATCHDOG watchdogd_enable="YES" # snmpd snmpd_enable="YES" # snmptrapd snmptrapd_enable="NO" # oops oops_enable=YES # # #
Занятно =) с ssh непонятно. Пропуск по таблице и кроме всего еще и бан-таблица? =) двойная осторожность?