ansible的安装和部署

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44889616/article/details/99053144

一.ansible介绍

简介:

  • 开源部署工具
  • 开发语言:Python
  • 特点:SSH协议通讯,全平台,无需编译,模块化部署管理
  • 作用:推送Playbook进行远程节点快速部署

优点:

  • 轻量级无客户端(Agentless)
  • 使用Playbook作为核心配置结构,统一的脚本格式批量化部署
  • 完善的模块化扩展,支持目前主流的开发场景
  • 强大的稳定性和兼容性

二.安装ansible

1.安装ansible

[root@server1 ~]# ls
ansible-2.7.8-1.el7.noarch.rpm	     ##ansible安装包,下面的是安装需要解决的依赖性
libtomcrypt-1.17-25.el7.x86_64.rpm
libtommath-0.42.0-5.el7.x86_64.rpm
python2-crypto-2.6.1-13.el7.x86_64.rpm
python2-jmespath-0.9.0-1.el7.noarch.rpm
python-httplib2-0.9.2-0.1.el7.noarch.rpm
python-keyczar-0.71c-2.el7.noarch.rpm
python-paramiko-2.1.1-0.9.el7.noarch.rpm
sshpass-1.06-1.el7.x86_64.rpm
[root@server1 ~]# yum install -y *

在这里插入图片描述
2.查看版本

[root@server1 ~]# ansible --version

在这里插入图片描述
3.创建用户develops用来管理ansible

[root@server1 ~]# cd /etc/ansible/
[root@server1 ansible]# ls
ansible.cfg  hosts  roles
[root@server1 ansible]# useradd devlops
[root@server1 ansible]# su - devlops 
[devlops@server1 ~]$ ls
[devlops@server1 ~]$ mkdir ansible
[devlops@server1 ~]$ ll /etc/ansible/ansible.cfg 
-rw-r--r-- 1 root root 20277 Feb 22 07:04 /etc/ansible/ansible.cfg			##全局配置
[devlops@server1 ~]$ cd ansible/
[devlops@server1 ansible]$ ls
[devlops@server1 ansible]$ pwd
/home/devlops/ansible
[devlops@server1 ansible]$ vim ansible.cfg
[devlops@server1 ansible]$ cat ansible.cfg 
[defaults]
inventory = ./inventory
[devlops@server1 ansible]$ cat ansible.cfg 	
[defaults]
inventory = ./inventory				##读取当前目录下的inventory
[devlops@server1 ansible]$ vim inventory		##主机host清单
[devlops@server1 ansible]$ cat inventory 
[test]
172.25.31.2

[prod]
172.25.31.3

4.配置免密

[devlops@server1 ansible]$ ssh-keygen 
[devlops@server1 ansible]$ ssh-copy-id 172.25.31.2
[devlops@server1 ansible]$ ssh-copy-id 172.25.31.3

在这里插入图片描述
在这里插入图片描述测试:
在这里插入图片描述

最好配置解析
[devlops@server1 ansible]$ ssh server2
[devlops@server1 ansible]$ ssh server3

在这里插入图片描述
5.为client:serve2、server3创建用户devlops

server2:

[root@server2 ~]# useradd devlops
[root@server2 ~]# passwd devlops 
Changing password for user devlops.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

server3:

[root@server3 ~]# useradd devlops
[root@server3 ~]# passwd devlops 
Changing password for user devlops.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

6.测试

[devlops@server1 ansible]$ ansible all -m ping			##-m指定模块
[devlops@server1 ansible]$ ansible all -m ping -u devlops
[devlops@server1 ansible]$ ansible all -m ping -u root		#-u切换用户,默认是root。因为免密是dovelops操作的,所以root不能免密

在这里插入图片描述

在这里插入图片描述

ansible常用参数及命令:

参数 功能
-m 要执行的模块,默认为command
-a 指定模块的参数
-u ssh连接的用户名,默认用root,ansible.cfg中可以配置
-b,–become 变成那个用户身份,不提示密码
-k 提示输入ssh登录密码,当使用密码验证的时候用
-s sudo运行
-U sudo到哪个用户,默认为root
-K 提示输入sudo密码,当不是NOPASSWD模式时使用
-C 只是测试一下会改变什么内容,不会真正去执行
-c 连接类型(default=smart)
-f fork多少进程并发处理,默认为5个
-i 指定hosts文件路径,默认default=/etc/ansible/hosts
-I 指定pattern,对已匹配的主机中再过滤一次
-list-host 只打印有哪些主机会执行这个命令,不会实际执行
-M 要执行的模块路径,默认为/usr/share/ansible
-o 压缩输出,摘要输出
–private-key 私钥路径
-T ssh连接超时时间,默认是10秒
-t 日志输出到该目录,日志文件名以主机命名
-v 显示详细日志

猜你喜欢

转载自blog.csdn.net/weixin_44889616/article/details/99053144