우분투 리눅스에서 python3, django, oracle 19c 사용하기. * 작업 환경 OS: ubuntu 22.04 ip address : 172.30.124.211 (오라클 설치된 서버 아님) python: python3.10.12 oracle client: 설치됨. django: 5.0.4 Oracle 데이터베이스 : SCAN IP 172.30.124.241, 172.30.124.242,172.30.124.243 * 주의사항 cx_Oracle 패키지를 설치하면 오라클 클라이언트없이 파이썬 스크립트를 작성하고 실행할 수 있다. 하지만 Django 프로그램에서 오라클 데이터베이스를 사용하려면, 오라클 …
Category: Python/Django
9월 28 2022
pywinrm 사용을 위한 winrm 설정과 테스트 코드.
winrm 설정과 pywinrm을 이용한 테스트 코드 실행. * 작업 환경. winrm은 windows10에 설정. pywinrm은 ubuntu 18.04, python 3.6.9에서 실행. 1. 윈도우 네트워크 프로필 설정. 네트워크프로필을 개인네트워크로 설정한다. 공용네트워크로 설정되어 있으면 quick config가 진행되지 않는다. 시작 -> 네트워크 상태 -> 이더넷 -> 네트워크(연결됨) -> 네트워크 프로필 -> 개인 네트워크 상태
7월 04 2022
python-daemon 오류
리눅스 python-daemon 오류 간단한 파이썬 데몬을 python-daemon 패키지를 설치해서 작성했는데, 아래와 같은 오류가 발생했다. 파이썬 virtualenv 환경에서 스크립트를 작성했다. File “xipamd.py”, line 92, in daemon_runner = runner.DaemonRunner(d) File “/home/snowfox/venv/lib/python3.6/site-packages/daemon/runner.py”, line 114, in __init__ self._open_streams_from_app_stream_paths(app) File “/home/snowfox/venv/lib/python3.6/site-packages/daemon/runner.py”, line 133, in _open_streams_from_app_stream_paths self.daemon_context.stdout = open(app.stdout_path, ‘w+t’) io.UnsupportedOperation: File or stream is not seekable. /home/snowfox/venv/lib/python3.6/site-packages/daemon/runner.py를 수정한다.(파이썬 가상환경에서 설치된 …
3월 30
[Django] 관리자 페이지에 모델 action 추가.
django 관리자 페이지에 모델 action 추가. 특정 모델의 기본 action 은 아래 그림처럼 삭제가 기본이다. (django import-export를 설치했기 때문에 export action이 더 보인다). 여기에 내가 원하는 action을 추가하고싶다면 다음과 같이 처리해야한다. 1. app/models.py 의 모델이 아래와 같다. class NetworkDevice(models.Model): dev_ip = models.GenericIPAddressField(default=’0.0.0.0′, verbose_name=’Network Device IP Address’) dev_nip = models.BigIntegerField(blank=True, null=True, verbose_name=’Numeric IP’) username = models.CharField(max_length=24, …
10월 07 2021
Django, queryset 결과의 문자열을 변경하는 방법.
Django3.1, queryset 결과 문자열을 변경하는 방법. 아래의 모델에 저장된 MAC 주소는 ‘0021ccd3792f’ 같은 형식으로 일반적으로 표현되는 : 이나 – 이 제거된 형태다. models.py class MacTable(models.Model): … mac = models.CharField(max_length=32, verbose_name=’MAC Address.’) device = models.ForeignKey( ‘NetworkDevice’, on_delete=models.CASCADE, verbose_name=’Network Device’ ) interface = models.CharField(max_length=32, verbose_name=’Interface’) vlan = models.CharField(max_length=32, verbose_name=’VLAN’) dropped = models.BooleanField(default=False, verbose_name=’Dropped’) …. class Meta: verbose_name_plural …
7월 15 2021
django admin 페이지에서 다른 모델의 필드값을 drop-down 리스트로 사용하기.
Django 관리자 페이지에서 다른 모델 필드값 drop-down list로 사용하기 모델은 아래와 같다. class Category(models.Model): name = models.CharField(max_length=64, unique=True) class NetworkDevice(models.Model): … category = models.CharField(max_length=64, null=True, blank=True, verbose_name=’Category’) 위의 모델에서, NetworkDevice 모델의 category 필드의 입력값을 Category 모델의 값에서 가져오기를 원하는경우, ForeignKey를 사용하면 되지만, 외래키를 사용하는경우 Category 쪽의 데이타를 삭제하는 경우 문제가 발생할 수도 있다. 그런 경우를 …
7월 07 2021
Nornir 네트워크 자동화 – 4 (nornir-napalm)
Nonir 네트워크 자동화 – 4 (nornir-napalm) 1. NAPALM NAPALM(Network Automation and Programmability Abstraction Layer with Multivendor support) NAPALM은 통합된 API를 사용하여 다양한 네트워크 장비의 OS와 상호작용하는 기능을 구현한 파이썬 라이브러리. 현재 버전(napalm 3)에서 지원하는 NOS는 Arista EOS, Cisco IOS, Cisco IOS-XR, Cisco NX-OS, Juniper JunOS이다. * NAPALM의 단점 지원되는 OS가 적다(하지만 지원되지 않는 장비들에 대한 …
6월 22 2021
Nornir 네트워크 자동화 – 3 (활용편)
Nornir 네트워크 자동화 – 3 (활용편) 이전 글(Nornir 네트워크 자동화 -2 (활용편))에서 nornir-netmiko 를 통해 시스코스위치에 명령을 내리고 결과를 가져오는 파이썬 스크립트를 작성했다. 이제, 남은것은 가져온 결과에서 원하는 부분을 추출하여 excel 에 저장하는 것이다. 만약, 결과를 눈으로 확인하기만 하면 된다고하면 print_result 사용만으로 충분할 수도 있겠지만, 장비의 시리얼 번호 추출이나 os 버전을 업그레이드 하기 위해 현재 …
6월 19 2021
Nornir 네트워크 자동화 -2 (활용편)
Nornir 네트워크 자동화 – 2 활용편 목표: Nornir를 이용하여 시스코 스위치 점검하는 파이썬 스크립트를 작성 사람이 장비점검을 한다고 하면 보통 아래 과정을 거쳐야한다. 1. 스위치의 목록 확인(ID, 비밀번호, 접속방법 등등) 2. 장비 접속, 보통 순서대로 접속하지만, 터미널 프로그램에 등록해서 한번에 여러대 접속이 가능하다. 3. 장비별로 명령을 내린다. 이것 역시 순서대로 하거나 여러 장비에 동시 가능. …