第41课 ansible服务(模块用法)2019-05-28

2019-05-28  本文已影响0人  苏水的北
第十周 day2.png

一、ansible的应用:

1、批量命令执行;
2、批量安装服务;
3、批量配置同步;
4、批量任务执行;
5、批量代码部署。
二、ansible优势:
1、ansible不需要单独安装客户端,也不需要启动任何服务;
2、ansible是python中的一套完整的自动化执行任务模块;
三、ansible的安装:
yum install -y ansible
四、ansible主机清单(ansible inventory)

[root@m01 ~]# vim /etc/ansible/hosts (清单)
## db-[99:101]-node.example.com
[oldboy]
172.16.1.7
172.16.1.41

五、ad-hoc模块的几种使用方法:
ad-hoc简而言之就是“临时命令”,不会保存


QQ图片20190528122333.png

1、command命令模块:

[root@m01 .ssh]# ansible all -a hostname
172.16.1.41 | CHANGED | rc=0 >>
backup

172.16.1.7 | CHANGED | rc=0 >>
web01

2、copy文件拷贝模块:

[root@m01 /]# ansible all -m copy -a 'src=/etc/hostname  dest=/tmp/'
172.16.1.7 | CHANGED => {
   "ansible_facts": {
       "discovered_interpreter_python": "/usr/bin/python"
   }, 
   "changed": true, 
   "checksum": "f434396716e2c9aed47cfde87c491cce5a2c08fa", 
   "dest": "/tmp/hostname", 
   "gid": 0, 
   "group": "root", 
   "md5sum": "318d7defb693a2eb0d4f1a7a96575a57", 
   "mode": "0644", 
   "owner": "root", 
   "size": 4, 
   "src": "/root/.ansible/tmp/ansible-tmp-1559018281.86-28366237641950/source", 
   "state": "file", 
   "uid": 0
}
172.16.1.41 | SUCCESS => {
   "ansible_facts": {
       "discovered_interpreter_python": "/usr/bin/python"
   }, 
   "changed": false, 
   "checksum": "f434396716e2c9aed47cfde87c491cce5a2c08fa", 
   "dest": "/tmp/hostname", 
   "gid": 0, 
   "group": "root", 
   "mode": "0644", 
   "owner": "root", 
   "path": "/tmp/hostname", 
   "size": 4, 
   "state": "file", 
   "uid": 0
}

3、script脚本模块:

[root@m01 ~]# ansible all -m script -a "/server/scripts/1.sh"
172.16.1.7 | CHANGED => {
    "changed": true, 
    "rc": 0, 
    "stderr": "Shared connection to 172.16.1.7 closed.\r\n", 
    "stderr_lines": [
        "Shared connection to 172.16.1.7 closed."
    ], 
    "stdout": "Loaded plugins: fastestmirror\r\nLoading mirror speeds from cached hostfile\r\n * base: mirrors.nwsuaf.edu.cn\r\n * extras: mirrors.tuna.tsinghua.edu.cn\r\n * updates: mirrors.tuna.tsinghua.edu.cn\r\nResolving Dependencies\r\n--> Running transaction check\r\n---> Package cowsay.noarch 0:3.04-4.el7 will be installed\r\n--> Finished Dependency Resolution\r\n\r\nDependencies Resolved\r\n\r\n================================================================================\r\n Package          Arch             Version                 Repository      Size\r\n================================================================================\r\nInstalling:\r\n cowsay           noarch           3.04-4.el7              epel            42 k\r\n\r\nTransaction Summary\r\n================================================================================\r\nInstall  1 Package\r\n\r\nTotal download size: 42 k\r\nInstalled size: 77 k\r\nDownloading packages:\r\n\rcowsay-3.04-4.el7.noarch.rpm                               |  42 kB   00:00     \r\nRunning transaction check\r\nRunning transaction test\r\nTransaction test succeeded\r\nRunning transaction\r\n\r  Installing : cowsay-3.04-4.el7.noarch [                                 ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#                                ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##                               ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [####                             ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#####                            ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [######                           ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#######                          ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [########                         ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#########                        ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##########                       ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [###########                      ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [############                     ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#############                    ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##############                   ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [###############                  ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [################                 ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#################                ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##################               ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [###############################  ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [################################ ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch                                     1/1 \r\n\r  Verifying  : cowsay-3.04-4.el7.noarch                                     1/1 \r\n\r\nInstalled:\r\n  cowsay.noarch 0:3.04-4.el7                                                    \r\n\r\nComplete!\r\n", 
    "stdout_lines": [
        "Loaded plugins: fastestmirror", 
        "Loading mirror speeds from cached hostfile", 
        " * base: mirrors.nwsuaf.edu.cn", 
        " * extras: mirrors.tuna.tsinghua.edu.cn", 
        " * updates: mirrors.tuna.tsinghua.edu.cn", 
        "Resolving Dependencies", 
        "--> Running transaction check", 
        "---> Package cowsay.noarch 0:3.04-4.el7 will be installed", 
        "--> Finished Dependency Resolution", 
        "", 
        "Dependencies Resolved", 
        "", 
        "================================================================================", 
        " Package          Arch             Version                 Repository      Size", 
        "================================================================================", 
        "Installing:", 
        " cowsay           noarch           3.04-4.el7              epel            42 k", 
        "", 
        "Transaction Summary", 
        "================================================================================", 
        "Install  1 Package", 
        "", 
        "Total download size: 42 k", 
        "Installed size: 77 k", 
        "Downloading packages:", 
        "", 
        "cowsay-3.04-4.el7.noarch.rpm                               |  42 kB   00:00     ", 
        "Running transaction check", 
        "Running transaction test", 
        "Transaction test succeeded", 
        "Running transaction", 
        "", 
        "  Installing : cowsay-3.04-4.el7.noarch [                                 ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#                                ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##                               ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [####                             ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#####                            ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [######                           ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#######                          ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [########                         ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#########                        ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##########                       ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [###########                      ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [############                     ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#############                    ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##############                   ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [###############                  ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [################                 ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#################                ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##################               ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [###############################  ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [################################ ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch                                     1/1 ", 
        "", 
        "  Verifying  : cowsay-3.04-4.el7.noarch                                     1/1 ", 
        "", 
        "Installed:", 
        "  cowsay.noarch 0:3.04-4.el7                                                    ", 
        "", 
        "Complete!"
    ]
}
172.16.1.41 | CHANGED => {
    "changed": true, 
    "rc": 0, 
    "stderr": "Shared connection to 172.16.1.41 closed.\r\n", 
    "stderr_lines": [
        "Shared connection to 172.16.1.41 closed."
    ], 
    "stdout": "Loaded plugins: fastestmirror\r\nLoading mirror speeds from cached hostfile\r\n * base: mirrors.aliyun.com\r\n * extras: mirrors.aliyun.com\r\n * updates: mirrors.aliyun.com\r\nResolving Dependencies\r\n--> Running transaction check\r\n---> Package cowsay.noarch 0:3.04-4.el7 will be installed\r\n--> Finished Dependency Resolution\r\n\r\nDependencies Resolved\r\n\r\n================================================================================\r\n Package          Arch             Version                 Repository      Size\r\n================================================================================\r\nInstalling:\r\n cowsay           noarch           3.04-4.el7              epel            42 k\r\n\r\nTransaction Summary\r\n================================================================================\r\nInstall  1 Package\r\n\r\nTotal download size: 42 k\r\nInstalled size: 77 k\r\nDownloading packages:\r\n\rcowsay-3.04-4.el7.noarch.r 0% [                 ]  0.0 B/s |    0 B   --:-- ETA \r\rcowsay-3.04-4.el7.noarch.rpm                               |  42 kB   00:00     \r\nRunning transaction check\r\nRunning transaction test\r\nTransaction test succeeded\r\nRunning transaction\r\n\r  Installing : cowsay-3.04-4.el7.noarch [                                 ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#                                ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##                               ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [####                             ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#####                            ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [######                           ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#######                          ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [########                         ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#########                        ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##########                       ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [###########                      ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [############                     ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#############                    ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##############                   ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [###############                  ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [################                 ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [#################                ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [##################               ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [###############################  ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch [################################ ] 1/1\r  Installing : cowsay-3.04-4.el7.noarch                                     1/1 \r\n\r  Verifying  : cowsay-3.04-4.el7.noarch                                     1/1 \r\n\r\nInstalled:\r\n  cowsay.noarch 0:3.04-4.el7                                                    \r\n\r\nComplete!\r\n", 
    "stdout_lines": [
        "Loaded plugins: fastestmirror", 
        "Loading mirror speeds from cached hostfile", 
        " * base: mirrors.aliyun.com", 
        " * extras: mirrors.aliyun.com", 
        " * updates: mirrors.aliyun.com", 
        "Resolving Dependencies", 
        "--> Running transaction check", 
        "---> Package cowsay.noarch 0:3.04-4.el7 will be installed", 
        "--> Finished Dependency Resolution", 
        "", 
        "Dependencies Resolved", 
        "", 
        "================================================================================", 
        " Package          Arch             Version                 Repository      Size", 
        "================================================================================", 
        "Installing:", 
        " cowsay           noarch           3.04-4.el7              epel            42 k", 
        "", 
        "Transaction Summary", 
        "================================================================================", 
        "Install  1 Package", 
        "", 
        "Total download size: 42 k", 
        "Installed size: 77 k", 
        "Downloading packages:", 
        "", 
        "cowsay-3.04-4.el7.noarch.r 0% [                 ]  0.0 B/s |    0 B   --:-- ETA ", 
        "", 
        "cowsay-3.04-4.el7.noarch.rpm                               |  42 kB   00:00     ", 
        "Running transaction check", 
        "Running transaction test", 
        "Transaction test succeeded", 
        "Running transaction", 
        "", 
        "  Installing : cowsay-3.04-4.el7.noarch [                                 ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#                                ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##                               ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [####                             ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#####                            ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [######                           ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#######                          ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [########                         ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#########                        ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##########                       ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [###########                      ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [############                     ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#############                    ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##############                   ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [###############                  ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [################                 ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [#################                ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [##################               ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [###############################  ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch [################################ ] 1/1", 
        "  Installing : cowsay-3.04-4.el7.noarch                                     1/1 ", 
        "", 
        "  Verifying  : cowsay-3.04-4.el7.noarch                                     1/1 ", 
        "", 
        "Installed:", 
        "  cowsay.noarch 0:3.04-4.el7                                                    ", 
        "", 
        "Complete!"
    ]
}

4、yum安装软件模块:

[root@m01 ~]#   ansible all   -m yum  -a 'name=sl state=present'

5、file文件配置模块:

相当于mkdir)
[root@m01 ~]# ansible all -m file  -a 'path=/tmp/a/b/c/d/e/f/g   state=directory '
172.16.1.7 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 0, 
    "group": "root", 
    "mode": "0755", 
    "owner": "root", 
    "path": "/tmp/a/b/c/d/e/f/g", 
    "size": 6, 
    "state": "directory", 
    "uid": 0
}
172.16.1.41 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 0, 
    "group": "root", 
    "mode": "0755", 
    "owner": "root", 
    "path": "/tmp/a/b/c/d/e/f/g", 
    "size": 6, 
    "state": "directory", 
    "uid": 0
}
相当于touch
[root@m01 ~]# ansible all -m file  -a 'path=/tmp/a/b/c/d/e/f/g/oldboy.txt   state=touch '
172.16.1.41 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "dest": "/tmp/a/b/c/d/e/f/g/oldboy.txt", 
    "gid": 0, 
    "group": "root", 
    "mode": "0644", 
    "owner": "root", 
    "size": 0, 
    "state": "file", 
    "uid": 0
}
172.16.1.7 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "dest": "/tmp/a/b/c/d/e/f/g/oldboy.txt", 
    "gid": 0, 
    "group": "root", 
    "mode": "0644", 
    "owner": "root", 
    "size": 0, 
    "state": "file", 
    "uid": 0
}
检查
[root@m01 ~]# ansible all  -a 'tree  /tmp/ '
172.16.1.41 | CHANGED | rc=0 >>
/tmp/
├── a
│   └── b
│       └── c
│           └── d
│               └── e
│                   └── f
│                       └── g
│                           └── oldboy.txt
├── ansible_command_payload_PktBE1
│   ├── ansible_command_payload.zip
│   ├── __main__.py
│   └── __main__.pyc
├── etc
│   ├── gshadow
│   ├── gshadow-
│   ├── ld.so.conf.d
│   │   └── kernel-3.10.0-957.el7.x86_64.conf
│   ├── machine-id
│   ├── mtab
│   ├── openldap
│   │   └── certs
│   │       └── password
│   ├── pki
│   │   ├── ca-trust
│   │   │   └── extracted
│   │   │       ├── java
│   │   │       │   └── cacerts
│   │   │       ├── openssl
│   │   │       │   └── ca-bundle.trust.crt
│   │   │       └── pem
│   │   │           ├── email-ca-bundle.pem
│   │   │           ├── objsign-ca-bundle.pem
│   │   │           └── tls-ca-bundle.pem
│   │   ├── java
│   │   │   └── cacerts
│   │   └── tls
│   │       ├── cert.pem
│   │       └── certs
│   │           ├── ca-bundle.crt
│   │           └── ca-bundle.trust.crt
│   ├── shadow
│   ├── shadow-
│   ├── ssl
│   │   └── certs
│   │       ├── ca-bundle.crt
│   │       └── ca-bundle.trust.crt
│   ├── sudoers
│   └── udev
│       └── hwdb.bin
├── hostname
├── systemd-private-b29d7e55db3b423497a16f5c18e6f035-chronyd.service-NEBFWj
│   └── tmp
├── systemd-private-caf3d736f056411a9dbbc354c8aa03a1-chronyd.service-cncaY4
│   └── tmp
├── vmware-root_6331-1723602126
├── vmware-root_6388-994818425
├── vmware-root_6446-994097477
└── vmware-root_6468-701206161

32 directories, 26 files

172.16.1.7 | CHANGED | rc=0 >>
/tmp/
├── a
│   └── b
│       └── c
│           └── d
│               └── e
│                   └── f
│                       └── g
│                           └── oldboy.txt
├── ansible_command_payload_5AgcRS
│   ├── ansible_command_payload.zip
│   ├── __main__.py
│   └── __main__.pyc
├── hostname
├── systemd-private-673a0eb7b64d4c90af717f54294c46ac-chronyd.service-iZgzgp
│   └── tmp
├── systemd-private-deab5f8bc3eb42e6a003febfdbc07473-chronyd.service-jFqYZF
│   └── tmp
├── vmware-root_6262-734693435
├── vmware-root_6334-701009557
├── vmware-root_6405-1983653167
├── vmware-root_6560-692096908
└── vmware-root_6874-3099737545

17 directories, 5 files

6、server 服务模块:

[root@m01 ~]#   ansible all   -m server   -a 'name=crond state=started  enabled=yes' 
(开启cron定时服务,永久开启)

7、cron 定时任务服务模块:

[root@m01 ~]#ansible all -m cron -a 'name="sync time"(为了防止写入多个定时任务,用作注释,和别的服务name名称不相同) minute="*/5" job="/sbin/ntpdate  ntp1.aliyun.com  >/dev/null 2>&1"'

8、mount 挂载模块:

#web01 把nfs01 共享的/nfs  挂载到 /upload 

[root@m01 ~]# ansible 172.16.1.7 -m  mount -a 'fstype=nfs src=172.16.1.31:/nfs path=/upload state=mounted'
172.16.1.7 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "dump": "0", 
    "fstab": "/etc/fstab", 
    "fstype": "nfs", 
    "name": "/upload", 
    "opts": "defaults", 
    "passno": "0", 
    "src": "172.16.1.31:/nfs"
}
[root@m01 ~]# ansible 172.16.1.7 -a 'df -h'
172.16.1.7 | CHANGED | rc=0 >>
Filesystem        Size  Used Avail Use% Mounted on

172.16.1.31:/nfs   99G  1.7G   98G   2% /upload

[root@m01 ~]# ansible 172.16.1.7 -a 'grep upload /etc/fstab'
172.16.1.7 | CHANGED | rc=0 >>
172.16.1.31:/nfs /upload nfs defaults 0 0

9、压缩模块:

[root@m01 ~]# ansible all -m archive -a  ' path=/etc dest=/backup/lidao/etc.tar.gz '
path 指定远程主机目录或文件信息(要压缩的源文件)
dest 要解压推送到的目标路径

10、解压模块:

[root@m01 ~]#ansible all -m unarchive -a 'src=/backup/lidao/etc.tar.gz dest=/usr/local copy=no mode=0755'
src  推送数据的源文件信息,加copy=no,指远端源文件(要进行解压的源文件)
dest 远端推送数据的目标路径(要解压到的目标路径)
copy=0 指远端源文件
mode  修改文件权限
上一篇下一篇

猜你喜欢

热点阅读