jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 腳本中心 > linux shell > 詳細頁面

shell腳本實現公司項目部署交付環境預檢查的思路

時間:2020-10-11來源:www.farandoo.com作者:電腦系統城

大型項目環境預檢查腳本,根據自己實際情況修改腳本中變量,給大家一個思路,轉載請注明出處~

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#!/usr/bin/env bash
root=$(
  cd $(dirname $0)
  pwd
)
 
source "$root"/dragonrc
 
CPU=$(echo "`cat /proc/cpuinfo | grep "physical id" | uniq | wc -l`H")
MEM=$(echo "$((`cat /proc/meminfo | grep MemTotal |awk '{print $2}'` / 1000000))G")
TIME=$(date)
 
rpm -q ansible &> /dev/null
 
if [ $? -ne 0 ];then
    sh ${root}/scripts/install_ansible.sh &> /dev/null
fi
 
HINT(){
    read -p "請按回車繼續:"
}
 
COPY_KEY(){
    echo
    echo
sh ${root}/scripts/copy-key.sh
    echo
    echo
 
}
 
CK_UMASK(){
UMASK_NUM=$(ansible dragon -m shell -a "umask"|grep 0022|wc -l)
ALL_HOSTS=$(echo "${ALL_NODES}"|awk -F"," '{for(i=1;i<=NF;i++) print $i}'|wc -l)
    echo
    echo -e "\033[5;32;31m正在為您檢測umask值,請耐心等待。。。\033[0m"
    echo
    if [ ${UMASK_NUM} -ne ${ALL_HOSTS} ];then
        echo -e "\033[1;32;31m檢測到節點umask值非022,將為您執行修改操作!\033[0m"
        sleep 3
            ansible dragon -m shell -a "sed -i 's/^.*umask.*/umask 022/g' /etc/profile"
            ansible dragon -m shell -a "source /etc/profile"
            ansible dragon -m shell -a "sed -i 's/^.*umask.*/umask 022/g' /etc/bashrc"
            ansible dragon -m shell -a "source /etc/bashrc"
        echo -e "\033[1;32;31m-------------------------------以下為各節點umask值-------------------------------\033[0m"
            ansible dragon -m shell -a "umask"
        echo -e "\033[1;32;31m提示:如果以上返回結果非0022,那就是自動設置失敗,請手動調整umask值!\033[0m"
    else
clear
        echo -e "\033[1;32;31m所有節點umask值全部為022\033[0m"
echo
    fi
}
CK_NETWORK_NAME(){
    echo
    echo -e "\033[1;32;31m-------------------------------檢測所有節點主機網卡名-------------------------------\033[0m"
    IFS=',' read -r -a nodes <<<"${ALL_NODES}"
    for p in "${nodes[@]}"; do
    echo
    ssh -q -o 'StrictHostKeyChecking no' -o 'UserKnownHostsFile /dev/null' -T $p ip addr |grep $p | awk '{print $2,$7}'
    echo
    done
    echo -e "\033[1;32;35m提示:請您把網卡名復制到dragonrc配置~\033[0m"
    echo -e "\033[1;32;31m-------------------------------以上為所有節點主機網卡名-------------------------------\033[0m"
    echo
}
CK_HOST_NAME(){
    echo
    echo -e "\033[1;32;31m-------------------------------檢測所有節點主機名-------------------------------\033[0m"
    ansible dragon -m shell -a "hostname"
            echo -e "\033[1;32;31m提示:檢查主機名,不能是出現大寫或特殊符號~\033[0m"
    echo -e "\033[1;32;31m-------------------------------以上為所有節點主機名-------------------------------\033[0m"
    echo
}
CK_HOSTS(){
    echo
    echo -e "\033[1;32;31m-------------------------------檢測所有節點Hosts配置-------------------------------\033[0m"
    sh ${root}/scripts/hostname.sh
    echo -e "\033[1;32;31m-------------------------------以上為所有節點Hosts配置-------------------------------\033[0m"
    echo
}
CK_TIME(){
    echo
    echo -e "\033[1;32;31m----------------------------------檢測所有節點時間----------------------------------\033[0m"
    ansible dragon -m shell -a "date"
    echo -e "\033[1;32;35m提示:誤差為1~2秒為正常情況,如差距太大則需要做ntpd時間同步~\033[0m"
    echo -e "\033[1;32;31m----------------------------------以上為所有節點時間----------------------------------\033[0m"
    echo
}
CK_DISK(){
    echo
    echo -e "\033[1;32;31m----------------------------------檢測所有節點磁盤掛載----------------------------------\033[0m"
    ansible dragon -m shell -a "df -h"
    echo -e "\033[1;32;31m----------------------------------以上為所有節點磁盤掛載----------------------------------\033[0m"
    echo
}
CK_SYSTEM(){
    echo
    echo -e "\033[1;32;31m----------------------------------檢測所有節點系統版本信息----------------------------------\033[0m"
    ansible dragon -m shell -a "cat /etc/redhat-release"
    echo -e "\033[1;32;31m----------------------------------以上為所有節點系統版本信息----------------------------------\033[0m"
    echo
}
CK_FIREWALLD(){
    echo
    echo -e "\033[1;32;31m----------------------------------檢測所有節點防火墻是否關閉----------------------------------\033[0m"
    ansible dragon -m shell -a "firewall-cmd --state"
    echo -e "\033[1;32;35m提示:如果發現防火墻狀態為Running,不用擔心,all_sh.sh環境初始化配置已經配好永久關閉哦~\033[0m"
    echo -e "\033[1;32;31m----------------------------------以上為所有節點防火墻狀態信息----------------------------------\033[0m"
    echo
}
CK_SELINUX(){
    echo
    echo -e "\033[1;32;31m----------------------------------檢測所有節點SELINUX是否關閉----------------------------------\033[0m"
    ansible dragon -m shell -a "sestatus"
    echo -e "\033[1;32;35m提示:如果發現狀態為enabled,不用擔心,all_sh.sh環境初始化配置已經配好永久關閉哦~\033[0m"
    echo -e "\033[1;32;31m----------------------------------以上為所有節點SELINUX狀態信息----------------------------------\033[0m"
    echo
}
while true
do
    clear
    echo "-------------------------------------------------------"
    echo "|                           |"
    echo "|       XXXXXXXXXXX部署預檢查環境        |"
    echo "|                           |"
    echo "-------------------------------------------------------"
    echo "   ***** 檢測到您的機器配置為:${CPU} ${MEM}  ***** "
    echo "-------------------------------------------------------"
    echo "|        1. 一鍵SSH免密互信          |"
    echo "|        2. 檢查各節點主機umask        |"
    echo "|        3. 檢查各節點網卡名          |"
    echo "|        4. 檢查各節點主機名          |"
    echo "|        5. 檢查各節點hosts配置        |"
    echo "|        6. 檢查各節點主機時間         |"
    echo "|        7. 檢查各節點主機磁盤掛載       |"
    echo "|        8. 檢查各節點主機系統版本       |"
    echo "|        9. 檢查各節點防火墻是否關閉      |"
    echo "|       10. 檢查各節點SELINUX是否關閉     |"
    echo "-------------------------------------------------------"
    echo
    echo "  // 當前時間:${TIME} //"
    echo
    read -p "請您選擇[1-10/q退出]選項:" THING
case $THING in
       1)
       COPY_KEY
       HINT
       ;;
       2)
       CK_UMASK
       HINT
       ;;
       3)
       CK_NETWORK_NAME
       HINT
       ;;
       4)
       CK_HOST_NAME
       HINT
       ;;
       5)
       CK_HOSTS
       HINT
       ;;
       6)
       CK_TIME
       HINT
       ;;
       7)
       CK_DISK
       HINT
       ;;
       8)
       CK_SYSTEM
       HINT
       ;;
       9)
       CK_FIREWALLD
       HINT
       ;;
       10)
       CK_SELINUX
       HINT
       ;;
       q)
       exit
       ;;
       *)
       read -p "請您選擇[1-10/q退出],輸入回車繼續:"
       ;;
       esac
done

到此這篇關于shell腳本實現公司項目部署交付環境預檢查的思路的文章就介紹到這了,更多相關shell腳本部署交付環境內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載