ansible自動化運維資料庫
透過ansible簡單對資料庫主機檢查和資料庫表空間的檢查,前提資料庫主機有統一的使用者名稱和密碼.
運維環境: rhel 7.2, ansible 1.9
資料庫環境:Oracle 11.2.0.4, Suse 11sp4,統一使用者是Oracle和usercs
ansible配置檔案/etc/ansible/ansible.cfg,否則在執行ansible時需要制定host位置
--配置host組
[root@DBAMONITOR usercs]# more /ansible/hosts
[Suse]
192.168.15.21
192.168.15.22
192.168.15.46
192.168.15.47
--簡單測試
[root@DBAMONITOR .ssh]# ansible Suse -m ping -u usercs -k
SSH password:
192.168.15.22 | success >> {
"changed": false,
"ping": "pong"
}
192.168.15.46 | success >> {
"changed": false,
"ping": "pong"
}
192.168.15.47 | success >> {
"changed": false,
"ping": "pong"
}
192.168.15.21 | success >> {
"changed": false,
"ping": "pong"
}
--檢視空間
[root@DBAMONITOR .ssh]# ansible Suse -m command -a "df -hT" -u usercs -k
password:
[root@DBAMONITOR .ssh]# ansible Suse -m command -a "ls -l /tmp" -u usercs -k
password:
--複製檔案:
[root@DBAMONITOR .ssh]# ansible Suse -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg" -u usercs -k
password:
{"src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=usercs group=usercs mode=0644" }
--遠端執行指令碼
ansible Suse -m shell -a "/tmp/rocketzhang_test.sh"
password:
--遠端建立目錄
ansible Suse -m command -a "mkdir /home/oracle/scripts" -u oracle -k
password:
--配置指令碼
source ~/.profile
sqlplus -S "/as sysdba"<<EOF
set lin 200 pages 100
select current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv\$database;
set pagesize 9999
set linesize 132
select
a.tablespace_name,
a.Total_mb,
f.Free_mb,
round(a.total_MB-f.free_mb,2) Used_mb,
round((f.free_MB/a.total_MB)*100) "%_Free"
from
(select tablespace_name, sum(bytes/(1024*1024)) total_MB from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) free_MB from dba_free_space group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name(+)
order by "%_Free"
/
exit
EOF
--複製檔案
ansible Suse -m copy -a "src=/ansible/check_db.sh dest=/home/oracle/scripts" -u oracle -k
password:
--執行指令碼
ansible Suse -m command -a "chmod +x /home/oracle/scripts/check_db.sh" -u oracle -k
password:
ansible Suse -m shell -a "/home/oracle/scripts/check_db.sh" -u oracle -k
password:
運維環境: rhel 7.2, ansible 1.9
資料庫環境:Oracle 11.2.0.4, Suse 11sp4,統一使用者是Oracle和usercs
ansible配置檔案/etc/ansible/ansible.cfg,否則在執行ansible時需要制定host位置
--配置host組
[root@DBAMONITOR usercs]# more /ansible/hosts
[Suse]
192.168.15.21
192.168.15.22
192.168.15.46
192.168.15.47
--簡單測試
[root@DBAMONITOR .ssh]# ansible Suse -m ping -u usercs -k
SSH password:
192.168.15.22 | success >> {
"changed": false,
"ping": "pong"
}
192.168.15.46 | success >> {
"changed": false,
"ping": "pong"
}
192.168.15.47 | success >> {
"changed": false,
"ping": "pong"
}
192.168.15.21 | success >> {
"changed": false,
"ping": "pong"
}
--檢視空間
[root@DBAMONITOR .ssh]# ansible Suse -m command -a "df -hT" -u usercs -k
password:
[root@DBAMONITOR .ssh]# ansible Suse -m command -a "ls -l /tmp" -u usercs -k
password:
--複製檔案:
[root@DBAMONITOR .ssh]# ansible Suse -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg" -u usercs -k
password:
{"src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=usercs group=usercs mode=0644" }
--遠端執行指令碼
ansible Suse -m shell -a "/tmp/rocketzhang_test.sh"
password:
--遠端建立目錄
ansible Suse -m command -a "mkdir /home/oracle/scripts" -u oracle -k
password:
--配置指令碼
source ~/.profile
sqlplus -S "/as sysdba"<<EOF
set lin 200 pages 100
select current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv\$database;
set pagesize 9999
set linesize 132
select
a.tablespace_name,
a.Total_mb,
f.Free_mb,
round(a.total_MB-f.free_mb,2) Used_mb,
round((f.free_MB/a.total_MB)*100) "%_Free"
from
(select tablespace_name, sum(bytes/(1024*1024)) total_MB from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) free_MB from dba_free_space group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name(+)
order by "%_Free"
/
exit
EOF
--複製檔案
ansible Suse -m copy -a "src=/ansible/check_db.sh dest=/home/oracle/scripts" -u oracle -k
password:
--執行指令碼
ansible Suse -m command -a "chmod +x /home/oracle/scripts/check_db.sh" -u oracle -k
password:
ansible Suse -m shell -a "/home/oracle/scripts/check_db.sh" -u oracle -k
password:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24585765/viewspace-2152097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自動化運維 Ansible運維
- Ansible自動化運維工具運維
- ansible自動化運維入門運維
- 自動化運維工具Ansible介紹運維
- 自動化運維工具ansible的實踐運維
- 自動化運維工具——ansible詳解(一)運維
- 自動化運維工具——ansible詳解(二)運維
- 自動化運維工具Ansible詳細部署運維
- Python+Django+Ansible Playbook自動化運維PythonDjango運維
- 自動化運維利器Ansible要點彙總運維
- [Linux]Ansible自動化運維② - 工具與模組Linux運維
- [Linux]Ansible自動化運維① - 入門知識Linux運維
- Ansible 運維自動化 ( 配置管理工具 )運維
- 【DB】有贊資料庫自動化運維實踐之路資料庫運維
- ansible自動化運維詳細教程及playbook詳解運維
- IT運維之自動化運維運維
- 運維效率之資料遷移自動化運維
- Python+Django+ansible playbook自動化運維專案實戰PythonDjango運維
- 自動化運維 Expect運維
- 用自動化運維工具解放IT運維運維
- 陝重汽:大規模資料庫如何實現自動化運維?資料庫運維
- 運維自動化工具Ansible的簡單介紹運維
- 半自動化運維之動態新增資料檔案(一)運維
- 半自動化運維之動態新增資料檔案(二)運維
- 乾貨滿滿 | 美團資料庫運維自動化系統構建之路資料庫運維
- 如何落地資料庫智慧化運維?資料庫運維
- Devops-運維效率之資料遷移自動化dev運維
- 運維必會:基於 Ansible 的 Docker 自動化部署,小白也能看懂?運維Docker
- mysql-inception自動化運維MySql運維
- 簡化IT運維工作,就要學會使用自動化運維工具!運維
- 使用ansible-playbook自動化安裝Oracle DG資料庫19cOracle資料庫
- 簡單介紹python自動化運維常用庫Python運維
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- 自動化運維工具之Puppet常用資源(一)運維
- 自動化運維工具之Puppet常用資源(二)運維
- 自動化運維工具之Puppet模組運維
- 自動化運維的快速演進運維
- 自動化運維的發展方向運維