ubuntu 18.04 LTS, Django2 mysqlclient 설치 오류

ubuntu 18.04 LTS 최초 설치후, django mysqlclient 설치 오류

ubuntu 18.04 설치하고, python3, django2, mysql 로 어플리케이션을 배포 환경을 구성.

1. 먼저, Django 어플리케이션 배포를 위해 웹서버와 mod_wsgi를 설치한다.

$ sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3

2. 어플리케이션이 mysql을 사용하므로, mysql을 설치한다.

$ sudo apt-get install mysql-server, mysql-client

3. 배포환경(virtualenv)을 위한 virtualenv를 설치한다.

$ sudo pip3 install virtualenv

Continue reading

Ubuntu 18.04 LTS ip 주소 변경

언제 바뀌었는지는 확인 해 보지 않았지만, 이전의 ubuntu 리눅스는 /etc/network/interfaces 파일에 ip 주소를 설정했었다.

이번에, ubuntu 18.04 LTS 버전을 새로 설치하고 IP 주소를 변경하려 했는데, 기존 설정 파일이 아래처럼 비어 있다.

snowfox@fox:/etc/netplan$ cat /etc/network/interfaces
# ifupdown has been replaced by netplan(5) on this system.  See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
#    sudo apt install ifupdown

Continue reading

Aruba WLC에서 AP 삭제하기.

사용하는 아루바 WLC (Wireless Lan Controller) 모델은 아래와 같다.

#show version
Aruba Operating System Software.
ArubaOS (MODEL: Aruba6000), Version 6.4.4.8
...

사용하던 AP 고장으로 기존의 AP를 제거하고 새 AP를 설치했을때 제거 전의 AP가 WLC에서 확인해보면 아래처럼 기존 AP가 down 상태로 존재한다.

# show ap database

AP Database
-----------
Name         Group  AP Type  IP Address    Status              Flags  Switch IP        Standby IP
----         -----  -------  ----------    ------              -----  ---------        ----------

AP-3F-04  APGROUP1  105      172.16.1.107  Down                N      192.168.1.131  0.0.0.0
AP-3F-04  APGROUP1  215      172.16.1.19   Up 10m:58s                 192.168.1.131  0.0.0.0
AP-3F-05  APGROUP1  105      172.16.1.108  Down                N      192.168.1.131  0.0.0.0
AP-3F-05  APGROUP1  215      172.16.1.84   Up 1d:1h:53m:15s           192.168.1.131  0.0.0.0

Continue reading

Aruba AP 105 공장 초기화 및 설정

1. 공장초기화
AP가 부팅되고 아래와 같은 상태.

=0x10000000, irq=48 hw_base=0xb0000000
ath_ahb: 0.9.4.5 (Atheros/multi-bss)

Starting FIPS KAT ... Completed FIPS KAT

keep watchdog process alive for talisker (nanny will restart it)...

        <<<<<       Welcome to the Access Point     >>>>>


password:
input passwd is not correct!

Continue reading

Django2, settings.py에 설정한 변수를 APP에서 사용하는 방법

settings.py에 설정한 변수를 APP에서 사용하는 방법

Django 프로그램을 작성하다보면 특정 변수를 모든 app 에서 사용하면 좋은 경우가 생긴다. 이런 경우에, settings.py에 변수를 설정하면 원하는 곳에서 불러서 사용할 수 있다.

먼저, settings.py 에 사용하고자 하는 변수(GATHER_INTERVAL)를 넣는다.

settings.py 
...

GATHER_INTERVAL = 60  
 

이제, 변수를 사용할 앱에서 아래와 같이 사용하면 된다.
getattr() 이 개체의 속성값을 확인하는 함수이므로, 아래 코드는 settings 객체에서 GATHER_INTERVAL 값을 가져오게된다.

from django.conf import settings

GATHER_INTERVAL = getattr(settings, 'GATHER_INTERVAL', None)

print(GATHER_INTERVAL)

위의 코드를 실행하면 settings.py에 설정한 60 이 출력됨을 볼 수 있다.

mysql error, 1267 Illegal mix of collations 해결방법.

mysql에서 두 테이블 join 했을때, 아래와 같은 오류 발생.

(1267, "Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='")

테이블 1과 테이블2의 collate 문자셋이 서로 달라서 발생한다고 한다.
해결 방법은 몇 가지가 있다고 하는데, 테이블 문자셋만 변경해서는 오류가 해결되지 않아서 데이타베이스와 해당 테이블의 collate 문자셋을 모두 변경했다.

alter database [DB_NAME] character set utf8 collate utf8_general_ci;
alter table [TABLE1] convert to character set utf8 collate utf8_general_ci;
alter table [TABLE2] convert to character set utf8 collate utf8_general_ci;

참고문서:
https://bstar36.tistory.com/318

Django url warning – / 제거?

django2.2 에서, 하나의 프로젝트에 여러개의 app을 들어서 app을 실행했을때 아래와같은 경고가 발생하는 경우,

WARNINGS:
?: (urls.W002) Your URL pattern '/catsel/' [name='select'] has a route beginning with a '/'. Remove this slash as it is unnecessary. If this pattern is targeted in an include(), ensure the include() pattern has a trailing '/'.

System check identified 1 issue (0 silenced).

1. app의 urls.py(app의 이름이 devmgmt 이다)

urlpatterns = [
    path('/catsel/', SelectCatView.as_view(), name='select'),
    path('/test/', TestView.as_view(), name='test'),      # 테스트페이지
]

위의 경고대로 아래처럼 path에서 ‘/’를 제거하고 접속했는데, 404 page not found 오류가 난다.

urlpatterns = [
    path('catsel/', SelectCatView.as_view(), name='select'),
    path('test/', TestView.as_view(), name='test'),      # 테스트페이지
]

Continue reading

Ubuntu 18.04, apache2에 http/2 설정하기.

Ubuntu 18.04, apache2에 http/2 설정하기.

* 작업환경
OS:Ubuntu 18.04
Apache2 : 2.4.29
https: 사용중(Let’s encrypt 인증서)
php: mod_php 7.2

별도 설정없이 apache2를 사용한다면 대부분 http/1.1을 사용하고 있을 것이다. 몇 가지 이유(약간의 속도향상, PUSH사용 등)로 http/2를 사용하고자 한다면 설정전 반드시 확인해야 할 사항이 있다.

1. apache2 버전: apache2는 http/2를 2.4.24 버전부터 지원하기 시작했다. 따라서, 버전을 확인해야한다.
2. https 사용: http/2는 HTTPS를 이용하므로 반드시 SSL 설정이 되어 있어야 한다.
3. php-fpm 사용: http/2는 apache의 prefork 모듈과 호환되지 않으므로 MPM으로 전환해야한다. php를 사용하는경우는 mod_php 대신 php-fpm 모듈을 사용해야한다.

Continue reading

리눅스 HA(corosync, pacemaker, DRBD) – Part 2

corosync, pacemaker 클러스터에 DRBD 디스크 이용하기.

참고:
리눅스 HA(corosync, pacemaker) – Part 1
리눅스 HA (pacemaker, corosync, iscsi shared storage) – part 3
리눅스 HA(corosync, pacemaker, shared disk)에 zabbix 모니터링 서버 구성 – part 4

이 글은 리눅스 HA(corosync, pacemaker) – Part 1에 이어집니다. part2는 원래 iscsi 볼륨을 붙여서 active-active 클러스터로 넘어가는 글이었는데, 작성하다가 멈췄습니다.(여러가지 이유로…) 그런데, 시간이 벌써 2년이 지났군요!!!

최근에 DRBD 관련 문의주신 분이 있어, DRBD 볼륨을 붙여봅니다.

환경은 이전과 동일합니다. 이전 글을 참고해 주시기 바랍니다.

DRBD는 네트워크를 통한 디스크 미러링이라 생각하면 됩니다. 가령, 서버1의 디스크1, 서버2의 디스크2를 DRBD로 구성한 경우, 서버1의 작업으로 인해 디스크1의 내용이 변경되면 실시간으로 서버2의 디스크2도 변경됩니다.

1. DRBD 설치(양쪽 노드 모두)
공식 레포지토리에는 drbd패키지가 없으므로, elrepo를 등록해준다.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

drbd 버전 9.x을 아래와 같이 설치한다.(아래쪽 오류로 나중에 8.4를 재 설치해봤으나, 버전문제는 아니었음)

# yum install drbd90-utils
# yum install kmod-drbd90

2. 커널에 DRBD 모듈을 로딩한다.(양쪽 노드 모두)

# lsmod | grep drbd
# modprobe drbd
# lsmod | grep drbd
drbd                  553913  0 
libcrc32c              12644  2 xfs,drbd

Continue reading

Cisco PBR(Poilcy Base Routing) 설정

Cisco PBR(Policy Base Routing) 설정

Source IP 주소를 확인하여 라우팅 경로를 다르게 설정하기 위해서 사용한다.
SDM(Switch Databse Management) template이 필요하므로 설정을 확인하고 sdm template를 사용가능하도록 해야한다.

SDM template 확인.
number of IPv4 policy based routing aces 항목을 확인해 보면 0 이다.

Switch#sh sdm prefer
 The current template is "aggregate default" template.
 The selected template optimizes the resources in
 the switch to support this level of features for
 8 routed interfaces and 1024 VLANs. 

  number of unicast mac addresses:                  6K
  number of IPv4 IGMP groups + multicast routes:    1K
  number of IPv4 unicast routes:                    12K
    number of directly-connected IPv4 hosts:        6K
    number of indirect IPv4 routes:                 6K
  number of IPv4 policy based routing aces:         0
  number of IPv4/MAC qos aces:                      0.875k
  number of IPv4/MAC security aces:                 1K

Continue reading