進銷存軟體­ERP管理系統開發搭建

xecd826發表於2022-05-17

    進銷存軟體,顧名思義是一種軟體工具,用於計劃任何組織記憶體在的所有資源,即管理組織內的所有活動。

   進銷存軟體 演示 :e.csymzs.top

  進銷存軟體優勢

  它提高了組織的完整性和靈活性。例如,如果一個組織建立了進銷存軟體,那麼員工、經理、人力資源、會計等訪問相同的平臺,每個使用者的詳細資訊和功能是不同的。

    它提高了速度和效率,每個使用者訪問的模組是分配給他們,他們的工作效率沒有任何困難。

  它為客戶提供更可靠的交付和更高的服務,兩端( 客戶和服務提供商 ) 工人在該系統上靈活工作。

  管理層的持續參與和溝通。

  進銷存軟體系統縮短了吞吐量:

  吞吐量= 處理時間 + 等待時間 + 移動時間

  它改進了報告和計劃的時間。實施和進銷存軟體套件跨部門意味著組織有一個單一的統一的報告系統的每個過程。通過擁有單一的資料來源,它可以在任何時候生成有用的報告和分析。

  以上幾點都表明,進銷存軟體是一個組織的催化劑。

  這也可以用一個例子來解釋: 一個進銷存軟體作為一個催化劑,這可以通過比較進銷存軟體之前的系統和與進銷存軟體系統的系統來解釋。

  沒有使用進銷存軟體系統之前,所有部門都有一個單獨的資料庫。在這種情況下,很難與其他部門聯絡,這意味著這是一項非常耗時的任務,因為一個部門必須等待,直到其他部門不承認查詢。

  使用進銷存軟體的系統之後所有部門都有一個公共資料庫。它形成了一個完整的系統,通過它,不同的部門可以很容易地相互聯絡,不浪費任何時間。因此,從這一點可以得到以下好處。

  更少的錯誤

  提高產品的可用性

  擴大產品種類

  安裝進銷存軟體

  安裝工具

  假設你已經安裝了kubectl & Docker ,並且你正在執行一個基於 Unix 的作業系統。

  k3d

  K3d 是一個助手,它允許您使用 docker 守護程式輕鬆建立 k3s 叢集

  curl -s | bash

  helm

  我們將使用進銷存軟體的官方頭盔圖來安裝它

  建立叢集

     k3d cluster create erpnext -v /opt/local-path-provisioner:/opt/local-path-provisioner

        kubectl config use-context k3d-erpnext

  叢集需要一個卷,因為我們將使用k3s 內建的本地路徑永續性

  你的kubecontext 通過第二個命令得到更新,這意味著現在當我們執行 kubectl 時,它將預設為我們新的 K3s 叢集。

  準備資源和環境

  首先,我們將在一個新建立的目錄中工作

        mkdir erpnext-stuff&&cd erpnext-stuff

  名稱空間

  kubectl create ns mariadb

         kubectl create ns erpnext

  建立兩個名稱空間,將資料庫與進銷存軟體分開。

  名稱空間是分離關注點的好方法,但不是硬性要求

  將每個Kubernetes 資源儲存在最近建立的進銷存軟體 -stuff 目錄中

  pvc.yaml

      apiVersion: v1

      kind: PersistentVolumeClaim

      metadata:

          labels:

              app: erpnext

          name: erpnext-pvc

          namespace: erpnext

      spec:

          accessModes:

          - ReadWriteOnce

           resources:

              requests:

                  storage: 4Gi

          storageClassName: local-path

  儘管進銷存軟體頭盔圖建立了一個PVC ,我們實際上希望避免使用他們的 PVC ,因為 accessMode 硬編碼為 RWX - ReadWriteMany

  當使用K3s 時, RWX 不可能與內建儲存控制器 'local-path' 一起使用。它只支援 RWO - ReadWriteOnce 或更低,這足以滿足我們的需求。

  RWO - ReadWriteOnce 簡化了 RWO - ReadWriteOnce ,可以掛載捲來支援一次只寫一個節點。如果我們已經為 K3s 叢集提供了單個節點 ( 預設 ) RWO 將足以滿足我們對 RWX 的需求

  Kubernetes 提供了一個可能的儲存類列表,以及它們支援的訪問模式,但這與我們今天的目標基本無關。

  site-ingress.yaml

    apiVersion: networking.k8s.io/v1

    kind: Ingress

    metadata:

      name: minimal-ingress

      annotations:

        ingress.kubernetes.io/ssl-redirect: "false"

    spec:

      ingressClassName: traefik

      rules:

      - host: "localhost"

        http:

          paths:

           - path: /

            pathType: Prefix

            backend:

              service:

                name: erpnext

                port:

                  number: 80

  入口資源使我們的內建入口控制器( 例如。 Web 伺服器 )traefik 知道路由規則。

  在我們的例子中,我們告訴traefik 將通過一個名為進銷存軟體 :80 的服務路由,進銷存軟體是一個將在我們安裝進銷存軟體舵圖時提供的服務。

  還不知道入口是什麼? 在使用 Apache 時,可以把它看作是一個虛擬主機,或者是一個 nginx 伺服器配置

  進銷存軟體-db-secret.yaml

    apiVersion: v1

    data:

      password: c29tZVNlY3VyZVBhc3N3b3Jk

    kind: Secret

    metadata:

      name: mariadb-root-password

    type: Opaque

  這個祕密將儲存進銷存軟體用來建立站點和執行查詢的資料庫使用者的密碼。

  對於somesecurepassword, c29tZVNlY3VyZVBhc3N3b3Jk base64 ,它是相同的密碼, MariaDB 將被告知使用 root 密碼,當我們稍後安裝。

  如果您認為合適,請隨意更改,顯然不要在實際環境或生產環境中使用我的預設值。

  create-site-job.yaml

    apiVersion: batch/v1

    kind: Job

    metadata:

      name: create-erp-site

    spec:

      backoffLimit: 0

      template:

        spec:

          securityContext:

            supplementalGroups: [1000]

          containers:

          - name: create-site

            image: frappe/erpnext-worker:v12.17.0

            args: ["new"]

           imagePullPolicy: IfNotPresent

            volumeMounts:

              - name: sites-dir

                mountPath: /home/frappe/frappe-bench/sites

            env:

              - name: "SITE_NAME"

                value: "localhost"

              - name: "DB_ROOT_USER"

                value: root

              - name: "MYSQL_ROOT_PASSWORD"

                valueFrom:

                  secretKeyRef:

                    key: password

                    name: mariadb-root-password

              - name: "ADMIN_PASSWORD"

                value: "bigchungus"

              - name: "INSTALL_APPS"

                value: "erpnext"

          restartPolicy: Never

          volumes:

            - name: sites-dir

              persistentVolumeClaim:

                claimName: erpnext-pvc

                readOnly: false

  如前所述,進銷存軟體是多租戶的。你可以執行很多網站,網站可以有很多公司。為每個站點建立一個資料庫,還為進銷存軟體設定建立了一些配置檔案,用於將站點解析為資料庫以及其他。

  “create-site” 作業是向進銷存軟體設定提供新 “site” 的推薦方法。

  感興趣的路徑

  spec.template.spec.containers [0] .image- 應該與舵面圖中使用的版本相匹配

  spec.template.spec.containers [0] .volumeMounts- 進銷存軟體解析主機名到資料庫和其他後設資料所需的卷

  spec.template.spec.containers [0] .env [0] - : 域名這個進銷存軟體站點的目標是 FQDN

  spec.template.spec.containers [0] .env [3] - ADMIN_PASSWORD 稍後我們將使用它進行登入

  spec.template.spec.volumes [0]- 體積 mount 基於我們的 pvc.yaml

  maria-db-values.yaml

  進銷存軟體指示您的MariaDB 例項應該顯式地使用此配置。我假設他們主要是想讓你有一個愉快的 utf8mb4 設定。

  你可能會注意到 進銷存軟體 .com/prepare-kubernetes/mariadb 上的進銷存軟體掌舵圖說明與我上面的值略有不同。

  這是因為他們的文件圍繞著一箇舊的mariadb 圖表版本。新版本的圖表預設也不啟用 slave ,所以我們的配置被簡化了。

  進銷存軟體

  把它們放在一起

  在叢集中宣告PVC 。在預設情況下, PVC 將不會被供應,直到需要 ( 即。容器支架 )

  使用我們的特定伺服器配置和root 密碼安裝 MariaDB —— 等待是否會迫使程式掛起,直到所有吊艙和服務都恢復正常

  安裝進銷存軟體。所有服務和吊艙將被部署為腳手架,用於隨後提供的任何地點。

  將MariaDB 使用者帳戶密碼宣告為我們即將進行的作業的祕密

  執行建立站點 作業,並對作業的 pod 進行流處理,直到完成

  一個成功的完成看起來像這樣:

  現在您的進銷存軟體例項是可操作的,並且您有了一個站點設定。最後一步是宣告入口,這樣我們就可以將進銷存軟體站點的名稱路由到進銷存軟體服務。

  使用

  現在訪問 ,應該會提示您進銷存軟體登入頁面。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011972/viewspace-2894908/,如需轉載,請註明出處,否則將追究法律責任。

相關文章