學習篇——初始化

新工作入職三個月,公司希望我能夠兼職運維,於是我走向了開發運維的不歸路,雖然不知道會走多遠。
閒時在家,自然需要好好學習一下了。用CentOS + Ansible搭個小環境試試。

1、下載最新CentOS 7的ISO文件
既然是在家學習,那就選擇最新的系統安裝,沒毛病。
2、安裝CentOS 7,基本是一路回車。參考:CentOS7安裝詳解
在“DATE & TIME”中,選擇到“Asia - ShangHai”; 在“INSTALLATION DESTINATION”中選擇安裝磁盤; 下一步安裝時稍微設置下root密碼,當然太短是不能通過的。
3、設置固定IP,參考:虛擬機中的CentOS 7設置固定IP連接最理想的配置
網絡連接選用了自定義的NAT模式,大概是VMnet8,設置自己的IP段。這篇寫得比較簡潔:CentOS7 設置局域網固定IP
進入網絡配置文件夾修改網絡信息,然後重啓network服務
~: cd /etc/sysconfig/network-scripts/ 
~: vi ifcfg-xx 
BOOTPROTO=static
#或設置爲none
#BOOTPROTO=none
IPADDR=192.168.159.253
NETMASK=255.255.252.0
GATEWAY=192.168.159.2
ONBOOT=yes

#重啓網絡服務
~: systemctl restart network.service
#如果失敗可以關閉防火牆後重試
~: systemctl stop firewalld.service
#啓停網卡,ssh下可別用。。
~: ifdown xx
~: ifup xx
#ping一下
~: ping www.csdn.net
4、強迫症修改網卡名稱爲eth0,和第3步同時做的。參考:Centos7更改網卡名稱Eth0
~: cd /etc/sysconfig/network-scripts/
#修改文件名
~: mv ifcfg-xx ifcfg-eth0`
#編輯文件
vi ifcfg-eth0
#把NAME和DEVICE都設置爲eth0,
NAME=eth0
DEVICE=eth0
:wq

~: vi /etc/sysconfig/grub
#在`GRUB_CMDLINE_LINUX`中加上`net.ifnames=0 biosdevname=0`
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap net.ifnames=0 biosdevname=0 rhgb quiet"
#然後執行命令
~: grub2-mkconfig -o /boot/grub2/grub.cfg
~: reboot
5、關閉防火牆?
既然都學習用了,關了幹嘛。暫時也先不考慮iptables。留個命令
systemctl stop firewalld.service
systemctl disable firewalld.service
6、加一個默認用戶
useradd -g wheel devops
7、保存快照,關閉並克隆爲堡壘機Master和其它幾個
設置Master的IP爲192.168.159.100,其它從192.168.159.101~192.168.159.252再說了。暫定102爲數據庫
進入Master
bash: ssh root@192.168.159.100
#安裝Ansbile
~: yum install ansible -y
#創建Ansible相關文件目錄
~: mkdir -p ~/ansible/{auth_keys,inventory,playboos,sofeware}
#安裝vim
~: yum install vim -y
#做下配置
~: vim ~/.vimrc
set autoindent #自動縮進
set tabstop=2 #縮進2個空格,方便寫yaml
set expandtab #tab換成空格
set nu #顯示行號
:wq

#沒錯要踏上Python不歸路了,CentOS自帶Python2.x不管它。
#配置節點們,
~: vim /etc/ansible/hosts
##Web服務
[web]
192.168.159.101
##數據庫
[db]
192.168.159.102
:wq
8、安裝MySQL
下載mysql-5.7.21-Linux 並上傳到數據庫系統中
參考:官方安裝文檔
my.cnf配置,具體可參考MySQL 5.7 安裝完成後,立即要調整的性能選項MySQL 5.6 my.cnf配置優化
bash: scp /d/mysql.tar.gz root:192.168.159.100:~/software/mysql.tar.gz
#解壓並重命名到/usr/local/中
~: cd ~/software
~: tar zxvf mysql.tar.gz
~: mv mysql /usr/local/mysql
~: cd /usr/local/mysql
#創建mysql用戶和組,更改/usr/local/mysql目錄屬組
~: groupadd mysql
~: useradd -r -g mysql -s /bin/false mysql
~: chown -R mysql:mysql ./
#創建data文件和日誌、mysql.sock目錄。data目錄會自動創建,但是log、tmp必須要先創建好,否則無法啓動
#以下涉及到的/data/mysql/*目錄和log/mysql-err.log文件均在my.cnf中配置
~: mkdir -p /data/mysql/{log,tmp}
~: chown -R mysql:mysql /data/mysql
#創建好mysql-err.log文件
~: echo "" > /data/mysql/log/mysql-err.log
~: chown -R mysql:mysql /usr/local/mysql/mysqld.log
#初始化MySQL
#不加--explicit_defaults_for_timestamp=true會甩出一條
#[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
~: bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data/ --basedir=/usr/local/mysql --explicit_defaults_for_timestamp=true
#初始化完成後會打印一條Note,上面有初始密碼jlVQNy!c(7fv
#[Note] A temporary password is generated for root@localhost: jlVQNy!c(7fv

~: chown -R root:root ./
#設置啓動文件
~: cp support-files/mysql.server /etc/init.d/mysql
~: chmod +x /etc/init.d/mysql
~: chkconfig --add mysql
#查看
~: chkconfig --list
#複製配置好的my.cnf到/etc中
~: cp my.cnf /etc/my.cnf
~: vim my.cnf
[mysqld]
datadir=/data/mysql/data
socket=/data/mysql/tmp/mysql.sock
symbolic-links=0
server-id=1
skip_name_resolve=1
max_connections=1000
max_allowed_packet=16M
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
interactive_timeout=60
wait_timeout=60
slow_query_log=1
slow_query_log_file=/data/mysql/log/mysql-slow.log
log_queries_not_using_indexes=1
log_slow_admin_statements=1
log_slow_slave_statements=1
expire_logs_days=90
long_query_time=1
min_examined_row_limit=200
explicit_defaults_for_timestamp=true



[mysqld_safe]
open-files-limit=10240
log-error=/data/mysql/log/mysql-err.log
pid-file=/data/mysql/mariadb.pid

!includedir /etc/my.cnf.d
:q

#軟連接用於mysql命令和連接到mysql
~: ln -s /usr/local/mysql/bin/mysql /usr/local/bin/
~: ln -s /data/mysql/tmp/mysql.sock /tmp/mysql.sock

#使用剛纔的密碼jlVQNy!c(7fv,進入mysql修改root密碼,並授權外部可訪問。
~: mysql -uroot -p
mysql: alter user user() identified by "123";
mysql: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
mysql: exit
#由於使用了firewall防火牆,需要開放端口
~: firewall-cmd --zone=public --add-port=3306/tcp --permanent
~: firewall-cmd --reload

當然有更簡單的一步到胃

~: yum install mysql -y

畢竟以後要做升級什麼的,版本也不可能天天換。總是要了解下怎麼手動安裝。安裝完成後,這臺數據庫先做快照,還有配置的要慢慢調的。另外做好MySQL的copy方案,也便於數據庫服務器的快速增加。
待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章