/images/avatar.png

公告

Warning
由于博客进行大版本升级,导致博客部分文章存在乱码情况,请注意甄别...
恢复时间---待定

命令学习-cat

cat 命令用来连接多个文件并打印到标准输出。

语法

cat [OPTION]... [FILE]...

主要用途

  • 显示文件内容,如果没有文件或文件为 - 则读取标准输入。
  • 将多个文件的内容进行连接并打印到标准输出。
  • 显示文件内容中的不可见字符(控制字符、换行符、制表符等)。

参数

  • FILE(可选):要处理的文件,可以为一或多个。

选项

(长选项与短选项等价)

命令学习-cp

cp 命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp 命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

命令学习-find

find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并将查找到的子目录和文件全部显示。

命令学习-ls

用法

ls [选项] [文件名…]
[-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [–full-time]
[–format={long,verbose,commas,across,vertical,single-col‐umn}]
[–sort={none,time,size,extension}] [–time={atime,access,use,ctime,status}]
[–color[={none,auto,always}]] [–help] [–version] [–]

命令学习-mv

mv 命令用于对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。

语法

1
mv [选项] [参数]

主要用途

  • 将源文件或目录移动到目标文件或目录。
  • 重新命名文件或目录。

参数

  • 源文件:指定源文件或目录,可以是一个或多个文件。
  • 目标文件:目标文件或目录。
    • 如果目标是文件名,则会将源文件重命名为目标文件。
    • 如果目标是目录名,则源文件会被移动到目标目录下。

选项

  • –backup=<备份模式>:若需覆盖文件,则覆盖前先行备份。
  • -b:当文件存在时,覆盖前,为其创建一个备份。
  • -f:如果目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录。
  • -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入“y”表示将覆盖目标文件;输入“n”表示取消对源文件的移动。
  • –strip-trailing-slashes:删除源文件中的斜杠“/”。
  • -S<后缀>:为备份文件指定后缀,而不使用默认的后缀。
  • –target-directory=<目录>:指定源文件要移动到目标目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

实例

1. 将目录中的所有文件移到当前目录

1
mv /usr/men/* .

将 /usr/men/ 目录中的所有文件移动到当前目录(用 . 表示)。

UBUNTU-24.04-初始化配置

一、系统检查升级:

sudo apt-get update && sudo apt-get upgrade

二、配置主机名

sudo hostnamectl hostname ubuntu

三、安装nfs

# 安装
sudo apt-get install nfs4-acl-tools nfs-common -y

四、qemu-guest-agent-虚拟机使用-非虚拟机可不用安装

# 安装
sudo apt-get install qemu-guest-agent -y
# 启动-开机启动-查看状态
sudo systemctl enable qemu-guest-agent && sudo systemctl start qemu-guest-agent && sudo systemctl status qemu-guest-agent

五、修改hosts文件

sudo vim /etc/hosts
10.10.10.111    ubuntu  Ubuntu

六、句柄配置

ulimit -SHn 65535

修改limits.conf文件

Helm安装Gitlab-Runner

添加htlm-gitlab源

helm repo add gitlab https://charts.gitlab.cn

列出repo

helm repo list

创建空间

kubectl create namespace gitlab

修改gitlab-runner.yaml文件

sudo vim gitlab-runner.yaml

imagePullPolicy: IfNotPresent # 镜像拉取策略,IfNotPresent 表示如果本地有镜像则不拉取
concurrent: 5 # 同时运行的 Runner 数量
checkInterval: 30 # Runner 定期检查任务的时间间隔(秒)
logLevel: info # 日志级别

## Gitlab服务器地址
gitlabUrl: https://gitlab.hckz.top # Gitlab 服务的访问地址

## 注册token
runnerRegistrationToken: "glrt-t1_xxxxxxxxxxxxxxxx_7" # 用于注册 Runner 的 token

# 创建RBAC (角色访问控制)
rbac:
  create: true # 是否创建 RBAC 资源

serviceAccount:
  create: true # 是否创建服务账户

# 添加 hosts 文件解析配置
hostAliases: 
  - ip: "10.10.10.140" # 指定的 IP 地址
    hostnames:
    - "gitlab.hckz.top" # 与 IP 地址对应的主机名

runners:
  config: |
    [[runners]]
      [runners.kubernetes]
        namespace = "{{.Release.Namespace}}" # 指定运行器使用的命名空间
        image = "ubuntu:20.04" # 指定 Pod 中使用的基础镜像
      [[runners.kubernetes.host_aliases]]
        ip = "10.10.10.140" # 指定 IP 地址
        hostnames = ["gitlab.hckz.top"] # 与 IP 地址对应的主机名
      [[runners.kubernetes.volumes.host_path]]
          name = "docker" # 卷名称
          mount_path = "/var/run/docker.sock" # 容器中挂载路径
          host_path = "/var/run/docker.sock" # 主机上的路径
      [runners.kubernetes.security_context]
        run_as_user = 100 # 设置运行容器的用户 ID
        fs_group = 65533 # 设置文件系统组 ID

securityContext:
  runAsUser: 100 # 运行容器的用户 ID
  fsGroup: 65533 # 文件系统组 ID

metrics:
  enabled: false # 是否启用监控指标

安装命令

K8S-组件版本查看

ingress-nginx

kubectl -n ingress-nginx get deployments.apps ingress-nginx-controller-nginx -o jsonpath='{.spec.template.spec.containers[0].image}' && echo

>> swr.cn-east-2.myhuaweicloud.com/kuboard-dependency/ingress-nginx:v1.0.0

kubectl -n ingress-nginx get deployments.apps ingress-nginx-controller-nginx -o jsonpath='{.metadata.labels.app\.kubernetes\.io\/version}' && echo

>> 1.0.0

calico

kubectl -n calico-system get deployment calico-kube-controllers -o jsonpath='{.spec.template.spec.containers[0].image}' && echo

>> docker.io/calico/kube-controllers:v3.29.1

kubernetesVersion

kubectl -n kube-system get cm kubeadm-config -o jsonpath='{.data.ClusterConfiguration}' | grep kubernetesVersion

>> kubernetesVersion: v1.31.3

kubectl

kubectl version -o yaml

>>
clientVersion:
buildDate: "2024-11-19T13:51:52Z"
compiler: gc
gitCommit: c83cbee114ddb732cdc06d3d1b62c9eb9220726f
gitTreeState: clean
gitVersion: v1.31.3
goVersion: go1.22.8
major: "1"
minor: "31"
platform: linux/amd64
kustomizeVersion: v5.4.2
serverVersion:
buildDate: "2024-11-19T13:48:20Z"
compiler: gc
gitCommit: c83cbee114ddb732cdc06d3d1b62c9eb9220726f
gitTreeState: clean
gitVersion: v1.31.3
goVersion: go1.22.8
major: "1"
minor: "31"
platform: linux/amd64

ubuntu-24.04-server-live搭建K8s-完整版

系统检查升级:

1
    sudo apt-get update && sudo apt-get upgrade

配置主机名

1
2
3
    sudo hostnamectl hostname master
    sudo hostnamectl hostname node-a
    sudo hostnamectl hostname node-b

安装nfs 安装nfs

1
    sudo apt-get install nfs4-acl-tools nfs-common -y

qemu-guest-agent-虚拟机使用-非虚拟机可不用安装 安装qume

Ubuntu安装Cloud-init

系统检查升级:

sudo apt-get update && sudo apt-get upgrade

安装

sudo apt-get install cloud-init

配置

sudo vim /etc/cloud/cloud.cfg

    # /etc/cloud/cloud.cfg
    # The top level settings are used as module
    # and base configuration.
    # 顶级设置用于模块和基本配置

    # A set of users which may be applied and/or used by various modules
    # when a 'default' entry is found it will reference the 'default_user'
    # from the distro configuration specified below
    # 定义要使用的用户配置,'default' 会引用下方 'default_user' 配置
    users:
    - default  # 使用默认用户配置

    # If this is set, 'root' will not be able to ssh in and they
    # will get a message to login instead as the default $user
    # 如果设置为 true,将禁用 root 用户的 SSH 登录
    disable_root: true  # 禁用 root 用户登录

    # This will cause the set+update hostname module to not operate (if true)
    # 如果为 true,主机名设置模块将不会操作
    preserve_hostname: false  # 保持主机名不变

    # If you use datasource_list array, keep array items in a single line.
    # If you use multi line array, ds-identify script won't read array items.
    # Example datasource config
    # 数据源配置示例
    # datasource:
    #   Ec2:
    #     metadata_urls: [ 'blah.com' ]
    #     timeout: 5 # (defaults to 50 seconds)
    #     max_wait: 10 # (defaults to 120 seconds)

    # The modules that run in the 'init' stage
    # 在 'init' 阶段运行的模块
    cloud_init_modules:
    - seed_random  # 生成随机数种子
    - bootcmd  # 执行引导时命令
    - write_files  # 写入文件
    - growpart  # 扩展磁盘分区
    - resizefs  # 调整文件系统大小
    - disk_setup  # 磁盘设置
    - mounts  # 挂载分区
    - set_hostname  # 设置主机名
    - update_hostname  # 更新主机名
    - update_etc_hosts  # 更新 /etc/hosts 文件
    - ca_certs  # 设置证书
    - rsyslog  # 启动 rsyslog 服务
    - users_groups  # 配置用户和组
    - ssh  # 配置 SSH 服务
    - set_passwords  # 设置用户密码

    # The modules that run in the 'config' stage
    # 在 'config' 阶段运行的模块
    cloud_config_modules:
    - wireguard  # 配置 WireGuard VPN
    - snap  # 配置 snap 软件包
    - ubuntu_autoinstall  # 启用 Ubuntu 自动安装
    - ssh_import_id  # 从 ssh 密钥导入 ID
    - keyboard  # 设置键盘布局
    - locale  # 设置地区和语言环境
    - grub_dpkg  # 配置 GRUB 引导加载程序
    - apt_pipelining  # 启用 apt 管道
    - apt_configure  # 配置 apt
    - ubuntu_pro  # 配置 Ubuntu Pro 订阅
    - ntp  # 配置 NTP 时间同步
    - timezone  # 设置时区
    - disable_ec2_metadata  # 禁用 EC2 元数据(适用于非 EC2 环境)
    - runcmd  # 执行自定义命令
    - byobu  # 安装 Byobu 终端复用器

    # The modules that run in the 'final' stage
    # 在 'final' 阶段运行的模块
    cloud_final_modules:
    - package_update_upgrade_install  # 更新并安装包
    - fan  # 配置风扇控制
    - landscape  # 配置 Landscape 管理工具
    - lxd  # 配置 LXD 容器
    - ubuntu_drivers  # 自动安装 Ubuntu 驱动
    - write_files_deferred  # 延迟写入文件
    - puppet  # 配置 Puppet 管理工具
    - chef  # 配置 Chef 管理工具
    - ansible  # 配置 Ansible 管理工具
    - mcollective  # 配置 MCollective 管理工具
    - salt_minion  # 配置 Salt Minion
    - reset_rmc  # 重置 RMC(远程管理控制)
    - scripts_vendor  # 执行厂商提供的脚本
    - scripts_per_once  # 执行一次性脚本
    - scripts_per_boot  # 每次启动时执行脚本
    - scripts_per_instance  # 每个实例执行脚本
    - scripts_user  # 执行用户自定义脚本
    - ssh_authkey_fingerprints  # 配置 SSH 密钥指纹
    - keys_to_console  # 将密钥传输到控制台
    - install_hotplug  # 安装热插拔设备
    - phone_home  # 向云服务发送信息
    - final_message  # 显示最终信息
    - power_state_change  # 处理电源状态变化

    # System and/or distro specific settings
    # 系统和/或发行版特定的设置
    # (not accessible to handlers/transforms)
    system_info:
    # This will affect which distro class gets used
    # 这将影响使用哪个发行版类
    distro: ubuntu  # 设置发行版为 Ubuntu
    
    # Default user name + that default users groups (if added/used)
    # 默认用户名和默认用户组
    default_user:
        name: ubuntu  # 设置默认用户名为 ubuntu
        lock_passwd: True  # 锁定密码(禁止设置密码)
        gecos: Ubuntu  # 用户的 GECOS 字段(用于显示的名称)
        groups: [adm, cdrom, dip, lxd, sudo]  # 用户所属的组
        sudo: ["ALL=(ALL) NOPASSWD:ALL"]  # 允许该用户使用 sudo 执行任何命令,不需要密码
        shell: /bin/bash  # 设置用户默认的 shell 为 bash

    network:
        dhcp_client_priority: [dhcpcd, dhclient, udhcpc]  # 设置 DHCP 客户端优先级
        renderers: ['netplan', 'eni', 'sysconfig']  # 配置网络渲染器
        activators: ['netplan', 'eni', 'network-manager', 'networkd']  # 网络激活器

    # Automatically discover the best ntp_client
    # 自动选择最合适的 NTP 客户端
    ntp_client: auto  # 自动选择 NTP 客户端
    
    # Other config here will be given to the distro class and/or path classes
    # 其他配置将传递给发行版类和/或路径类
    paths:
        cloud_dir: /var/lib/cloud/  # Cloud-init 数据存储目录
        templates_dir: /etc/cloud/templates/  # 模板文件目录
        
    # 配置包镜像源
    package_mirrors:
        - arches: [i386, amd64]
        failsafe:
            primary: http://repo.huaweicloud.com/ubuntu
            security: http://repo.huaweicloud.com/ubuntu
        search:
            primary:
            - http://repo.huaweicloud.com/ubuntu/
            security: []
        - arches: [arm64, armel, armhf]
        failsafe:
            primary: http://repo.huaweicloud.com/ubuntu-ports
            security: http://repo.huaweicloud.com/ubuntu-ports
        search:
            primary:
            - http://repo.huaweicloud.com/ubuntu-ports/
            security: []
        - arches: [default]
        failsafe:
            primary: http://repo.huaweicloud.com/ubuntu-ports
            security: http://repo.huaweicloud.com/ubuntu-ports

    ssh_svcname: ssh  # SSH 服务名称

配置-如果上述不起作用则使用本命令

sudo cloud-init clean && sudo cloud-init init && sudo cloud-init modules --mode=config

重启

reboot

启动-开机启动-查看状态

sudo systemctl enable cloud-init && sudo systemctl start cloud-init && sudo cloud-init status

Ubuntu安装GitLab

配置主机名

sudo hostnamectl hostname gitlab

hosts

10.10.10.130	gitlab	GITLAB gitlab.hckz.top

检查升级

sudo apt-get update && sudo apt-get upgrade

qemu-guest-agent-虚拟机使用-非虚拟机可不用安装

# 安装

sudo apt-get install qemu-guest-agent

# 启动-开机启动-查看状态
sudo systemctl enable qemu-guest-agent && sudo systemctl start qemu-guest-agent && sudo systemctl status qemu-guest-agent

安装nfs

sudo apt-get install nfs4-acl-tools nfs-common -y

前置安装

sudo apt-get install -y conntrack ipvsadm ipset jq iptables curl sysstat wget vim net-tools git

sudo apt-get install -y curl openssh-server ca-certificates tzdata perl golang libc6 libnfs-utils libnfs-dev

句柄配置

ulimit -SHn 65535

sudo vim /etc/security/limits.conf

* soft nofile 655360
* hard nofile 131072
* soft nproc 655350
* hard nproc 655350
* seft memlock unlimited
* hard memlock unlimitedd

ulimit -a

安装时间同步服务

sudo apt-get install chrony 

备份原有配置

sudo mv /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak

修改配置文件

http状态码

1xx 信息响应

  • 100 Continue: 继续。客户端应继续其请求。
  • 101 Switching Protocols: 切换协议。服务器根据客户端的请求切换协议。
  • 102 Processing: 处理将继续执行。

2xx 成功

  • 200 OK: 请求成功。服务器已成功处理了请求。
  • 201 Created: 已创建。请求成功并且服务器创建了新的资源。
  • 202 Accepted: 已接受。服务器已接受请求,但尚未处理。
  • 203 Non-Authoritative Information: 非权威信息。服务器成功处理了请求,但返回的信息可能来自另一来源。
  • 204 No Content: 无内容。服务器成功处理了请求,但没有返回任何内容。
  • 205 Reset Content: 重置内容。服务器成功处理了请求,并要求客户端重置视图。
  • 206 Partial Content: 部分内容。服务器成功处理了部分GET请求。
  • 207 Multi-Status: 多状态。消息体中包含多个独立操作的状态码。
  • 208 Already Reported: 已经报告。DAV绑定成员的状态已经在前一个响应中列出。
  • 226 IM Used: IM使用。服务器已经完成GET请求,并执行了实例操控。

3xx 重定向

  • 300 Multiple Choices: 多种选择。请求的资源有多种选择。
  • 301 Moved Permanently: 永久移动。请求的资源已永久移动到新URI。
  • 302 Found: 临时移动。请求的资源临时移动到新URI。
  • 303 See Other: 查看其他。响应可以在另一URI找到。
  • 304 Not Modified: 未修改。资源未修改,可以使用缓存的版本。
  • 305 Use Proxy: 使用代理。请求的资源必须通过代理访问。
  • 306 (Unused): 已废弃。原用于指定请求应使用的代理,现在不再使用。
  • 307 Temporary Redirect: 临时重定向。请求的资源临时移动到新URI。
  • 308 Permanent Redirect: 永久重定向。请求和所有将来的请求应使用新的URI。

4xx 客户端错误

  • 400 Bad Request: 错误请求。服务器不理解请求的语法。
  • 401 Unauthorized: 未授权。请求要求身份验证。
  • 402 Payment Required: 需要付款。保留,将来使用。
  • 403 Forbidden: 禁止。服务器拒绝请求。
  • 404 Not Found: 未找到。服务器找不到请求的资源。
  • 405 Method Not Allowed: 方法禁用。禁用请求中指定的方法。
  • 406 Not Acceptable: 不接受。无法使用请求的内容特性响应请求的资源。
  • 407 Proxy Authentication Required: 需要代理授权。客户端必须通过代理进行身份验证。
  • 408 Request Timeout: 请求超时。服务器等候请求时超时。
  • 409 Conflict: 冲突。服务器在完成请求时发生冲突。
  • 410 Gone: 已删除。请求的资源已永久删除。
  • 411 Length Required: 需要有效长度。服务器不接受不含有效内容长度标头字段的请求。
  • 412 Precondition Failed: 未满足前提条件。服务器未满足请求者在请求中设置的其中一个前提条件。
  • 413 Payload Too Large: 载荷过大。请求实体过大,服务器无法处理。
  • 414 URI Too Long: URI过长。请求的URI过长,服务器无法处理。
  • 415 Unsupported Media Type: 不支持的媒体类型。请求的格式不受服务器支持。
  • 416 Range Not Satisfiable: 范围不合适。请求的范围无法满足。
  • 417 Expectation Failed: 未满足期望值。服务器无法满足期望值。
  • 418 I’m a teapot: 我是茶壶。用于愚人节笑话的状态码。
  • 421 Misdirected Request: 请求被误导。服务器无法生成响应。
  • 422 Unprocessable Entity: 无法处理的实体。请求格式正确,但语义错误。
  • 423 Locked: 锁定。资源被锁定。
  • 424 Failed Dependency: 依赖失败。由于前一个请求失败,请求失败。
  • 425 Too Early: 太早。服务器不愿意处理请求,因为它可能被重放。
  • 426 Upgrade Required: 需要升级。客户端应切换到TLS/1.0。
  • 428 Precondition Required: 需要前提条件。要求请求先满足前提条件。
  • 429 Too Many Requests: 请求过多。用户在给定时间内发送了太多请求。
  • 431 Request Header Fields Too Large: 请求头字段太大。请求头字段太大,服务器拒绝。
  • 451 Unavailable For Legal Reasons: 因法律原因不可用。服务器由于法律原因无法提供资源。

5xx 服务器错误

  • 500 Internal Server Error: 服务器内部错误。服务器遇到错误,无法完成请求。
  • 501 Not Implemented: 尚未实施。服务器不具备完成请求的功能。
  • 502 Bad Gateway: 错误网关。服务器作为网关或代理,从上游服务器收到无效响应。
  • 503 Service Unavailable: 服务不可用。服务器目前无法使用(由于过载或维护)。
  • 504 Gateway Timeout: 网关超时。服务器作为网关或代理,未及时从上游服务器接收请求。
  • 505 HTTP Version Not Supported: HTTP版本不受支持。服务器不支持请求中使用的HTTP协议版本。
  • 506 Variant Also Negotiates: 变体也进行协商。服务器有内部配置错误。
  • 507 Insufficient Storage: 存储不足。服务器无法存储完成请求所需的内容。
  • 508 Loop Detected: 检测到循环。服务器在处理请求时检测到无限循环。
  • 510 Not Extended: 未扩展。获取资源的策略不满足请求。
  • 511 Network Authentication Required: 需要网络认证。客户端需要进行身份验证以获得网络访问权限。