بایگانی دسته: همیجوری

k8s

https://kodekloud.com/courses/kubernetes-for-the-absolute-beginners-hands-on/

https://kodekloud.com/wp-content/uploads/2021/10/KubernetesForBeginners-MumshadMannambeth-2.pdf

k8s overview

k8s architecture
Components

When you install Kubernetes on a System, you are actually installing the following
components. An API Server. An ETCD service. A kubelet service. A Container Runtime,
Controllers and Schedulers.
The API server acts as the front-end for kubernetes. The users, management devices,
Command line interfaces all talk to the API server to interact with the kubernetes
cluster.
Next is the ETCD key store. ETCD is a distributed reliable key-value store used by
kubernetes to store all data used to manage the cluster. Think of it this way, when you
have multiple nodes and multiple masters in your cluster, etcd stores all that
information on all the nodes in the cluster in a distributed manner. ETCD is
responsible for implementing locks within the cluster to ensure there are no conflicts
between the Masters.
The scheduler is responsible for distributing work or containers across multiple
nodes. It looks for newly created containers and assigns them to Nodes.
28
The controllers are the brain behind orchestration. They are responsible for noticing
and responding when nodes, containers or endpoints goes down. The controllers
makes decisions to bring up new containers in such cases.
The container runtime is the underlying software that is used to run containers. In our
case it happens to be Docker.
And finally kubelet is the agent that runs on each node in the cluster. The agent is
responsible for making sure that the containers are running on the nodes as
expected

kubectl run hello-minikube
kubectl cluster-info
kubectl get nodes

k8s concepts

pods
kubectl run nginx --image nginx
kubectl get pods
install kubectl

https://kubernetes.io/docs/tasks/tools/install-kubectl-linux

https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-kubectl-binary-with-curl-on-linux

https://minikube.sigs.k8s.io/docs/start

 minikube start --driver virtualbox
saeb@acer ~> minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
saeb@acer ~> kubectl get nodes
NAME       STATUS     ROLES           AGE   VERSION
minikube   NotReady   control-plane   22h   v1.28.3
saeb@acer ~> 
kubectl get po -A
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube
minikube service hello-minikube

Alternatively, use kubectl to forward the port:

kubectl port-forward service/hello-minikube 7080:8080
demo pods
kubectl run nginx --image=nginx
kubectl get pods
kubectl get pods -o wide
kubectl describe pods nginx
پسندها(0)شاکی(0)

شناسایی حجم اضافه شده به پارتیشن یا هارد اضافه شده به سیستم بدون نیاز به ری استارت

بعضی وقتا درخواست میدی به ماشین مجازیت حجم اضافه کنن. حالا دو حالت داره یا یه هارد کنونیت رو اکستند میکنند یا یه هارد جدید اضافه میکنن (از نظر ماشین مجازیت) اگه ماشینت رو ری استارت کنی خود به خود تغییرات رو میشناسه. اگه نخوای ری استارت کنی باید کار زیر رو بکنی

اگه هارد جدید اضافه کنن

با دستور زیر هاست ها رو لیست می‌کنی

ls /sys/class/scsi_host

و با دستور زیر می‌گی که حاجی اسکن کن. به جای host0 اسم هاستات رو که لیست شده می‌نویسی

sudo echo "- - -" > /sys/class/scsi_host/host0/scan

اگه یه هاردت رو اکستند کرده باشن

با دستور زیر میگید که حاجی اسکن کن

اون قسمت 1\:0\:0\:0 ممکنه چند تا باشن به همه همین‌کار کنید

echo 1>/sys/class/scsi_device/1\:0\:0\:0/device/rescan

بعد با cfdisk یا fdisk می‌تونید پارتیشن جدید بسازید.

هرچی آموزش توی نت دیدم از کامند d توی cfdisk استفاده می‌کرد که من جراتش رو ندارم. لذا به جای اکستند پارتیشن، پارتیشن جدید میسازم

بعد فرمتش می‌کنم

mkfs.ext4 /dev/sda3

پارتیشن جدید رو به physical volume ها اضافه می‌کنم

pvcreate /dev/sda3

بعد pv رو به volume group اضافه می‌کنم. با دستور vgs می‌تونید اسم vg رو ببینید. مال من بود debian-vg و pv رو به vg اضافه می‌کنید.

vgextend debian-vg /dev/sda3

بعد هم حجم رو به هر logical volume که می‌خواید اضافه کنید. با دستور lvs می‌تونید اسم lv ها رو ببینید. می‌تونید مقدار حجمی که قراره اضافه شه رو بگید -L+238G یا کل حجم رو یک جا بدید مثل زیر

lvextend -r -l +100%FREE /dev/debian-vg/lv-var 

شاید نیاز باشه دستور زیر رو هم بزنید که پارتیشن حجم جدید رو بگیره

resize2fs /dev/debian-vg/lv-var 
پسندها(0)شاکی(0)

بش اسکریپت آب خوردی

#!/usr/bin/bash
while true 
do
    zenity --question --no-wrap  --text="آب خوردی؟" --ok-label="ها" --cancel-label="دو دقه واسا"
    status=$?
    while [ $status -eq 1 ]
    do
        sleep 3m
        zenity --question --no-wrap  --text="آب خوردی؟" --ok-label="ها" --cancel-label="دو دقه واسا"
        status=$?
    done
    sleep 30m;
done
cat /home/saeb/.config/autostart/sbs.saeb.water.desktop 
[Desktop Entry]
Name=DrinkWater
GenericName=Drink water
Comment=Some description about your script
Exec=/home/saeb/.local/bin/drinkwater.bash
Terminal=true
Type=Application
X-GNOME-Autostart-enabled=true
پسندها(1)شاکی(0)

مشاهده دسترسی های یه کاربر تو اوراکل

select dbms_metadata.get_granted_ddl( 'SYSTEM_GRANT', 'N_HSE' ) from dual;
select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', 'N_HSE' ) from dual;
select dbms_metadata.get_granted_ddl( 'ROLE_GRANT', 'N_HSE') from dual;

SELECT * FROM USER_SYS_PRIVS; 
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;
پسندها(0)شاکی(0)

kvm qemu libvirt

sudo pacman -S libvirt nftables
 ✘  ~  cat br10.xml 
<network>
  <name>br10</name>
  <uuid>4c2ce191-a0e3-4916-842e-a7cdc2012332</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='br10' stp='on' delay='0'/>
  <mac address='52:54:00:5f:d2:40'/>
  <ip address='172.18.0.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='172.18.0.100' end='172.18.0.200'/>
    </dhcp>
  </ip>
</network>
sudo virsh net-define br10.xml
sudo virsh net-list --all
 sudo virsh net-start br10
 sudo virt-install --name debian11 --memory 2048 --disk size=4 --cdrom Downloads/debian-11.0.0-amd64-netinst.iso --network bridge=br10
sudo virsh start debian11

پسندها(0)شاکی(0)

دکوراتورها تو پایتون

دکوراتورها یه متد رو میگیرن و قبل از اجرای اون یه سری بلا سرش میارن. البته این برداشت منه که ایشالله درسته

دکوراتور به عنوان متد
به صورت کلاس و به صورت فانکشن میشه نوشت


def saeb(func: Callable) -> Callable:
    def b(*arg, **kwarg):
        func(*arg, kwarg)

    return b


@saeb
def a(*args, **kwargs):
    print(args, kwargs)


پسندها(0)شاکی(0)

کوتاه کردن لینک از طریق خط فرمان

Fish shell

Python

#!/usr/bin/env python
# coding: utf-8

# In[1]:


from json import loads
from requests import post
from pprint import pprint


# In[ ]:


API="x0x6KYOk6WjuLBbA3Vwxl1rE5l9VuiMd0Yci88il0"
headers = {"X-API-key":API}
data = {"target":"https://sae13.ir"}


# In[6]:


response=post("https://kutt.it/api/url/submit",data=data,headers=headers)

js=loads(response.content.decode())

pprint(js)
پسندها(0)شاکی(0)

نصب روتر پیازی بر روی رسپری پای ۳ و رسپیان ۹ stretch

 

قبلن یه آموزش ساخت روتر پیازی گذاشته بودم که روی رسپیان ۹ stretch جواب نمی ده . لذا قایل های کانفیگم رو برای رسپیان ۹ اینجا قرار میدم. لکن یه نگاه بهش بندازید یکم توضیح دادم چی به چیه اونجا.

آموزش قبلی اینجاست

نرم‌افزاریی که نیاز هست الان نصب کنید :

sudo apt install tor torsocks hostapd dnsmasq

برای فعال کردنشون هم که از دستورای زیر استفاده می‌کنیم:

 

sudo systemctl enable tor

sudo systemctl enable hostapd

sudo systemctl enable dnsmasq

برای آی پی استاتیک کابل اترنت فایل زیر رو باید ویرایش کنیم :

sudo nano /etc/dhcpcd.conf

 

# Example static IP configuration:
interface wlan0
static ip_address=172.24.1.1/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=172.24.1.1
#static domain_name_servers=127.0.10.1 , 208.67.222.222


# Example static IP configuration:
interface eth0
static ip_address=192.168.1.13/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

البته قسمت دوم که مربوط به کابل شبکه eth0 هست، اجباری نیست ولی خوب خودم برای این که بتونم داخل شبکه خودم دسترسی ssh داشته باشم ترجیحم اینه که آی پی کابل شبکه هم استاتیک باشه.

 

کار پکیج hostapd اینه که یه هات اسپات بسازه و براش دوتا تنظیم نیاز داریم.

یک ساخت یه فایل توی آدرس زیر با این مشخصات :

 

nano /etc/hostapd/hostapd.conf

 

interface=wlan0
# Use the nl80211 driver with the brcmfmac driver
driver=nl80211
# This is the name of the network
ssid=Tor
# Use the 2.4GHz band
hw_mode=g
# Use channel 6
channel=6
# Enable 802.11n
ieee80211n=1
# Enable WMM
wmm_enabled=1
# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
# Accept all MAC addresses
macaddr_acl=0
# Use WPA authentication
auth_algs=1
# Require clients to know the network name
ignore_broadcast_ssid=0
# Use WPA2
wpa=2
# Use a pre-shared key
wpa_key_mgmt=WPA-PSK
# The network passphrase
wpa_passphrase=1234567890-+
# Use AES, instead of TKIP
rsn_pairwise=CCMP

 

بعد هم توی فایل زیر

 

sudo nano /etc/default/hostapd

دنبال دستور

#DAEMON_CONF=""

بگردید و به صورت زیر تغییرش بدید:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

بریم سراغ فایل dnsmasq

اول از کانفیگ اصلیش یه بک آپ بگیریم

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.org

حالا یه فایل جدید بسازیم با داستانای زیر:

sudo nano /etc/dnsmasq.conf

interface=wlan0      # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on
#bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere
no-resolv
port=53
server=127.0.10.1 # Forward DNS requests to Google DNS
domain-needed        # Don't forward short names
bogus-priv           # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time

 

 

داخل فایل زیر

sudo nano /etc/sysctl.conf

یه خط هست به صورت

#net.ipv4.ip_forward=1

که باید از حالت نظر بیرونش بیاریم و # اولش رو پاک می‌کنیم.

مونده فایل کانفیگ تور

sudo nano /etc/tor/torrc

که من فعلا فقط دستورای زیر رو توش دارم. تا برم پل بهش اضافه کنم بعدن و سرورترنسپورت meek و  obfs4 رو هم دستی کامپایل کنم و تعریف کنم:

 

Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 172.24.1.1
DNSPort 127.0.10.1:53
#DNSListenAddress 127.0.10.1

بیاید به محکم کاری فایل لاگ تور رو خودمون دستی بسازیم:

sudo touch /var/log/tor/notices.log

بریم سراغ تنظیمات فایروالمون:

sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040

همانطور که مستحضرید دستورای فایروال با هر ری‌استارت پاک می‌شن. لذا پکیج iptables-persistent رو هم نصب می‌کنیم.

sudo apt install iptables-persistent

پسندها(4)شاکی(1)