Mysql数据库(四)和运维自动化

1、主从复制及主主复制的实现

一:主从复制
1:主节点修改主机名
[20:20:17 root@CentOS8 ~]\ [#hostnamectl set-hostname master
2:主节点安装mysql
[20:20:59 root@master ~]\ [#yum -y install mariadb-server
3:设置全局ID,启用二进制log和启动服务
[20:25:37 root@master ~]\ [#cat /etc/my.cnf.d/mariadb-server.cnf
...
mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
server-id=8
log-bin
...
[20:25:52 root@master ~]\ [#systemctl start mariadb
4:查看二进制文件和位置
[20:28:22 root@master ~]\ [#mysql
MariaDB [(none)]> show master logs;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.000001 |     28220 |
| mariadb-bin.000002 |       344 |
+--------------------+-----------+
2 rows in set (0.000 sec)
5:创建复制用户和设置权限
ariaDB [(none)]> grant replication slave on *.* to repluser@'10.0.0.%' identified by 'magedu';
Query OK, 0 rows affected (0.000 sec)
6:从节点修改主机名
[20:20:17 root@CentOS8 ~]\ [#hostnamectl set-hostname slave
7:从节点安装mysql
[20:31:01 root@slave ~]\ [#yum -y install mariadb-server
8:设置全局ID
[20:31:52 root@slave ~]\ [#cat /etc/my.cnf.d/mariadb-server.cnf
...
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
server-id=18
...
9:从节点启动服务
[20:31:57 root@slave ~]\ [#systemctl start mariadb
10:使用有复制权限的用户账号连接主服务器,并启动复制线程
[20:32:21 root@slave ~]\ [#mysql
MariaDB [(none)]> help change master to
MariaDB [(none)]> CHANGE MASTER TO
    ->   MASTER_HOST='10.0.0.8',
    ->   MASTER_USER='repluser',
    ->   MASTER_PASSWORD='magedu',
    ->   MASTER_PORT=3306,
    ->   MASTER_LOG_FILE='mariadb-bin.000002',
    ->   MASTER_LOG_POS=344;
Query OK, 0 rows affected (0.005 sec)
11:启动从节点
MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)
12:查看主从状态
MariaDB [(none)]> show slave status \G
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                   Master_Host: 10.0.0.8
                   Master_User: repluser
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mariadb-bin.000002
           Read_Master_Log_Pos: 541
                Relay_Log_File: mariadb-relay-bin.000002
                 Relay_Log_Pos: 754
         Relay_Master_Log_File: mariadb-bin.000002
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
               Replicate_Do_DB: 
           Replicate_Ignore_DB: 
            Replicate_Do_Table: 
        Replicate_Ignore_Table: 
       Replicate_Wild_Do_Table: 
   Replicate_Wild_Ignore_Table: 
                    Last_Errno: 0
                    Last_Error: 
                  Skip_Counter: 0
           Exec_Master_Log_Pos: 541
               Relay_Log_Space: 1065
               Until_Condition: None
                Until_Log_File: 
                 Until_Log_Pos: 0
            Master_SSL_Allowed: No
            Master_SSL_CA_File: 
            Master_SSL_CA_Path: 
               Master_SSL_Cert: 
             Master_SSL_Cipher: 
                Master_SSL_Key: 
         Seconds_Behind_Master: 0
 Master_SSL_Verify_Server_Cert: No
                 Last_IO_Errno: 0
                 Last_IO_Error: 
                Last_SQL_Errno: 0
                Last_SQL_Error: 
   Replicate_Ignore_Server_Ids: 
              Master_Server_Id: 8
                Master_SSL_Crl: 
            Master_SSL_Crlpath: 
                    Using_Gtid: No
                   Gtid_IO_Pos: 
       Replicate_Do_Domain_Ids: 
   Replicate_Ignore_Domain_Ids: 
                 Parallel_Mode: conservative
                     SQL_Delay: 0
           SQL_Remaining_Delay: NULL
       Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
              Slave_DDL_Groups: 1
Slave_Non_Transactional_Groups: 0
    Slave_Transactional_Groups: 0
1 row in set (0.000 sec)

二:主主复制
1:第一个主节点修改主机名和安装mysql
[20:42:32 root@CentOS8 ~]\ [#hostnamectl set-hostname master1
[21:03:32 root@master1 ~]\ [#yum -y install mariadb-server
2:第一个主节点修改配置文件,配置全局ID,启用二进制log和设置自动增长,启动服务
[21:05:38 root@master1 ~]\ [#cat /etc/my.cnf.d/mariadb-server.cnf
...
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
server-id=8
log-bin
auto_increment_offset=1
auto_increment_increment=2
...
[21:05:43 root@master1 ~]\ [#systemctl start mariadb
3:在第一个主节点查看二进制文件和位置,创建复制用户和设置权限
[21:06:40 root@master1 ~]\ [#mysql
MariaDB [(none)]> show master logs;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.000001 |     28430 |
| mariadb-bin.000002 |       344 |
+--------------------+-----------+
2 rows in set (0.000 sec)

MariaDB [(none)]> grant replication slave on *.* to repluser@'10.0.0.%' identified by 'magedu';
Query OK, 0 rows affected (0.000 sec)
4:第二个主节点修改主机名和安装mysql
[20:42:31 root@CentOS8 ~]\ [#hostnamectl set-hostname master2
[21:02:35 root@master2 ~]\ [#yum -y install mariadb-server
5:第二个主节点修改配置文件,配置全局ID,启用二进制log和设置自动增长,启动服务
[21:10:06 root@master2 ~]\ [#cat /etc/my.cnf.d/mariadb-server.cnf 
...
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
server-id=18
log-bin
auto_increment_offset=2
auto_increment_increment=2
...
[21:10:11 root@master2 ~]\ [#systemctl start mariadb
6:在第二个主节点使用有复制权限的用户账号连接主服务器,并启动复制线程,启动复制节点
MariaDB [(none)]> CHANGE MASTER TO
    ->   MASTER_HOST='10.0.0.8',
    ->   MASTER_USER='repluser',
    ->   MASTER_PASSWORD='magedu',
    ->   MASTER_PORT=3306,
    ->   MASTER_LOG_FILE='mariadb-bin.000002',
    ->   MASTER_LOG_POS=344;
Query OK, 0 rows affected (0.006 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)
7:查看第二个主节点二进制位置
MariaDB [(none)]> show master logs;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.000001 |     28430 |
| mariadb-bin.000002 |       344 |
+--------------------+-----------+
2 rows in set (0.000 sec)
8:在第一个主节点是实现并启动复制节点
MariaDB [(none)]> CHANGE MASTER TO
    ->   MASTER_HOST='10.0.0.18',
    ->   MASTER_USER='repluser',
    ->   MASTER_PASSWORD='magedu',
    ->   MASTER_PORT=3306,
    ->   MASTER_LOG_FILE='mariadb-bin.000002',
    ->   MASTER_LOG_POS=344;
Query OK, 0 rows affected (0.005 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)
9:第一个主节点创建数据库并创建表格和添加数据
MariaDB [(none)]> create database db1;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> use db1;
Database changed
MariaDB [db1]> create table t1(id int auto_increment primary key ,name char(10));
Query OK, 0 rows affected (0.004 sec)
MariaDB [db1]> insert t1(name) value('zhangsan');
Query OK, 1 row affected (0.001 sec)
MariaDB [db1]> select * from t1;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
+----+----------+
1 row in set (0.000 sec)
10:第二个主节点查看数据
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)
MariaDB [(none)]> use db1;
Database changed
MariaDB [db1]> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1            |
+---------------+
1 row in set (0.000 sec)

MariaDB [db1]> select * from t1;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
+----+----------+
1 row in set (0.000 sec)
11:同理第二个主节点添加数据
MariaDB [db1]> insert t1(name) value('lisi');
Query OK, 1 row affected (0.001 sec)

MariaDB [db1]> select * from t1;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
+----+----------+
2 rows in set (0.000 sec)
12:第一个主节点查看数据
MariaDB [db1]> select * from t1;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
+----+----------+
2 rows in set (0.000 sec)

2、xtrabackup实现全量+增量+binlog恢复库

1:安装mysql和xtrabackup
[16:10:30 root@CentOS8 ~]\ [#yum -y install mysql-server
[16:18:22 root@CentOS8 ~]\ [#yum -y install percona-xtrabackup-80-8.0.25-17.1.el8.x86_64.rpm
2:完全备份到/backup
[16:18:38 root@CentOS8 ~]\ [#mkdir /backup
[16:19:03 root@CentOS8 ~]\ [#xtrabackup -uroot --backup --target-dir=/backup/base
[16:19:42 root@CentOS8 ~]\ [#ll /backup/base/
total 60468
-rw-r----- 1 root root      475 Sep 27 16:19 backup-my.cnf
-rw-r----- 1 root root      156 Sep 27 16:19 binlog.000002
-rw-r----- 1 root root       16 Sep 27 16:19 binlog.index
drwxr-x--- 2 root root       20 Sep 27 16:19 db1
-rw-r----- 1 root root     5964 Sep 27 16:19 ib_buffer_pool
-rw-r----- 1 root root 12582912 Sep 27 16:19 ibdata1
drwxr-x--- 2 root root      143 Sep 27 16:19 mysql
-rw-r----- 1 root root 28311552 Sep 27 16:19 mysql.ibd
drwxr-x--- 2 root root     8192 Sep 27 16:19 performance_schema
drwxr-x--- 2 root root       28 Sep 27 16:19 sys
-rw-r----- 1 root root 10485760 Sep 27 16:19 undo_001
-rw-r----- 1 root root 10485760 Sep 27 16:19 undo_002
-rw-r----- 1 root root       18 Sep 27 16:19 xtrabackup_binlog_info
-rw-r----- 1 root root      102 Sep 27 16:19 xtrabackup_checkpoints
-rw-r----- 1 root root      458 Sep 27 16:19 xtrabackup_info
-rw-r----- 1 root root     2560 Sep 27 16:19 xtrabackup_logfile
-rw-r----- 1 root root       39 Sep 27 16:19 xtrabackup_tablespaces
2:第一次修改数据并且增量备份
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db1;
Database changed
mysql> create table t1(id int auto_increment primary key ,name char(10));
Query OK, 0 rows affected (0.01 sec)

mysql> insert t1(name) value('zhangsan');
Query OK, 1 row affected (0.01 sec)
[16:22:39 root@CentOS8 ~]\ [#xtrabackup -uroot --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base
[16:23:37 root@CentOS8 ~]\ [#ll /backup/inc1/
total 900
-rw-r----- 1 root root    475 Sep 27 16:23 backup-my.cnf
-rw-r----- 1 root root    156 Sep 27 16:23 binlog.000003
-rw-r----- 1 root root     16 Sep 27 16:23 binlog.index
drwxr-x--- 2 root root     45 Sep 27 16:23 db1
-rw-r----- 1 root root   5964 Sep 27 16:23 ib_buffer_pool
-rw-r----- 1 root root  49152 Sep 27 16:23 ibdata1.delta
-rw-r----- 1 root root     64 Sep 27 16:23 ibdata1.meta
drwxr-x--- 2 root root    143 Sep 27 16:23 mysql
-rw-r----- 1 root root 540672 Sep 27 16:23 mysql.ibd.delta
-rw-r----- 1 root root     73 Sep 27 16:23 mysql.ibd.meta
drwxr-x--- 2 root root   8192 Sep 27 16:23 performance_schema
drwxr-x--- 2 root root     61 Sep 27 16:23 sys
-rw-r----- 1 root root  98304 Sep 27 16:23 undo_001.delta
-rw-r----- 1 root root     69 Sep 27 16:23 undo_001.meta
-rw-r----- 1 root root 163840 Sep 27 16:23 undo_002.delta
-rw-r----- 1 root root     69 Sep 27 16:23 undo_002.meta
-rw-r----- 1 root root     18 Sep 27 16:23 xtrabackup_binlog_info
-rw-r----- 1 root root    107 Sep 27 16:23 xtrabackup_checkpoints
-rw-r----- 1 root root    500 Sep 27 16:23 xtrabackup_info
-rw-r----- 1 root root   2560 Sep 27 16:23 xtrabackup_logfile
-rw-r----- 1 root root     39 Sep 27 16:23 xtrabackup_tablespaces
3:第二次修改数据并且增量备份
mysql> insert t1(name) value('laowang');
Query OK, 1 row affected (0.00 sec)

mysql> insert t1(name) value('lisi');
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | laowang  |
|  3 | lisi     |
+----+----------+
3 rows in set (0.00 sec)
[16:25:41 root@CentOS8 ~]\ [#xtrabackup -uroot --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1
[16:26:43 root@CentOS8 ~]\ [#ll /backup/inc2/
total 372
-rw-r----- 1 root root    475 Sep 27 16:26 backup-my.cnf
-rw-r----- 1 root root    156 Sep 27 16:26 binlog.000004
-rw-r----- 1 root root     16 Sep 27 16:26 binlog.index
drwxr-x--- 2 root root     45 Sep 27 16:26 db1
-rw-r----- 1 root root   5964 Sep 27 16:26 ib_buffer_pool
-rw-r----- 1 root root  32768 Sep 27 16:26 ibdata1.delta
-rw-r----- 1 root root     64 Sep 27 16:26 ibdata1.meta
drwxr-x--- 2 root root    143 Sep 27 16:26 mysql
-rw-r----- 1 root root  65536 Sep 27 16:26 mysql.ibd.delta
-rw-r----- 1 root root     73 Sep 27 16:26 mysql.ibd.meta
drwxr-x--- 2 root root   8192 Sep 27 16:26 performance_schema
drwxr-x--- 2 root root     61 Sep 27 16:26 sys
-rw-r----- 1 root root 147456 Sep 27 16:26 undo_001.delta
-rw-r----- 1 root root     69 Sep 27 16:26 undo_001.meta
-rw-r----- 1 root root  65536 Sep 27 16:26 undo_002.delta
-rw-r----- 1 root root     69 Sep 27 16:26 undo_002.meta
-rw-r----- 1 root root     18 Sep 27 16:26 xtrabackup_binlog_info
-rw-r----- 1 root root    107 Sep 27 16:26 xtrabackup_checkpoints
-rw-r----- 1 root root    500 Sep 27 16:26 xtrabackup_info
-rw-r----- 1 root root   2560 Sep 27 16:26 xtrabackup_logfile
-rw-r----- 1 root root     39 Sep 27 16:26 xtrabackup_tablespaces
4:将完全备份和增量备份复制到远程主机
[16:28:51 root@CentOS8 ~]\ [#scp -r /backup/* 10.0.0.18:/backup/
5:在备份服务器安装mysql和xtrabackup
[15:53:26 root@CentOS8 ~]\ [#yum -y install mysql-server
[16:29:55 root@CentOS8 ~]\ [#yum -y install percona-xtrabackup-80-8.0.25-17.1.el8.x86_64.rpm
6:预准备完成备份,此选项--apply-log-only 阻止回滚未完成的事务
[16:31:16 root@CentOS8 ~]\ [#xtrabackup --prepare --apply-log-only --target-dir=/backup/base
7:合并第1次增量备份到完全备份
[16:32:42 root@CentOS8 ~]\ [#xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc1
8:合并第2次增量备份到完全备份:最后一次还原不需要加选项--apply-log-only
[16:34:04 root@CentOS8 ~]\ [#xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2
9:复制到数据库目录,数据库目录必须为空,mysql服务不能启动
[16:41:56 root@CentOS8 ~]\ [#xtrabackup --copy-back --target-dir=/backup/base
10:还原属性并启动服务
[16:43:01 root@CentOS8 ~]\ [#chown -R mysql:mysql /var/lib/mysql
[16:43:57 root@CentOS8 ~]\ [#systemctl start mysqld
11:查看还原数据
[16:44:02 root@CentOS8 ~]\ [#mysql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1            |
+---------------+
1 row in set (0.00 sec)

mysql> select * from t1;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | laowang  |
|  3 | lisi     |
+----+----------+
3 rows in set (0.00 sec)

3、MyCAT实现MySQL读写分离

1:修改主机名,创建mysql主从数据库
[09:43:18 root@CentOS8 ~]\ [#hostnamectl set-hostname master
[09:44:37 root@master ~]\ [#yum -y install mariadb-server
[09:43:18 root@CentOS8 ~]\ [#hostnamectl set-hostname slave
[09:44:33 root@slave ~]\ [#yum -y install mariadb-server
2:修改master和slave上的配置文件并启动服务
[09:51:32 root@master ~]\ [#cat /etc/my.cnf.d/mariadb-server.cnf
...
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
server-id=18
log-bin
...
[09:51:37 root@master ~]\ [#systemctl start mariadb
[09:52:01 root@slave ~]\ [#cat /etc/my.cnf.d/mariadb-server.cnf
...
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
server-id=28
...
[09:52:06 root@slave ~]\ [#systemctl start mariadb
3:Master上创建复制用户
[09:52:41 root@master ~]\ [#mysql
MariaDB [(none)]> grant replication slave on *.* to repluser@'10.0.0.%' identified by 'replpass';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> show master status;
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000002 |      543 |              |                  |
+--------------------+----------+--------------+------------------+
1 row in set (0.000 sec)
4:在slave上执行
[09:53:20 root@slave ~]\ [#mysql
MariaDB [(none)]> CHANGE MASTER TO
    ->   MASTER_HOST='10.0.0.18',
    ->   MASTER_USER='repluser',
    ->   MASTER_PASSWORD='replpass',
    ->   MASTER_PORT=3306,
    ->   MASTER_LOG_FILE='mariadb-bin.000002',
    ->   MASTER_LOG_POS=543;
Query OK, 0 rows affected (0.005 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)
5:在Mysql代理服务器安装mycat并启动
[09:43:18 root@CentOS8 ~]\ [#hostnamectl set-hostname MyCat
[09:44:44 root@MyCat ~]\ [#yum -y install java
[10:06:39 root@MyCat ~]\ [#mkdir /apps
[10:06:59 root@MyCat ~]\ [#tar xvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz -C /apps/
[10:08:54 root@MyCat ~]\ [#echo 'PATH=/apps/mycat/bin:$PATH' > /etc/profile.d/mycat.sh
[10:10:18 root@MyCat ~]\ [#source /etc/profile.d/mycat.sh 
[10:11:20 root@MyCat ~]\ [#mycat
Usage: /apps/mycat/bin/mycat { console | start | stop | restart | status | dump }
[10:11:24 root@MyCat ~]\ [#mycat start
Starting Mycat-server...
[10:12:18 root@MyCat ~]\ [#tail /apps/mycat/logs/wrapper.log 
STATUS | wrapper  | 2021/09/27 10:11:31 | --> Wrapper Started as Daemon
STATUS | wrapper  | 2021/09/27 10:11:32 | Launching a JVM...
INFO   | jvm 1    | 2021/09/27 10:11:32 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2021/09/27 10:11:32 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
INFO   | jvm 1    | 2021/09/27 10:11:32 | 
INFO   | jvm 1    | 2021/09/27 10:11:33 | MyCAT Server startup successfully. see logs in logs/mycat.log
6:在mycat服务器上修改server.xml文件配置mycat的连接信息
[10:38:12 root@MyCat ~]\ [#cat /apps/mycat/conf/server.xml
#修改下面行的8066改为3306复制到到独立非注释行
<property name="serverPort">3306</property>  <property name="managerPort">9066</property>
其他设置默认
7:修改schema.xml实现读写分离策略
[10:56:21 root@MyCat ~]\ [#cat /apps/mycat/conf/schema.xml
#修改下面行
<schema name="TESTDB" checkSQLschema="flase" sqlMaxLimit="100" randomDataNode="dn1">
<dataNode name="dn1" dataHost="localhost1" database="mycat" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
<writeHost host="host1" url="10.0.0.18:3306" user="root" password="123456">
<writeHost host="host2" url="10.0.0.28:3306" user="root" password="123456">
10:56:46 root@MyCat ~]\ [#mycat restart
Stopping Mycat-server...
Stopped Mycat-server.
Starting Mycat-server...
8:在后端主服务器创建用户并对mycat授权
MariaDB [(none)]> create database mycat;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> grant all on *.* to 'root'@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.001 sec)

4、ansible常用模块介绍

1:Command模块:在远程主机执行命令,此为默认模块,可忽略 -m 选项
2:Shell 模块:和command相似,用shell执行命令,支持各种符号,比如:*,$, >
3:Script 模块:在远程主机上运行ansible服务器上的脚本(无需执行权限)
4:Copy模块:从ansible服务器主控端复制文件到远程主机
5:Get_url 模块:用于将文件从http、https或ftp下载到被管理机节点上
6:Fetch模块:从远程主机提取文件至ansible的主控端,copy相反,目前不支持目录
7:File模块:设置文件属性,创建软链接等
8:stat模块:检查文件或文件系统的状态
9:unarchive 模块:解包解压缩
10:Archive 模块:打包压缩保存在被管理节点
11:Hostname模块:管理主机名
12:Cron模块:计划任务
13:Yum 和 Apt 模块:yum 管理软件包,只支持RHEL,CentOS,fedora,不支持Ubuntu其它版本;apt 模块管理 Debian 相关版本的软件包
14:yum_repository 模块:创建和删除yum仓库
15:Service模块:管理服务
16:User模块:管理用户
17:Group模块:管理组
18:Lineinfile模块:修改某个文件的单行进行替换,如果想进行多行匹配进行替换需要使用replace模块。相当于sed,可以修改文件内容
19:Replace模块:该模块有点类似于sed命令,主要也是基于正则进行匹配和替换,建议使用
20:SELinux模块:该模块管理 SELInux 策略
21:reboot模块:重启服务器
22:mount模块:挂载和卸载文件系统
23:Setup模块:setup 模块来收集主机的系统信息,这些 facts 信息可以直接以变量的形式使用,但是如果主机
较多,会影响执行速度
24:debug模块:用于输出信息,并且通过 msg 定制输出的信息内容
posted @ 2021-09-27 19:39  Zhaoyaxuan  阅读(35)  评论(0)    收藏  举报