cmdb部署


參考資料:https://github.com/guohongze/adminset

基礎安裝說明:
1、基本要求:centos 7.2(1511) django 1.9.8(兼容Django1.11) python 2.7

2、服務端安裝 
  生產服務器建議 4核CPU,8G內存以上,學習測試建議 2核CPU,2G內存以上,服務器操作系統版本要求 centos7.2及以上
2.1、下載代碼
  git clone https://github.com/guohongze/adminset.git
2.2、執行安裝腳本-自動
  adminset/install/server/auto_install.sh
  如果使用自動安裝則手動安裝跳過,如果手動安裝則跳過此步。
  訪問:http://your_server_ip
  使用用戶名admin 密碼Adminset123
2.3、執行安裝腳本-手動
  2.3.1 adminset/install/server/server_install.sh
  安裝過程需要輸入管理員數據庫等交互信息,如果安裝中斷再次執行server_install.sh即可.
  安裝過程中會生成rsa密鑰,位於/root/.ssh 目錄下,如果已經存在,忽略即可。
  2.3.2、手動安裝交互信息說明
  1)如果系統開啟了selinux會提示:Do you want to disabled selinux?[yes/no]
  選擇yes。(默認yes)
  2)YUM源選擇提示do you want to use an internet yum repository?[yes/no]
  沒有本地的yum源請選擇yes,如果有本地的YUM源(包括epel源)請選擇no。(默認值yes)
  3)數據庫選擇提示:do you want to create a new mysql database?[yes/no]
  本地沒有數據庫選擇yes自動下載安裝mariadb數據庫,如已經存在mysql或mariadb數據庫選擇no,然后填寫相關信息主機、端口、用戶名、密碼。(默認值yes)
  4)mongodb選擇提示:do you want to create a new Mongodb?[YES/no]
  本地沒有mongodb選擇yes自動下載安裝mongodb數據庫,如已經存在mongodb數據庫選擇no,然后填寫相關信息主機、端口、用戶名、密碼。(默認值yes)
  5)創建超管用戶提示,please create your adminset' super admin: 輸入超管用戶名、郵件、密碼。
  6)訪問:
  http://your_server_ip
  使用自己在安裝過程中創建的super admin用戶名密碼

3、客戶端安裝

3.1、說明:為保證注冊IP是管理IP(后續會被ansible等調用),客戶端的IP抓取目前使用主機名解析,否則報錯。 如:主機名為cn-bj-web01 請在/etc/hosts中加入相應的解析 192.168.x.x cn-bj-web01,這樣再執行adminset_agent.py 可以保證正常運行。

3.2、拷貝install/client/client_install.sh 到客戶機上並執行:
install/client/client_install.sh
3.3、拷貝install/client/adminset_agent.py 到客戶機上並執行:
python adminset_agent.py
4、訪問
http://your_server_ip
使用自己在安裝過程中創建的super admin用戶名密碼

 

---------------------數據庫優化(可選)------------------

默認情況下,mysql安裝好之后,會存在匿名用戶,也可以叫空用戶,輸入mysql之后直接回車便可進入mysql。

該匿名用戶具有一定的權限,通過SHOW DATABASES;可以查看到information_schema數據庫。

可以先查詢一下空用戶:

1、SELECT user,host,password FROM mysql.user;

2、建議刪除

delete from mysql.user where Host=’%’;

DELETE FROM mysql.user WHERE user=’’;

FLUSH PRIVILEGES;

——————華麗的分割線——————

MariaDB [(none)]> select version();

+————————+

| version() |

+————————+

| 5.5.52-MariaDB |

+————————+

1 row in set (0.18 sec)

刪除多余的賬號(除root和localhost的)

MariaDB [(none)]> use mysql

MariaDB [mysql]> select user,host from mysql.user;

+———+————————————+

| user | host |

+———+————————————+

| root | 127.0.0.1 |

| root | ::1 |

| | localhost |

| root | localhost |

| | lvs-dr01.saltstack.com |

| root | lvs-dr01.saltstack.com |

+———+————————————+

6 rows in set (0.03 sec)

MariaDB [mysql]> delete from mysql.user where (user,host) not in (select ‘root’,’localhost’);

Query OK, 5 rows affected (0.05 sec)

MariaDB [mysql]> select user,host from mysql.user;

+———+—————-+

| user | host |

+———+—————-+

| root | localhost |

+———+—————-+

1 row in set (0.05 sec)

修改默認的mysql管理賬號(root改為mysql,並設置新密碼為redhat12345)

MariaDB [mysql]> update user set user=”admin” where user=”root”;

MariaDB [mysql]> update mysql.user set user=’admin’,password=password(‘redhat12345’);

Query OK, 1 row affected (0.08 sec)

Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.03 sec)

[root@LVS-DR01 ~]# mysql -uadmin -p’redhat12345’

MariaDB [(none)]> user mysql;

MariaDB [mysql]> show tables;

刪除test數據庫:

MariaDB [mysql]> drop database test;

MariaDB [mysql]> flush privileges;

MariaDB [(none)]> show databases;

+——————————+

| Database |

+——————————+

| information_schema |

| mysql |

| performance_schema |

+——————————+

3 rows in set (0.06 sec)

優化權限字典表mysql.db

新建MySQL數據庫后,默認創建的test數據庫權限比較怪異,所有可連接的用戶都能夠擁有權限訪問該庫,並操作其中的對象,Host為%,User為空,說明了不受限制,所有能連接到MySQL的用戶,全部擁有test及test開頭的數據庫的幾乎所有權限。

MariaDB [mysql]> select from mysql.db where db like ‘test%’ \G

** 1. row *

Host: %

Db: test

User:

Selectpriv: Y

Insert_priv: Y

Update_priv: Y

Delete_priv: Y

Create_priv: Y

Drop_priv: Y

Grant_priv: N

References_priv: Y

Index_priv: Y

Alter_priv: Y

Create_tmp_table_priv: Y

Lock_tables_priv: Y

Create_view_priv: Y

Show_view_priv: Y

Create_routine_priv: Y

Alter_routine_priv: N

Execute_priv: N

Event_priv: Y

Trigger_priv: Y

* 2. row *

Host: %

Db: test\%

User:

Select_priv: Y

Insert_priv: Y

Update_priv: Y

Delete_priv: Y

Create_priv: Y

Drop_priv: Y

Grant_priv: N

References_priv: Y

Index_priv: Y

Alter_priv: Y

Create_tmp_table_priv: Y

Lock_tables_priv: Y

Create_view_priv: Y

Show_view_priv: Y

Create_routine_priv: Y

Alter_routine_priv: N

Execute_priv: N

Event_priv: Y

Trigger_priv: Y

2 rows in set (0.31 sec)

優化的操作:

MariaDB [mysql]> truncate table mysql.db;

Query OK, 0 rows affected (0.01 sec)

MariaDB [mysql]> select * from mysql.db where db like ‘test%’ \G

Empty set (0.00 sec)

優化/root/.mysql_history文件

[root@LVS-DR01 ~]# tail -20 ~/.mysql_history

flush privileges;

select user,host from mysql.user;

delete from mysql.user where user=”‘molewan1’@’10.10.10.%’”;

delete from mysql.db where user=’molewan1’@’10.10.10.%’;

select user,host from mysql.user;

delete from mysql.user where user=molewan1;

delete from mysql.user where user=’molewan1@10.10.10.%’;

flush privileges;

select user,host from mysql.user;

delete from mysql.user where user=”molewan1” and host =”10.10.10.%”;

flush privileges;

select user,host from mysql.user;

delete from mysql.user where user=”molewan” and host=”10.10.10.%”;

flush privileges;

create user molewan@’10.10.10.%’ identified by ‘molewan’;

select user,host from mysql.user;

desc mysql.user;

update mysql.user set password=password(‘admin’) where user=’admin’ and host=’localhost’;

flush privileges;

\q

在Linux/Unix系統下,使用mysql命令行工具執行的所有操作,都會被記錄到一個名為.mysql_history的文件中,該文件默認保存在當前用戶的根目錄下,這個設定原本是為了提升mysql命令行操作體驗,在mysql中操作命令就可以上下翻動了,但某些情況下缺會造成隱患。

方案:

方法1:基於DB層的操作

修改MYSQL_HISTFILE環境變量,將其值改為/dev/null,這樣所有的操作都會被輸出到空,操作的歷史

自然不會被保留。

方法2:基於系統層操作

仍舊保留這個文件,但是改文件實際上未/dev/null的軟鏈接,這樣所有的操作都會被輸出到空,操作的歷史自然不會被保留。

ln -f -s /dev/null ~/.mysql_history

[root@LVS-DR01 ~]# tail -20 ~/.mysql_history

這時候就沒有輸出了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM