PowerShellAI를 사용하여 Windows 터미널에서 ChatGPT를 설정하고 사용하는 방법


참고: https://bit.ly/436vXel

사전 요구 사항

  1. Windows 터미널: Microsoft Store 또는 GitHub 릴리스 페이지에서 Windows 터미널을 다운로드하여 설치합니다.
  2. PowerShell: PowerShell 5.1 이상이 설치되어 있는지 확인합니다. 버전은 Windows 터미널에서 $PSVersionTable.PSVersion을 실행하여 확인할 수 있습니다.
  3. P1단계: PowerShellAI 모듈 가져오기owerShellAI 모듈을 설치합니다: Install-Module -Name PowerShellAI
  4. ChatGPT를 사용하려면 OpenAI의 API 키가 필요합니다. OpenAI 웹사이트를 방문하여 계정을 등록한 후 API 키를 받습니다.

1단계: PowerShellAI 모듈 가져오기

Install-Module -Name PowerShellA

2단계: OpenAI API Ke 설정

$env:OpenAIKey = ‘sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

3단계: ChatGPT와 상호작용하기

gpt “can you tell me a joke?

gpt “Write a PowerShell script that can handle FizzBuzz”

gpt ‘generate a PowerShell script that can download a file from the internet one liner’

4단계: PowerShell Copilot

copilot “using PowerShell regex, just code. split user from domain of email address with match: demo.user@google.com”

Windows 10에 Azure PowerShell 설치한 후 접속하기



Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

Install-Module -Name Az -AllowClobber
(AllowClobber overwrites the previous PowerShell module.)

Connect-AzAccount

Get-AzSubscription

Get-AzResourceGroup

New-AzResourceGroup -Name soldeskRG -location eastus

Get-AzResourceGroup | ft ResourceGroupName

Azure 클라우드에서 Tag는 왜 사용하는가?


Azure Cloud의 태그는 리소스를 구성하고 리소스에 정책을 적용하는 데 사용됩니다. 이를 통해 비즈니스 또는 조직 기준에 따라 리소스를 분류할 수 있으므로 리소스를 보다 쉽게 관리하고 추적할 수 있습니다. 예를 들어 태그를 사용하여 리소스를 담당하는 부서, 연결된 환경(예: 생산, 개발) 또는 리소스 비용을 지불하는 비용 센터를 나타낼 수 있습니다. 또한 태그를 사용하여 리소스 그룹에 정책을 적용할 수 있습니다. 이를 통해 일관되고 자동화된 방식으로 해당 리소스에 대한 규정 준수를 관리하고 적용할 수 있습니다.

리소스 그룹에 정책을 적용할 때 해당 리소스를 사용할 수 있는 방법과 허용되거나 금지되는 작업을 제어하는 규칙을 정의합니다. 이러한 정책을 사용하여 내부 표준, 규정 요구 사항 또는 업계 모범 사례를 준수하도록 할 수 있습니다. 예를 들어 모든 가상 시스템이 유휴 상태에서 암호화되어야 한다는 정책을 시행할 수 있습니다. 이를 위해 모든 가상 머신에 암호화 확장 프로그램이 있는지 확인하고 확장 프로그램이 없는 가상 머신의 배포를 거부하는 정책을 생성할 수 있습니다. 그런 다음 태그를 사용하여 이 정책을 리소스 그룹에 적용합니다. 동일한 태그로 모든 가상 머신에 태그를 지정하면 정책이 모든 가상 머신에 일관되게 적용되도록 할 수 있습니다.

또 다른 예로는 특정 리소스 그룹에서 만들 수 있는 리소스의 수를 제한하는 정책이 있습니다. 이 정책은 초과 프로비저닝을 방지하고 예기치 않은 청구를 방지하는 데 유용합니다. 이 정책에 따라 관리되어야 하는 리소스에 태그를 지정하면 해당 리소스에 정책이 일관되게 적용되도록 할 수 있습니다.

또한 태그를 사용하여 리소스를 모니터링하고 특정 조건이 충족되면 알림을 보내는 정책을 적용할 수 있습니다. 이를 통해 문제를 신속하게 감지하고 대응할 수 있으며 리소스가 최적의 방식으로 사용되고 있는지 확인할 수 있습니다.

전반적으로 태그를 사용하여 정책을 적용하면 일관되고 자동화된 방식으로 리소스에 대한 규정 준수를 관리 및 적용할 수 있으므로 Azure 클라우드 환경에 대한 규정 준수 및 보안을 보다 쉽게 유지할 수 있습니다.

CentOS 7에 micro k8s 설치하기


sudo -i
yum install epel-release
yum install snapd -y
systemctl enable snapd.socket –now
ln -s /var/lib/snapd/snap /snap

su – root

snap install microk8s –classic –channel=1.25
usermod -aG microk8s $USER
chown -f -R $USER ~/.kube
su – $USER
microk8s status –wait-ready
microk8s enable dns ingress storage
microk8s.kubectl get ns

echo ‘source <(microk8s.kubectl completion bash)’ >> ~/.bashrc
echo ‘alias k=microk8s.kubectl’ >> ~/.bashrc
echo ‘complete -o default -F __start_kubectl k’ >> ~/.bashrc
exec bash

k get ns
k get node -o wide
k get pod -A

Ubuntu에 micro kubernetes 설치하기


sudo -i
snap install microk8s –classic –channel=1.25
usermod -aG microk8s $USER
chown -f -R $USER ~/.kube
su – $USER
microk8s status –wait-ready
microk8s enable dns ingress storage
microk8s.kubectl get ns

echo ‘source <(microk8s.kubectl completion bash)’ >> ~/.bashrc
echo ‘alias k=microk8s.kubectl’ >> ~/.bashrc
echo ‘complete -o default -F __start_kubectl k’ >> ~/.bashrc
exec bash

k get ns
k get node -o wide
k get pod -A

sudo 사용하는 방법


package 및 application 관리
sudo systemctl enable docker –now
sudo yum install tmux -y


yum install tree -y
sudo !!

wheel,sudo 그룹의 구성원으로서 root 계정으로 변경하되 암호를 특별히 입력하지 않음(현재 위치 변경하지 않음)
sudo -s

wheel,sudo 그룹의 구성원으로서 root 계정으로 변경하되 암호를 특별히 입력하지 않음(현재 위치 치를 root 계정의 홈 디렉터리로 변경)
sudo -i

powershell에서 -computername을 사용할 때는 원격에 RemoteRegistry 서비스가 실행중이어야 한다


Get-Process -ComputerName client

Get-Service -ComputerName server

이렇게 명령을 내렸는데 “Couldn’t connect to remote machine”라는 메시지가 발생하면서 접속이 안되는 일이 있다.

이런 이유는 원격 컴퓨터의 서비스 중에서 RemoteRegistry 서비스가 시작되지 않았기 때문이다.

-ComputerName 파라메터는 Enable-PSRemoting -Force 설정과는 무관하다.

단지 원격 컴퓨터에 RemoteRegistry 서비스와 관려되어 있을 뿐이다