Ansible 运维自动化--配置管理工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible 运维自动化--配置管理工具相关的知识,希望对你有一定的参考价值。

Ansible的使用
介绍:
Ansible是为了更方便、快捷的进行配置管理。用Ansible可以将平常复杂的配置工作变得简单,更加标准化且更容易控制。Ansible可以实现100、1000台批量部署等。
Ansible特点:
(1)部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。(Ansible只需要在一台普通的服务器上运行即可,不需要在被管控的服务器上安装客户端)
(2)使用 SSH协议对设备进行管理。
(3)使用python编写的,维护更简单
操作:
Centos7安装Ansible

 [[email protected] ~]# yum install ansible –y
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 

#镜像源,可以先按装镜像源,再安装ansible,这里是直接安装的。

  1. 安装完后,ansible的默认配置文件路径为
    [[email protected] ~]# ls /etc/ansible
    ansible.cfg hosts roles

  2. 在Ansible主机与被管理机之间做免密登陆,方便管理被管理的机器
    [[email protected] ~]# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): yes

    技术分享图片

[[email protected] ~]# cd  /root/.ssh  

[[email protected] .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts

[[email protected] .ssh]# ssh-copy-id -i id_rsa.pub 111.231.144.197  #将生成的公钥拷贝到远程机器上

技术分享图片

4.Ansible的简单使用

[[email protected] ~]# cd /etc/ansible/

[[email protected] ansible]# ls
ansible.cfg  hosts  roles

[[email protected] ansible]# vim hosts 

##默认hosts中可以配置分组,我们可以定义各种ip及规则。在hosts中添加以下内容:
[manage-other]
111.231.144.197
127.0.0.1
技术分享图片

在命令行执行以下命令,查看磁盘使用情况:

[[email protected] ansible]# ansible manage-other -m shell -a ‘df -h‘     #查看hosts文件中自定义组中机器的磁盘使用情况

[[email protected] ansible]# ansible all  -m shell -a ‘df -h‘         #查看hosts文件中所有组中机器的磁盘使用情况

技术分享图片

命令:ansible 分组 -m 模块名 -a 模块参数
(1)在远程的机器上执行命令

[[email protected] ansible]# ansible manage-other -m shell -a uptime

[[email protected] ansible]# ansible manage-other -m command -a uptime

技术分享图片

(2)在远程主机上执行主控端的shell脚本(array.sh在ansible所在的机器上)类似scp+shell命令。
[[email protected] SHELL]# ansible manage-other -m script -a array.sh

技术分享图片
(3)实现主控端向目标主机拷贝文件(ansible所在机器向所控制的远程机器拷贝文件,类似scp命令)

[r[email protected] SHELL]# ansible manage-other -m copy -a "src=array.sh  dest=/root/array.sh"

[[email protected] SHELL]# ll /root/array.sh 
-rw-r--r-- 1 root root 323 Oct 25 13:01 /root/array.sh

技术分享图片
(4)实现主控端向目标主机拷贝文件(ansible所在机器向所控制的远程机器拷贝文件,类似scp命令)并且修改文件的权限
[[email protected] SHELL]# ansible manage-other -m copy -a "src=array.sh dest=/root/array.sh owner=root group=root mode=777"

技术分享图片

[[email protected] SHELL]# ll /root/array.sh 
-rwxrwxrwx 1 root root 323 Oct 25 13:01 /root/array.sh           #权限发生改变
注意:远程主机的用户存在和组存在,否则拷贝失败。

技术分享图片

(5)实现在远程主机下载指定url内容到远程主机上
[[email protected] SHELL]# ansible manage-other -m get_url -a "url=http://www.baidu.com dest=/root/index.html"

技术分享图片
总结:
command:在远程执行权限内的shell命令.
script:在远程主机执行控制端的脚本文件.
shell:在控制端执行远程主机上的shell脚本文件.

以上是关于Ansible 运维自动化--配置管理工具的主要内容,如果未能解决你的问题,请参考以下文章

Ansible 运维自动化--配置管理工具

Ansible安装与配置(自动化运维工具)

自动化运维工具——ansible详解案例分享

运维自动化工具 Ansible

自动化运维工具 Ansible

自动化运维管理工Ansible安装与配置