溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AutoOps 1.8 版本

發(fā)布時間:2020-08-10 17:25:08 來源:網(wǎng)絡 閱讀:7405 作者:295631788 欄目:建站服務器

AutoOps

AutoOps 是一款基于 2.0 版本django 開發(fā)的,主要面向linux運維工程師使用,管理linux資產(chǎn)信息,Mysql數(shù)據(jù)庫,批量執(zhí)行命令、腳本,獲取流量圖,web ssh管理,技術文檔等功能。

歡迎大家測試使用,有問題可反饋。

Demo

  • 地址: http://114.115.132.147:8003 賬號admin 密碼1qaz.2wsx

  • 交流群號: 620176501 歡迎交流!

  • 后臺地址 http://114.115.132.147:8003/admin 賬號admin 密碼1qaz.2wsx

  • 博客: http://hequan.blog.51cto.com/

  • github: https://github.com/hequan2017/autoops/

  • 碼云: https://gitee.com/hequan2020/autoops

架構圖

AutoOps  1.8  版本

更新記錄

  • 1.8預覽版 加強mysql查詢展示功能。

  • 1.7.8 更換后臺為xadmin

    • tasks.task.任務

    • tasks.task.monitor_job #定時獲取CPU、內(nèi)存 、流量

    • tasks.task.clean_history_host_monitor #清除1周前的主機性能歷史記錄數(shù)據(jù)

    • tasks.task.cmd_job #可定時執(zhí)行命令,輸入 host,命令 即可。

    • 注意: xadmin暫時不支持 對象權限組件django-guardian,需要設置的時候,可以登陸dadmin(為默認admin)

    • 注意: xadmin 認不到 tasks任務的名字,需要的名字如下:

  • 1.7.7 更換webssh啟動方式。

  • 1.7.6 代碼庫功能上線,帶分發(fā)。

  • 1.7.4 更新ansible版本。 增強命令行 功能。具體方法參考ansible 模塊。

  • 1.6 Mysql數(shù)據(jù)庫操作: 自動審核 + 執(zhí)行 (目前只適用于Mysql)

  • 1.4 更新django 為2.0

  • 1.3 新增 技術文檔 板塊。

  • 1.2 權限管理完善。 增加附件上傳下載功能。

  • 1.1.5 新增 權限管理。 根據(jù)后臺用戶組,區(qū)分不同權限。如:在后臺先建一個 測試機 組,把普通用戶加入到此組。在前端添加資產(chǎn)時,在產(chǎn)品線中會出現(xiàn)測試機 。 測試機組下的用戶 只管管理測試機產(chǎn)品線的資產(chǎn)。

  • 1.1 新增 平臺登錄記錄、web登錄記錄、密碼修改等功能。


功能

  • asset資產(chǎn)

    • api http://114.115.132.147:8003/asset/api/asset.html

    • 自動獲取服務器信息

    • 全部導出

    • CPU 內(nèi)存 流量圖

  • names 用戶(預留模塊)

    • 加密解密 password_crypt.py ## 如果是自己的生產(chǎn)環(huán)境,建議更換里面的密鑰。

  • tasks任務

    • shell

    • python

    • 命令行

    • 工具

  • webssh 登陸

    • 借鑒的 github上的 https://github.com/huashengdun/webssh

  • library 技術文檔 (真正運維人員的管理平臺,自帶技術文檔,有問題不用再去別的地方找)

    • DjangoUeditor 富文本編輯器

  • 代碼庫

    • 代碼庫

    • 主機分發(fā)

  • 數(shù)據(jù)庫自動審核-- 命令執(zhí)行 回滾

    • Inception

  • 后臺管理

    • admin

    • 根據(jù)后臺用戶組進行區(qū)分。admin有最高權限。

    • 例如:新建 運維組、開發(fā)組 , 新建 運維組 里面的 hequan 賬號

    • 那么 hequan 只能看見 運維組下面的服務器、數(shù)據(jù)庫,執(zhí)行工具也只能選擇 運維組的。 hequan 無法添加服務器、數(shù)據(jù)庫。

環(huán)境

  • Python 3.6.4 #可以參考 script/install_python3.6.4.py

  • Django 2.0

  • Python 2.7 (用來啟動 supervisor)

  • Centos 7.4

  • supervisor 管理無法

    • uwsgi web服務啟動

    • webssh

    • celeryd 隊列任務

    • celerybeat

    • celerycam

    • celeryflower

    • Inception mysql 數(shù)據(jù)庫審核


安裝

  • 開發(fā)環(huán)境部署:

  1. 下載,安裝基本環(huán)境,安裝目錄為/opt下,如是其他目錄,請修改supervisor.conf中的相應設置即可。

cd /opt yum install git   sshpass    redis  -y  systemctl enable redis.service  systemctl start  redis.service  git  clone  https://github.com/hequan2017/autoops.git      cd   autoops/ pip3 install -r requirements.txt        cd /usr/local/src wget https://codeload.github.com/sshwsfc/xadmin/zip/django2 unzip django2 cd xadmin-django2/ python setup.py  install

添加的資產(chǎn)里面, 建議執(zhí)行 yum install ipmitool dmidecode -y以獲取更多信息

  1. 安裝 supervisor

chmod +x    /opt/autoops/script/inception/bin/* pip2   install    supervisor          ## 沒有pip2 版本的 ,可以參考 script/install_pip2.sh echo_supervisord_conf    > /etc/supervisord.conf  mkdir /etc/supervisord.d/       vim /etc/supervisord.conf      ##進行相關設置           [inet_http_server]             ##HTTP登錄賬號密碼 port=0.0.0.0:9001  username=user password=321 [include] files = /etc/supervisord.d/*.conf
cp   /opt/autoops/script/supervisor.conf               /etc/supervisord.d/

環(huán)境設置

  • 數(shù)據(jù)庫: 請修改 autops/settings文件, 如果沒有mysql,請選擇上面那種。如果有,則可以啟用mysql,設置相關連接地址。 關于mysql安裝方法,可參考我的博客 http://hequan.blog.51cto.com/5701886/1982428

DATABASES = {      'default': {         'ENGINE': 'django.db.backends.sqlite3',          'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),      }  }     DATABASES = {        'default': {            'ENGINE': 'django.db.backends.mysql',            'NAME': 'autoops',            'USER': 'root',            'PASSWORD': '123456',            'HOST': '192.168.10.24',            'PORT': '3306',         } }
  • 修改 autoops/settings 自定義參數(shù)

DEBUG = True                            ## 實際生產(chǎn)環(huán)境使用,請關閉    False BROKER_URL = 'redis://127.0.0.1:6379/0'                  ##Redis地址,一般情況不用修改 Webssh_ip = '114.115.132.147'      ##WebSSH 軟件的 訪問IP,也就是本機外網(wǎng)IP,改這個地方就好了。 Webssh_port='9000'             ##端口號,默認即可。如有修改,需要修改  webssh/main.py文件 define('port', default=9000, help='listen port', type=int) Inception_ip = '127.0.0.1'         ## 此為 Inception 軟件地址,  默認為本機地址,一般不用修改 Inception_port = '6669'            ## 此為 Inception 軟件端口號 inception_remote_system_password='654321'    ## 設置回滾備份(mysql)服務器相關參數(shù),并同步修改一下 script/inc.cnf 里面的設置 inception_remote_system_user='root' inception_remote_backup_port='3306' inception_remote_backup_host='192.168.10.100'   ##設置備份數(shù)據(jù)庫地址
  • 修改一個文件 /usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py 注釋35 36 以下兩行,找不到可以忽略。

if version < (1, 3, 3):     raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
  • 由于Inception 并不原生支持pymysql,所以需更改pymysql相關源碼。

在script/ 文件夾下有已經(jīng)修改的connections.py 和 cursors.py 直接替換即可。
替換位置為 /usr/local/lib/python3.6/site-packages/pymysql 下的 connections.py 和 cursors.py 兩個文件 注: 如果想知道,修改了哪里,可參考script/備注。

cp /opt/autoops/script/connections.py   /usr/local/lib/python3.6/site-packages/pymysql/connections.py cp /opt/autoops/script/cursors.py    /usr/local/lib/python3.6/site-packages/pymysql/cursors.py
  • 初始化數(shù)據(jù)庫(可刪除文件夾的 db.sqlite3)

python manage.py makemigrations python manage.py  migrate python manage.py  createsuperuser             ##創(chuàng)建管理員
  • autoops 登陸的端口號 在 supervisor.conf 里面 第2行 ,默認是 0.0.0.0:8003 。如有修改端口號,請把supervisor 里的uwsgi 服務關閉,再啟動。

  • 啟動supervisor進程管理

/usr/bin/python2.7   /usr/bin/supervisord -c /etc/supervisord.conf

加到linux 開機啟動里面 chmod +x /etc/rc.d/rc.local 把上面的命令放到這個文件里面

  • 啟動: 統(tǒng)一用supervisor 管理進程, 打開 0.0.0.0:9001 賬號user 密碼321 進入進程管理界面,管理uwsgi,webssh,celery,Inception 等啟動關閉。 AutoOps  1.8  版本

  • 登陸后臺,設置定時獲取主機圖,設置數(shù)據(jù)中心、用戶組。

  • 設置定時獲取主機信息任務。 先創(chuàng)建執(zhí)行的時間頻率,再創(chuàng)建任務,創(chuàng)建后,觀察隊列任務是否執(zhí)行成功。 如不成功,重啟所有supervisor中的 celery服務。 AutoOps  1.8  版本


開發(fā)設置

  • 如果想在windows 下的 pycharm打開, 先pip 安裝好模塊,ansbile無法裝在windows上,忽略掉。然后注釋下面的代碼。 注釋xadmin

asset/views.py from   tasks.ansible_2420.runner import AdHocRunner, CommandRunner from  tasks.ansible_2420.inventory import BaseInventory tasks/views.py    from   tasks.ansible_2420.runner import AdHocRunner, CommandRunner from  tasks.ansible_2420.inventory import BaseInventory release/views.py from   tasks.ansible_2420.runner import AdHocRunner from  tasks.ansible_2420.inventory import BaseInventory

生產(chǎn)環(huán)境

  • 如果想在生產(chǎn)環(huán)境部署、啟動, 用nginx去處理。 可以參考 http://hequan.blog.51cto.com/5701886/1982769 , 請把supervisor.conf 中 關于uwsgi的部分刪除掉, 用以下方式控制UWSGI的啟動 關閉.

uwsgi  --ini    /opt/autoops/script/uwsgi.ini     # 啟動uwsgi配置  也可以把這個命令寫到開機的文件里面 uwsgi  --stop   /opt/autoops/script/uwsgi.pid    # 關閉uwsgi uwsgi  --reload  /opt/autoops/script/uwsgi.pid   #重新加載
  • nginx 配置文件修改如下。 此方法也要啟動 uwsgi。

root         /opt/autoops;             location / {         include uwsgi_params;         uwsgi_connect_timeout 30;         uwsgi_pass unix:/opt/autoops/script/uwsgi.sock;              }          location /static/   {             alias  /opt/autoops/static/;             index  index.html index.htm;     }

截圖

AutoOps  1.8  版本AutoOps  1.8  版本AutoOps  1.8  版本AutoOps  1.8  版本AutoOps  1.8  版本AutoOps  1.8  版本


貢獻者

1.0
  • 何全


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI