Ansible自动化运维工具安装与使用实例

Posted dslx

tags:

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

1.准备两台服务器,要确定网络是通的。服务器当然越多越好啦。。。。Ansible的简介和好处我就不多说了,自己看百科去(*?▽?*)

IP:192.168.139.100
IP:192.168.139.110

2.把192.168.139.100这台服务器当master,110这台服务器做slave。在master服务器上安装ansible

[[email protected]~]# yum install epel-release -y
[[email protected]~]# yum install ansible -y

3.添加slave到管理的主机组,将slave的ip添加到hosts下,先简单添加,主机分组后面再谈。

[[email protected]~]# vi /etc/ansible/hosts

 

4.master  ssh秘钥配对,不用设置密码,这样会在root下生成.ssh目录,如果设置的了密码,每次执行ansible时,都会提示输入密码。

[[email protected]~]# ssh-keygen -t rsa

5.将公钥拷贝到slave的.ssh/authorized_keys目录下,实现免密码登录远程管理主机

[[email protected]~]#ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]192.168.139.110

6.完成后,可以测试下

[[email protected]~]#ansible all -m ping

7.成功返回如下,如果有警告,可在vi /etc/ansible/ansible.cfg将警告改为false。

192.168.139.110 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

8.测试成功,说明已经可控制slave,下面介绍几个常用的模块。ansible的选项参数我就不过多介绍了,可自行度娘

9.模块command/shell/raw。。。。。发现返回都是一样。它们的区别就在于command模块不是调用的shell的指令,所以没有bash的环境变量,也不能使用shell的一些操作方式,其他和shell没有区别。

而shell模块调用的是/bin/sh指令执行,raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是使用老版本python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了。

注意:command模块不能使用  ‘’ | ‘’符,而shell和raw可用

[[email protected] ansible]# ansible 192.168.139.110 -m command -a ls -l /tmp
[[email protected] ansible]# ansible 192.168.139.110 -m shell -a ls -l /tmp
[[email protected] ansible]# ansible 192.168.139.110 -m raw -a ls -l /tmp

10.copy模块 ,src参数指的是本地对象文件或文件夹,dest参数是远程主机存放的位置,mode参数为复制对象设置权限,backup参数文件存在的时候可以选择覆盖之前,将源文件备份.

[[email protected]~]#ansible 192.168.139.110 -m copy -a src=/tmp/a.playbook dest=/tmp/a.playbook mode=664 backup=yes
192.168.139.110 | SUCCESS => {
    "changed": true,
    "checksum": "51e3349a716098db6c1b017be22cacbfb2d735bb",
    "dest": "/tmp/a.playbook",
    "gid": 0,
    "group": "root",
    "md5sum": "08817797fef316008f89397ce9ed79a1",
    "mode": "0664",
    "owner": "root",
    "size": 167,
    "src": "/root/.ansible/tmp/ansible-tmp-1521703323.39-7112136437252/source",
    "state": "file",
    "uid": 0
}

11.file模块,设置文件的属性。path参数设置的文件的对象,owner参数设置文件的拥有者,group参数设置文件的组别,mode参数设置文件的权限

[[email protected] ~]# ansible webserver -m file -a ‘path=/tmp/a.playbook owner=user1 group=user1 mode=664‘
192.168.139.110 | SUCCESS => {
    "changed": true,
    "gid": 500,
    "group": "user1",
    "mode": "0664",
    "owner": "user1",
    "path": "/tmp/a.playbook",
    "size": 167,
    "state": "file",
    "uid": 500
}

 12.user/group模块,添加用户模块,name参数要添加的用户名,group参数用户的属组

[[email protected]~]#ansible 192.168.139.110 -m user -a "name=user2 group=root"

13.删除刚才添加的用户

[[email protected]~]#ansible 192.168.139.110 -m user -a "name=user2 state=absent remove=yes"

14.添加组别

[[email protected]~]#ansible 192.168.139.110 -m group -a "name=user2"

15.删除组别

[[email protected]~]#ansible 192.168.139.110 -m group -a "name=testgrp01 state=absent"

16.script模块,可以在slave对象运行master脚本

[[email protected]~]#ansible 192.168.139.110 -m script -a /tmp/b.sh

17.ansible的模块很多,还可以自定义模块。

18.写一个简单的playbook,vi /tmp/hello.playbook

- hosts: 192.168.139.110
  tasks:
    - name: say hello task
      shell: echo "Hello World"

19.执行palybook

[[email protected]~]#ansible-playbook a.playbook

20.仅供参考





























以上是关于Ansible自动化运维工具安装与使用实例的主要内容,如果未能解决你的问题,请参考以下文章

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

自动化运维工具--Ansible(安装部署模块简介与操作)

运维自动化之ansible的安装与使用(包括模块与playbook使用)

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

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

自动化运维之Ansible安装与模块应用