TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!

Ansible管理服务介绍

1)批量管理服务介绍作用说明:

01.提高工作的效率﹐重复性完成工作︰代码上线/ web服务apache业务转换为nginx
02.提高工作准确度部署nginx nfs backup
03.减少维护的成本批量管理100台数据库服务器1个人
04.减少重复性工作实习生/初级运维ansible命令

2)批量管理服务部署

`第一个历程`:安装服务程序
[root@m01 ~]# yum -y install ansible
`第二个历程`:编写配置文件hosts
[root@m01 ~]# tail -4 /etc/ansible/hosts 
172.16.1.98
172.16.1.99
172.16.1.100
"测试":
[root@m01 ~]# ansible all -m command -a "ip a s ens33"
172.16.1.98 | CHANGED | rc=0 >>
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:e3:51:08 brd ff:ff:ff:ff:ff:ff
    inet 192.168.139.98/24 brd 192.168.139.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::d5dd:30fa:929a:1eef/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::878d:767e:2bfe:1831/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::3d6a:871a:22eb:bcac/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
172.16.1.99 | CHANGED | rc=0 >>
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:34:db:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.139.99/24 brd 192.168.139.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::d5dd:30fa:929a:1eef/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::878d:767e:2bfe:1831/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::3d6a:871a:22eb:bcac/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
172.16.1.100 | CHANGED | rc=0 >>
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d6:ad:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.139.100/24 brd 192.168.139.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::878d:767e:2bfe:1831/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::d5dd:30fa:929a:1eef/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2.1)ansible管理命令应用

#·主机清单配置文件etc/ansible/hosts
#·主机清单配置文件etc/ansible/hosts#·批量管理命令使用ansible 或 ansible-playbook·如何编写剧本文件

2.2)ansible命令使用

#语法格式:ansible 管理主机信息 -m 模块信息 -a 模块指令信息
#                   1           2           3
1:`管理主机信息`
方法一:设置为all:对主机清单中所有主机进行管理
方法二:设置具体IP地址:对指定主机进行管理
方法三:设置多个IP地址:对多个指定主机进行管理
方法四:设置主机组名称:对主机组进行管理
[root@m01 ~]# tail -5 /etc/ansible/hosts 
[stangj]
172.16.1.98
172.16.1.99
172.16.1.100
[root@m01 ~]# ansible stangj -m command -a "ip a s ens33"
​
2:`设置不同应用模块`:
官方模块介绍:
https://docs.ansible.com/ansible/latest/collections/index.html#list-of-collections
查询帮助信息:
ansible-doc -l          ---查看确认是否有指定模块
ansible-doc 模块信息     ---获取模块使用帮助手册

3)ansible的hosts文件编写介绍

编写方式有4种:
`方式一`:直接编写主机IP地址或者名称信息172.16.1.7
172.16.1.8web03
`方法二`:可以实现主机分组配置[oldboy]
172.16.1.7172.16.1.8172.16.1.9
`方法三`:可以设置子组信息
[summary:children]
web
db
​
[web]
172.16.1.7
172.16.1.8
172.16.1.9
[db]
172.16.1.5
1172.16.1.52
172.16.1.53
[lb]
172.16.1.5
172.16.1.6
`方法四`:可以定义设置变量信息
1)设置内置变量信息
172.16.1.7 ansible_user=root ansible_password=123456 ansible_port=52113
ansible_user:       指定连接管理主机用户身份
ansible_password:   指定连接管理主机密码信息
ansible_port:       指定连接管理主机端口信息
2)批量设置内部变量信息
[oldboy]
172.16.1.7
172.16.1.8
172.16.1.9
[oldboy:vars]
ansible_user=root
ansible_password=123456
ansible_port=52113
​

3.1)如何使用批量管理模块功能

1) shell模块          ---万能模块
        作用:可以实现批量管理主机信息
        PS: command模块有缺陷,无法识别特殊符号信息: $HOME,"<",">","I"," ;" and "&"
    模块常用指令参数:
        creates:判断一个文件是否存在,如果存在就不执行相应命令removes:判断一个文件是否存在,如果存在就执行相应命令chdir:执行命令前,进行目录一个切换
        PS:1)万能模块在使用时缺陷,不具有幂等性(第一次执行结果和多次执行结果相同)当不具有幂等性时,会对剧本编写产生问题???           2)操作步骤可能会过于繁琐
                批量执行脚本功能:
                    第一个历程:编写脚本
                    第二个历程:需要将脚本文件分发给所有主机
                    ansible oldboy -m shell -a " src=/server/scripts/test.sh dest=/server/scripts"
                    第三个历程:设置脚本文件权限
                    ansible oldboy -m file -a "path=/server/scripts/test.sh mode=755"
                    第四个历程:执行脚本文件
                    ansible oldboy -m shell -a " /server/scripts/test.sh"
​
2) script模块         ---脚本模块
    作用:专门批量执行脚本功能
        第一个历程:编写脚本
        第二个历程:批量执行脚本
        ansible oldboy -m script -a " /server/scripts/test02.sh"
​
3) copy模块           ---分发数据模块
    作用:可以实现批量分发数据文件常用参数指令:
        src:指定要分发文件数据信息
        dest:将分发文件保存到哪个目标路径:如果src和dest是文件,则不会创建dest的父目录,如果该父目录不存在,则任务将失败。
        owner:指定文件分发后的属主信息
        group:指定文件分发后的属组信息
        mode:指定文件分发后的权限属性
        backup:当文件名称重复时,会将原文件备份,再进行覆盖? ? ?
                m0l oldboy.txt(123) web01/backup/oldboy.txt(456) oldboy.txt(456)备份
        content:在被管理主机上创建文件并设置信息内容
        directory_mode:可以递归设置目录中数据权限(只是针对复制目录时)
        force (了解):可以避免相同名称文件覆盖
            m01 oldboy.txt( 123) web01  / backup/oldboy.txt(456)
            force=yes默认设置表示会覆盖文件
            force=no不会对相同文件进行覆盖
        remote_src:将被管理主机上文件进行本地备份保存
        validate:验证分发后的文件合法性
        m01 www.conf    web01 /etc/nginx/conf.d/www.conf nginx -t
    实践操作:
        1.批量分发文件信息,并修改文件属主属组和权限信息
            [root@m01 ~]# ansible stangj -m shell -a "useradd stangg01"
            [root@m01 ~]# ansible stangj -m copy -a "src=/data/stangj.txt dest=/data/ owner=stangj01 mode=666 group=stangj01"
            [root@m01 ~]# ansible stangj -m shell -a "ls -l /data"
            172.16.1.98 | CHANGED | rc=0 >>
            -rw-rw-rw- 1 stangj01 stangj01 5 Jul 17 13:10 /data
            172.16.1.99 | CHANGED | rc=0 >>
            -rw-rw-rw- 1 stangj01 stangj01 5 Jul 17 13:10 /data
            172.16.1.100 | CHANGED | rc=0 >>
            -rw-rw-rw- 1 stangj01 stangj01 5 Jul 17 13:10 /data
        2.在被管理主机上创建文件信息,并设置文件内容
            [root@m01 ~]# ansible stangj -m copy -a "content=789 dest=/tmp/stangj02.txt mode=666"
            [root@m01 ~]# ansible stangj -m shell -a "cat /tmp/stangj02.txt"
            172.16.1.98 | CHANGED | rc=0 >>
            789
            172.16.1.99 | CHANGED | rc=0 >>
            789
            172.16.1.100 | CHANGED | rc=0 >>
            789
        3.将目录信息复制到被管理主机上,并且将目录以及目录下面所有内容权限统一改为777
            [root@m01 /]# tree /data/
            /data/
            ├── info
            │   ├── 1.txt
            │   ├── 2.txt
            │   └── 3.txt
            └── stangj.txt
            [root@m01 /]# ansible stangj -m copy -a "src=/data/info dest=/tmp directory_mode=777 mode=777"
            利用copy模块分发目录信息时:
                目录后面有/表示将目录下面数据内容进行整体分发
                目录后面没有/表示将目录下面数据内容以及目录本身都做分发
                以上命令表示,复制分发数据时,可以在被管理自动创建所需的目录
        4.将备份的数据如何实现批量还原
        [root@m01 ~]# ansible stangj -m copy -a "src=/tmp/stangj02.txt dest=/tmp/stangj02.txt.bak remote_src=yes"
        [root@m01 ~]# ansible stangj -m shell -a "echo 258 > /tmp/stangj02.txt"
        [root@m01 ~]# ansible stangj -m shell -a "cat /tmp/stangj02.txt"
        172.16.1.99 | CHANGED | rc=0 >>
        258
        172.16.1.98 | CHANGED | rc=0 >>
        258
        172.16.1.100 | CHANGED | rc=0 >>
        258
        [root@m01 ~]# ansible stangj  -m copy -a "src=/tmp/stangj02.txt.bak dest=/tmp/stangj02.txt remote_src=yes"
        [root@m01 ~]# ansible stangj -m shell -a "cat /tmp/stangj02.txt"
        172.16.1.99 | CHANGED | rc=0 >>
        789
        172.16.1.98 | CHANGED | rc=0 >>
        789
        172.16.1.100 | CHANGED | rc=0 >>
        789
        4)将数据分发到其他主机,当有主机存在该文件时则取消对该主机的文件分发
        ansible oldboy -m copy -a "src=/data/oldboy.txt dest=/tmp/oldboy.txt force=no"
​
4) fetch模块          ---拉取数据模块
    作用:可以将被管理主机数据信息进行拉取常用指令参数:
        src:被管理主机需要拉取数据信息
        dest:管理主机需要存储数据目录信息
    1.实践操作:实现被管理主机文件数据拉取
    [root@m01 ~]# ansible stangj -m fetch -a "src=/tmp/stangj.txt dest=/data"
    [root@m01 ~]# tree /data
    /data
    ├── 172.16.1.100
    │   └── tmp
    │       └── stangj.txt
    ├── 172.16.1.98
    │   └── tmp
    │       └── stangj.txt
    ├── 172.16.1.99
    │   └── tmp
    │       └── stangj.txt
​
5) file模块           ---管理数据模块
    作用说明:可以实现数据信息创建与删除/以及已有数据信息属性修改(属主属组权限)常用指令参数:
        owner:修改已有文件的属主信息
        group:修改己有文件的属组信息
        mode:修改已有文件的权限信息
        path:指定需要创建删除或者修改属性文件信息
        state:可以实现数据信息创建删除
​
    实践需求:
        1.修改被管理端文件数据属性信息
        [root@m01 ~]# ansible stangj -m shell -a "ls -l /tmp/stangj.txt"
        172.16.1.99 | CHANGED | rc=0 >>
        -rw-rw-rw- 1 stangj01 stangj01 5 Jul 17 13:43 /tmp/stangj.txt
        [root@m01 ~]# ansible stangj -m file -a "path=/tmp/stangj.txt mode=777 owner=root group=root" #对文件
        [root@m01 ~]# ansible stangj -m shell -a "ls -l /tmp/stangj.txt"
        172.16.1.98 | CHANGED | rc=0 >>
        -rwxrwxrwx 1 root root 5 Jul 17 13:43 /tmp/stangj.txt
        [root@m01 ~]# ansible stangj -m file -a "path=/tmp/info mode=777 owner=stangj01 group=stangj01" #对目录
        [root@m01 ~]# ansible stangj -m file -a "path=/tmp/info mode=777 owner=stangj01 group=stangj01 recurse=yes" #递归修改
        2.创建数据信息
            创建目录
        [root@m01 ~]# ansible stangj -m file -a "path=/tmp/test/ state=directory" 
            创建文件
        [root@m01 ~]# ansible stangj -m file -a "path=/tmp/test/test.txt state=touch"
            检查文件信息是否存在:
        [root@m01 ~]# ansible stangj -m file -a "path=/tmp/test/test.txt state=file"
            软链接文件:
        [root@m01 ~]# ansible stangj -m file -a "src=/tmp/test/test.txt dest=/tmp/test/test_soft_link state=link"
            硬链文件:
        [root@m01 ~]# ansible stangj -m file -a "src=/tmp/test/test.txt dest=/tmp/test/test_hard_link state=hard"
            删除文件:
        [root@m01 ~]# ansible stangj -m file -a "path=/tmp/test/test_hard_link state=absent"
    
6) archive模块        ---压缩数据模块
    作用说明:可以对远程主机数据进行压缩处理
        owner:指定文件压缩后的属主信息
        group:指定文件压缩后的属组信息
        mode:指定文件压缩后的权限信息
        remove:(了解)将进行压缩后的数据删除
        path:指定需要进行压缩数据信息
        dest:指定压缩包文件保存路径
        format:指定压缩数据
        force_archive单独压缩一个文件信息时,也可以进行强制压缩处理
    实践需求:需要将远程主机/tmp/info目录进行压缩处理,压缩完成将源文件删除
        [root@m01 ~]# ansible stangj -m archive -a "path=/tmp/info dest=/tmp/info.tar.gz remove=yes"
    
7) unarchive模块      ---解压数据模块
    作用说明:可以将管理端压缩包数据信息解压到被管理主机上常用指令参数:
        src:指定要解压的数据信息
        dest:解压教据指定路径信息
        remote_src:将被管理主机上压缩包进行解压(默认为no)
    [root@m01 ~]# ansible stangj -m unarchive -a "src=/tmp/info.tar.gz dest=/tmp/test/ remote_src=yes"
​
8) lineinfile模块     ---文件信息替换模块类似sed、
    作用说明:可以实现对文件信息修改操作常用指令参数:
        path:指定要修改文件信息
        regexp:利用正则匹配出文件中指定行信息
        line:对匹配行信息做修改
        state:可以实现删除文件信息
        insertafter:匹配指定信息,并在指定信息下面新起一行添加信息
        insertbefore匹配指定信息,并在指定信息上面新起一行添加信息
        create:在指定文件后面追加新的信息(默认为no)等价于 >>
    实践操作:
        1.修改文件中指定内容:将stangj开头行信息修改为dddd
        [root@m01 ~]# ansible 172.16.1.100 -m shell -a "cat /tmp/test/info/1.txt"
        172.16.1.100 | CHANGED | rc=0 >>
         stangj
         stangj010
         stangj020
         ffss
         [root@m01 ~]# ansible 172.16.1.100 -m lineinfile -a "path=/tmp/test/info/1.txt regexp=^stangj line=dddd"
        2.删除文件内中信息
        [root@m01 ~]# ansible 172.16.1.100 -m lineinfile -a "path=/tmp/test/info/1.txt regexp=^stangj state=absent"
        3.在文件指定行插入信息
        [root@m01 ~]# ansible 172.16.1.100 -m lineinfile -a "path=/tmp/test/info/1.txt insertafter=^ffss line=stangj02" #在匹配的下一行插入
        [root@m01 ~]# ansible 172.16.1.100 -m lineinfile -a "path=/tmp/test/info/1.txt insertbefore=^ffss line=stangj01" #在匹配的上一行插入
        4.在文件中最后一行后面附加新的信息
        [root@m01 ~]# ansible 172.16.1.100 -m lineinfile -a "path=/tmp/test/info/1.txt line=123456 create=yes"
​
​
​
​
9) cron模块           ---定时任务模块
    作用说明:可以批量设置定时任务信息常用指令参数:
        minute:可以设置分钟信息
        hour:可以设置小时信息
        day:可以设置日期信息
        month:可以设置月份信息
        weekday:可以设置星期信息
        special_time:可以按照指定周期时间执行I
        job:可以设置需要执行任务信息
        name:表示给定时任务添加注释
        state:表示创建或删除指定定时任务
        disabled:表示将指定定时任务进行注释(默认为no不注释)
    实践过程:
        1.创建定时任务:每天夜里2点备份数据信息
            [root@m01 ~]# ansible 172.16.1.100 -m cron -a "name=ansible_01_cron minute=0 hour=2 job='cp /tmp/stangj02.txt /tmp/stangj02.txt.bak &>/dev/null'"
            [root@server01 tmp]# crontab -l
            #Ansible: ansible_01_cron
            0 2 * * * cp /tmp/stangj02.txt /tmp/stangj02.txt.bak &>/dev/null
        2.临时关闭/开启定时任务设置
            [root@server01 tmp]# ansible 172.16.1.100 -m cron -a "name=ansible_01_cron minute=0 hour=2 job='cp /tmp/stangj02.txt /tmp/stangj02.txt.bak &>/dev/null' disabled=yes" #关闭
            [root@server01 tmp]# ansible 172.16.1.100 -m cron -a "name=ansible_01_cron minute=0 hour=2 job='cp /tmp/stangj02.txt /tmp/stangj02.txt.bak &>/dev/null' disabled=no" #开启
        3.删除定时任务设置  
            [root@m01 ~]# ansible 172.16.1.100 -m cron -a "name=ansible_01_cron state=absent"
​
10)mount模块          ---挂载存储设备模块
    作用说明:实现存储服务批量挂载以及卸载常用指令参数:
        path:指定挂载点目录信息
        src:指定挂载存储设备信息
        fstype:指定挂载使用文件系统类型
        opts指定挂载参数信息rw ro suid nosuid auto noauto ... defaults
        state:指定挂载或卸载操作
    实践操作:
        1.主机批量挂载存储设备
            [root@m01 ~]# ansible 172.16.1.100 -m mount -a "src=172.16.1.102:/data path=/mnt fstype=nfs state=present" #重启永久生效永久挂载
            [root@m01 ~]# ansible 172.16.1.100 -m mount -a "src=172.16.1.102:/data path=/mnt fstype=nfs state=mounted" #立马挂载并且是永久挂载
        2.主机批量卸载存储设备
            [root@m01 ~]# ansible 172.16.1.100 -m mount -a "path=/mnt state=unmounted" #立即卸教但不会删除fastb挂载配置信息
            [root@m01 ~]# ansible 172.16.1.100 -m mount -a "path=/mnt state=absent" #立即卸教并册除fstab挂戟配置
​
11) user模块          ---管理用户模块
    作用说明:实现主机用户批量创建/批量删除用户常用指令参数:
        name:指定创建用户名称
        password:指定创建用户密码信息password=密文信息
        uid:指定创建用户uid数值信息
        group:指定用户所属主要组信息useradd -g
        groups:指定用户附属组信息useradd -G
        shell:指定创建用户登录方式/bin/bash(可以登录)/sbin/nologin(不能登录)
        create_home 确认是否创建家目录默认yes创建家目录 useradd -M
        remove:确认是否删除用户家目录信息默认no不删除家目录 userdel -r
        state:是否创建或删除用户(默认present创建)
    实践操作:
        1.创建一个可以登录系统用户stj uid:6666 主组:stangj01 附属组:root
        [root@m01 ~]# ansible stangj -m user -a "name=stj uid=6666 group=stangj01 groups=root "
        2.给用户设置密码信息
            生成密码信息:
        [root@m01 ~]# ansible all -i localhost, -m debug -a "msg={{ '123456' | password_hash('sha512', 'stangj')}}"
        localhost | SUCCESS => {
        "msg": "$6$stangj$yUvBX8xlXAPtFSup6A4LTWjXjYhgmEpRzOxk2AjZW1ng0SQhZdSmz0tqBGe8djcr63OPdw43PAzjp3OOuAUv8."}
        [root@m01 ~]# ansible stangj -m user -a 'name=stj uid=6666 group=stangj01 groups=root password="$6$stangj$yUvBX8xlXAPtFSup6A4LTWjXjYhgmEpRzOxk2AjZW1ng0SQhZdSmz0tqBGe8djcr63OPdw43PAzjp3OOuAUv8."'
        3.创建虚拟用户信息
        [root@m01 ~]# ansible stangj -m user -a "name=stj02 shell=/sbin/nologin create_home=no"
        4.删除用户信息
        [root@m01 ~]# ansible stangj -m user -a "name=stj state=absent remove=yes" #删除用户及家目录
        [root@m01 ~]# ansible stangj -m user -a "name=stj state=absent" #删除用户不删家目录
    
    group模块         ---管理用户组模块
    作用说明:创建用户组信息或删除用户组信息
        name:指定用户组名称信息
        gid:指定用户组gid数值信息
        state:是否创建或删除用户组(默认present创建)
​
12)yum模块            ---批量安装软件模块
    作用说明:
        1.下载安装/卸载删除系统软件程序包
        2.可以指定下载源信息/关闭下载源校验功能yum仓库<--- /etc/ yum.repos.d/xx.repo aliyun nginx 清华源
    常用指令参数介绍:
        name:指定下载软件名称信息
        state:指定下载或是卸载软件
            installed/present:下载安装软件rsync-2.0
            absent/removed:卸载软件程序
            latest:更新软件程序rsync-3.0
        enablerepo:指定下载源信息
        disablerepo:指定不用哪个下载源
        download_only:只下载软件包不进行安装(默认为false)
    实践操作:
        1.批量部署安装htop软件程序
        [root@m01 ~]# ansible stangj -m yum -a "name=htop state=present" 
        2.指定下载源信息
        [root@m01 ~]# ansible stangj -m yum -a "name=htop state=present enablerepo=epel" 
        [root@m01 ~]# ansible stangj -m yum -a "name=htop state=present disablerepo=epel"
        3.只下载软件包,不进行软件包安装
        [root@m01 ~]# ansible stangj -m yum -a "name=htop state=present download_only=true"
​
13)service模块        ---管理服务程序模块
    作用说明:批量管理服务状态
    常用指令参数介绍:
        name:指定管理服务名称
        state:指定服务运行状态((started stopped reloaded)
        enabled:设置是否让服务开机自启yes-开机自启,no--开机不让自动运行
    实践过程:批量管理服务状态
    [root@m01 ~]# ansible oldboy -m service -a "name=nginx state=stopped enabled=no"
    [root@m01 ~]# ansible oldboy -m service -a "name=nginx state=started enabled=yes"
    类似模块: systemd
​
14) setup模块         ---收集
    作用说明:可以采集被管理主机系统和硬件信息常用指令参数信息:
        filter:过滤筛选想关注信息
    实践过程:收集网卡信息
        [root@m01 ~]# ansible 172.16.1.99 -m setup -a "filter=ansible_ens39"
​
    PS:利用收集的信息做判断使用。
    
15)mysql模块
    mysql_db    ---可以用于创建或删除数据库
    常用指令参数:
        name:               定义创建或删除数据库名称信息
        state:              用于创建或删除数据库,present创建,absent删除
        login_user:         指定登录数据用户信息-uroot
        login_password:     指定登录数据库密码信息-poldboy123
        login_host:         指定要登录管理远程主机地址-h 172.16.1.51
    
    mysql_user  ---数据库中添加或删除用户信息常用指令参数:
        name:               指定添加或删除用户信息
        password:           指定用户密码信息
        priv: 'stj.*:ALL'   指定用户管理库或表权限信息
        state: present      创建用户
        host:               指定数据库如何连接管理
        login_user:         指定登录数据用户信息-uroot
        login_password:     指定登录数据库密码信息-poldboy123
        login_host:         指定要登录管理远程主机地址-h 172.16.1.51
​
​

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号