技术流ken

运维拯救世界

DAY9:河北科技大学课堂记录–ansible自动化,mariadb数据库,zabbix监控

ansible自动化

ansible安装  #需要配置网络源

[root@ken yum.repos.d]# yum install ansible -y

 

ansible使用格式

 

ansible 主机 -m 模块 -a “parameters”

 

ansible常用模块

 

command 执行命令

yum 管理rpm包

service 管理服务程序

shell 万能模块

copy 复制文件

 

ansible使用

第一步:把需要管理的节点IP写进/etc/ansible/hosts

[ken]
192.168.64.5
192.168.64.7

第二步:往需要管理的节点发送秘钥

[root@ken ~]# ssh-keygen

[root@ken ~]# ssh-copy-id 192.168.64.5

 

第三步:使用ansible

指定节点有三种方法

方法一:

[root@ken ~]# ansible ken -a “ip a”

 

方法二:

[root@ken ~]# ansible all -a “ip a”

 

方法三:

[root@ken ~]# ansible 192.168.64.5 -a “ip a”

 

 

例子1:默认使用command模块去挂载光盘

[root@ken ~]# ansible all -a “mount /dev/cdrom /mnt”

 

例子2:yum模块使用详解

[root@ken ~]# ansible all -m yum -a “name=unzip state=present”

 

all 指定管理的主机,all表示hosts文件里面定义的所有的主机

-m 指定模块名

yum  模块名

-a 指定模块的参数

 

例子3:service模块

[root@ken ~]# ansible all -m service -a “name=httpd state=restarted”

 

 

例子4:shell万能模块

[root@ken ~]# ansible all -m shell -a “ss -tnl | grep 80”
192.168.64.7 | CHANGED | rc=0 >>
LISTEN 0 128 :::80 :::*

192.168.64.5 | CHANGED | rc=0 >>
LISTEN 0 128 *:80 *:*

 

例子5:copy模块

[root@ken ~]# ansible all -m copy -a “src=/root/test2 dest=/root”

 

ansible剧本playbook

 

例子1:使用ansible剧本安装部署apache

第一步:编写剧本

[root@ken ~]# cat test.yml
– hosts: all
tasks:
– yum: name=httpd state=present
– service: name=httpd state=restarted
– copy: src=/root/index.html dest=/var/www/html

 

 

第二步:准备网页默认文件

[root@ken ~]# echo “test for ansible” > index.html

 

第三步:模拟执行剧本

[root@ken ~]# ansible-playbook -C test.yml

 

第四步:执行剧本

[root@ken ~]# ansible-playbook test.yml

 

第五步:浏览器访问

 

 

数据库

mariadb –mysql

增删改查

 

数据库下载

[root@ken ~]# yum install mariadb-server -y

 

启动数据库

[root@ken ~]# systemctl restart mariadb

默认监听的端口3306

 

常用选项:

-u 指定登录用户名
-P 端口

-p  指定密码

-h 主机IP

 

例子1:修改数据库密码

[root@ken ~]# mysqladmin -uroot password 123

 

例子2:创建数据库

MariaDB [(none)]> create database ken;

 

例子3:查看数据库

MariaDB [(none)]> show databases;

 

例子4:切换数据库

MariaDB [(none)]> use ken;

 

例子5:创建表

MariaDB [ken]> create table test (id int,name char(20),gender char(20));

 

例子6:往表里面写数据

方法一

MariaDB [ken]> insert into test (id,name,gender) values (1,”zhangsan”,”male”);

 

方法二:

MariaDB [ken]> insert into test values (2,”wangsi”,”female”);

 

例子7:查看表里面的数据

MariaDB [ken]> select * from test;
+——+———-+——–+
| id | name | gender |
+——+———-+——–+
| 1 | zhangsan | male |
| 2 | wangsi | female |
+——+———-+——–+

 

例子8:只查看name和id

MariaDB [ken]> select id,name from test;
+——+———-+
| id | name |
+——+———-+
| 1 | zhangsan |
| 2 | wangsi |
+——+———-+

 

例子9:删除数据库

MariaDB [ken]> drop database ken1;

 

例子10.修改表数据

MariaDB [ken]> update test set gender=”female” where id=1;

 

例子11.查看数据库中有哪些表

MariaDB [ken]> use ken;
Database changed
MariaDB [ken]> show tables;
+—————+
| Tables_in_ken |
+—————+
| test |
+—————+
1 row in set (0.00 sec)

 

例子12. 删除表中的一行数据

MariaDB [ken]> delete from test where id=2;

 

例子13. 授权用户

MariaDB [ken]> grant all on *.* to ken@’localhost’ identified by ‘123’;

在所有的数据库及表中授权所有的权限给ken用户,并且设置ken用户密码为123,localhost表示ken用户只能从本机登录!

MariaDB [(none)]> grant all on *.* to ken@’%’ identified by ‘123’;

 

% 表示可以从任意主机登录,但是不包括当前服务器

 

 

数据库主从配置

 

原理:

从库生成两个线程,一个I/O线程,一个SQL线程;

i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;
主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;

SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;

 

 

主从同步配置详解

 

 

第一步:复制配置文件

[root@ken ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

 

第二步:修改配置文件

[root@ken ~]# vim /etc/my.cnf

log-bin=mysql-bin

server-id = 1

 

第三步:启动数据库,主节点和备用节点都需要启动数据库

[root@ken ~]# systemctl restart mariadb

 

第四步:直接发送主节点的配置文件至备用节点

[root@ken ~]# scp /etc/my.cnf 192.168.64.5:/etc

 

第五步:修改备用节点的server-id

server-id = 2

 

第六步:重启备用节点数据库

[root@ken ~]# systemctl restart mariadb

 

第七步:备用节点配置主从

MariaDB [(none)]> change master to master_host=’192.168.64.4′,master_user=’ken’,master_password=’123′;

 

第八步:启动从节点

MariaDB [(none)]> slave start;

 

第九步:查看slave状态

MariaDB [(none)]> show slave status\G

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

如果是yes表示成功

 

验证:

主节点创建数据库或者表,会立即同步到从节点!

 

zabbix

 

zabbix部署

 

第一步:下载zabbix源

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

 

第二步:直接下载相关软件

[root@ken yum.repos.d]# yum install zabbix-server-mysql zabbix-web-mysql -y

 

第三步:修改时区

[root@ken ~]# vim /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai

 

第四步:创建数据库

MariaDB [(none)]> create database zabbix;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on *.* to zabbix@’localhost’ identified by ‘123’;

 

第五步:导入数据模板

[root@ken ~]# cp /usr/share/doc/zabbix-server-mysql-3.4.15/create.sql.gz .
[root@ken ~]# ls
create.sql.gz

[root@ken ~]# gunzip create.sql.gz

 

MariaDB [zabbix]> use zabbix;

MariaDB [zabbix]> source /root/create.sql

 

第六步:配置zabbix-server

DBPassword=123

 

第七步:启动zabbix-server

[root@ken ~]# systemctl restart zabbix-server httpd  #需要启动httpd

 

第八步:浏览器访问

ip/zabbix

 

账户:admin

密码:zabbix

 

 

第八步:下载zabbix-agent监控服务器端

[root@ken ~]# yum install zabbix-agent -y

 

第九步:启动zabbix-agent

[root@ken ~]# systemctl restart zabbix-agent

 

监控其他主机

 

第一步:发送源到其他主机

[root@ken yum.repos.d]# scp -r ./* 192.168.64.5:/etc/yum.repos.d/

 

第二步:下载客户端程序包

[root@ken ~]# yum install zabbix-agent -y

 

第三步:修改配置文件

[root@ken ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.64.4

 

第四步:重启客户端

[root@ken ~]# systemctl restart zabbix-agent

 

第五步:服务器端添加主机

自动注册配置:

[root@ken ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.64.4

ServerActive=192.168.64.4

#Hostname=Zabbix server

HostnameItem=system.hostname

 

[root@ken ~]# systemctl restart zabbix-agent

 

 

 

 

发表评论

电子邮件地址不会被公开。