Hi 你好,欢迎访问!登录
当前位置:首页 - 自动化运维 - 正文 忍人所不忍,能人所不能。

Linux自动化工具之Ansible安装与简单批量管理

2020-02-21自动化运维90root30°c
A+ A-

一、安装 Ansible

[[email protected] ~]# yum -y install ansible
[[email protected] ~]# cat /etc/ansible/hosts          \\ 默认文件已备份,下面是修改后的内容

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第1张

[[email protected] ~]# ansible -i /etc/ansible/hosts vm1 -u root -m command -a 'll /home' -k    \\ 提示我们需要安装sshpass

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第2张

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# curl -O -L http://downloads.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz
[[email protected] src]# tar -zxvf sshpass-1.05.tar.gz
[[email protected] sshpass-1.05]# ./configure
[[email protected] sshpass-1.05]# make && make install

二、Ansible简单命令用法

     1. 定义被管理主机IP地址

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

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第3张

     2. 批量创建ansible.txt文件

[[email protected] ~]# ansible -i /etc/ansible/hosts vm1 -uroot -m command -a 'touch /home/ansible.txt' -k

          -i:  指定被管理主机配置文件(默认为/etc/ansible/hosts)

          vm1表示/etc/ansible/hosts文件内的组名. 组名随意创建

          -u: 指定用户(默认root)

          -m: 指定模块(默认command)

          -a: 指定执行命令

该命令简写如下: 

[[email protected] ~]# ansible vm1 -a 'touch /home/vm1.txt' -k

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第4张

     3. 批量查看/home目录下文件

[[email protected] ~]# ansible vm1 -uroot -m command -a 'ls -l /home' -k

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第5张

     4. 配置ssh密钥

          ①. 单台机器发送密钥

[[email protected] ~]# ssh-keygen -t rsa                   \\下面提示按Enter

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第6张

[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]     \\将密钥发送到被管理主机
[[email protected] ~]# ssh [email protected]                         \\测试登陆被管理主机是否需要密码

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第7张

          ②. 批量发送密钥

[[email protected] ~]# ansible vm1 -m copy -a 'src=/root/.ssh/id_rsa.pub dest=/root' -k
[[email protected] ~]# ansible vm1 -m shell -a 'date'          \\不加-k  批量查看被管理主机时间

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第8张

三、Ansible默认/etc/ansible/hosts配置文件讲解

     1. Inventory文件用来定义被管理的主机, 默认位置/etc/ansible/hosts。  一个简单的配置示例如下:

[test]
172.16.1.111
172.16.1.121
[mishare]
192.168.10.1
192.168.10.2
192.168.10.3
192.168.10.4
[tt]
192.168.20.1
192.168.20.2
192.168.20.3

说明:

[mishare], [tt]用于对主机进行分组, 并给其指定一个组名。主机可以直接使用IP地址,也可以使用域名. 还可以使用数字和字母来指定一系列连续主机. 如:

数字定义:     192.168.10.1  ...... 192.168.10.4 可以用192.168.10.[1:4]代替

字母定义:     test[1:3].90root.com相当于test1.90root.com、test2.90root.com、test3.90root.com  前提域名能够解析到IP地址.

     2.  Inventory文件自定义用户名、端口、等。

我们知道, ansible通过ssh的方式来远程管理多台主机, 所以我们需要使用ssh key的方式来进行ssh认证, 当然, 你也可以选择在使用ansible的时候加上-k选项, 来通过交互的方式输入密码。

有了ssh key以后, 我们可以直接使用ansible来进行一些简单测试, 如下:

[[email protected] ~]# ansible all -m ping      \\用于检测所有主机是否在线. all代表/etc/ansible/host文件内所有主机. all也可以改为组名

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第9张

这个时候, 默认使用的root进行所有的远程管理, 在大多数的情况下, 为了安全期间, 人们更愿意使用一个普通账号进行管理, 我们可以在所有的被管理主机上创建一个ansible用户, 并让其可以使用sudo获取管理员权限, 当然在ansible主机上也需要有这么一个用户, 并为其生成ssh key。然后通过修改/etc/ansible/ansible.cfg配置文件里的remote_user以使ansible默认使用ansible用户进行管理, 然后使用--sudo参数来获取root权限, 你也可以通过修改/etc/ansible/ansible.cfg里的remote_port来修改默认的ssh端口. ansible -m ping --sudo

如果多台主机的管理账号各不相同, 我们也可以在inventory文件里分别进行设置, 如下:

[webserver]
test1.90root.com ansible_ssh_user=work
192.168.1.12 ansible_ssh_user=ansible
test2.90root.com ansible_ssh_user=work ansible_ssh_port=7789
test3.90root.com ansible_ssh_user=work ansible_ssh_port=7789 ansible_ssh_private_key_file=/home/work/.ssh/id_rsa.pub

简单说明:

ansible_ssh_user 指定被管理主机的账号

ansible_ssh_host 指定被管理的主机

ansible_ssh_port 指定被管理的主机ssh端口

ansible_ssh_private_key_file 指定key文件

ansible_key_checking=False 当第一次连接远程主机时, 会提示输入yes/no, 跳过此环节

     3.  Inventory文件内, 主机之间还可以嵌套, 需要使用关键字children, 如下

[[email protected] ~]# cat /etc/ansible/hosts
[vm:children]
vm2
vm3
[vm2]
192.168.15.12
[vm3]
192.168.15.13
[[email protected] ~]# ansible vm -m ping
[[email protected] ~]# ansible vm2 -m ping
[[email protected] ~]# ansible vm3 -m ping

Linux自动化工具之Ansible安装与简单批量管理 Ansible Linux 自动化运维 第10张

  移步手机端
Linux自动化工具之Ansible安装与简单批量管理

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>


  用户登录