当前位置: 首页>编程语言>正文

ansible怎么查常用关键字 ansible的三个关键模块

ansible的作用

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

Ansible基本架构

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_vim,第1张

核心:ansible
核心模块(Core Modules):这些都是ansible自带的模块
扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
插件(Plugins):完成模块功能的补充
剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
主机群(Host Inventory):定义ansible管理的主机

更多信息详见官网

ansible环境的搭建

基础环境:

主机

ip

角色

server1

172.25.26.1

ansible服务端

server2

172.25.26.2

远程客户端

server3

172.25.26.3

远程客户端

1.下载安装包,安装软件

[root@server1 ansible]# ls
ansible-2.7.8-1.el7.noarch.rpm
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 ansible]# yum install -y *.

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_ansible怎么查常用关键字_02,第2张

安装ansible。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_03,第3张

查看主目录。

2.部署目录和文件

[root@server1 ansible]# useradd devops
[root@server1 ~]# su - devops
[devops@server1 ~]$

创建一个普通用户并切换用户,因为接下来的操作都要用普通用户来完成。

接下来在server2和server3也创建同样的普通用户。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_ansible怎么查常用关键字_04,第4张

创建用户并配置密码。

[devops@server1 ~]$ mkdir ansible

创建一个目录用来存放ansible服务的文件。

[devops@server1 ansible]$ vim ansible.cfg
[defaults]

inventory = inventory

写主配置文件。

[devops@server1 ansible]$ vim inventory
[web]
server2

[db]
server3

[webservers:children]
web
db

定义server2主机在web组,server3主机在db组。web组和db组又属于webservers组。
由于ansible的远程部署是通过ssh进行通信的,所以要做一下免密。

[devops@server1 ~]$ ssh-keygen

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_vim_05,第5张

[devops@server1 ~]$ ssh-copy-id server2
[devops@server1 ~]$ ssh-copy-id server3
[devops@server1 ~]$ ansible all --list-host
  hosts (2):
    server2
    server3

列出主机列表。

[devops@server1 ~]$ ansible all -m ping

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_vim_06,第6张

检测连通性,这里的-m选项是用来指定调用模块的,这里调用的是ping模块。

ansible的常用模块和作用

在使用ansible的时候我们经常要查看帮助,我们常常使用ansible-doc 后面加模块查看帮助,如:

[devops@server1 ~]$ ansible-doc ping

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_vim_07,第7张

查看ping模块。

[devops@server1 ansible]$ ansible web -a 'df -h'

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_vim_08,第8张

查看web组主机的挂载信息,使用-a选项后可以使用shell环境下的命令。

[devops@server1 ansible]$ ansible web -m copy -a 'src=/etc/passwd dest=/tmp/passwd'

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_python_09,第9张

copy模块可以复制文件,这里将web组下的server2主机中的/etc/passwd文件复制到了tmp目录,其中src指定源路径,dest指定目标路径。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_10,第10张

在server2的/tmp目录下查看到了passwd文件。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_ansible怎么查常用关键字_11,第11张

查看权限。

[devops@server1 ansible]$ ansible web -m file -a 'dest=/tmp/passwd mode=600'

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_12,第12张

修改文件权限,使用file模块指定文件。

下面我们来看看常用的yum模块,由于yum命令只有root能使用,所以这里要先在远程主机上做一下sudo权限的管理。

[root@server2 tmp]# vim /etc/sudoers
devops  ALL=(ALL)       NOPASSWD: ALL

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_ansible怎么查常用关键字_13,第13张

在server2和server3都要做。

[devops@server1 ansible]$ ansible web -m yum -a 'name=httpd state=present' -b

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_ansible怎么查常用关键字_14,第14张

在web组的主机server2安装httpd,推送时需要加入-b选项。

[devops@server1 ansible]$ vim ansible.cfg
[defaults]

inventory = inventory

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
[devops@server1 ansible]$ ansible web -m yum -a 'name=httpd state=present'

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_15,第15张

修改主配置文集之后不用在加-b选项了。

[devops@server1 ansible]$ ansible web -m service -a 'name=httpd state=started'

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_python_16,第16张

使用service指定服务,state指定服务状态,这里开启了web组主机的httpd服务。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_17,第17张

在server2查看,服务已经打开。

[devops@server1 ansible]$ ansible web -m copy -a \
'content="server2.hang.com\n" dest=/var/www/html/index.html'

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_vim_18,第18张

使用copy模块在远程主机写入文件,这里写了一个httpd的发布目录。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_ansible怎么查常用关键字_19,第19张

访问到内容,说明写入成功。

[devops@server1 ansible]$ ansible web -m service -a \
'name=firewalld state=started enabled=true'

开启firewalld并设置开机自启。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_20,第20张

因为开启了火墙,所以访问不到server2了。

要想再次访问到我们就要对web组的server2主机进行firewalld的配置了,这里需要调用firewalld模块。

[devops@server1 ansible]$ ansible-doc firewalld

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_python_21,第21张

不知道参数怎么设置可以先查看这个模块的帮助。

[devops@server1 ansible]$ ansible web -m firewalld \
-a 'service=http state=enabled permanent=yes immediate=yes'

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_22,第22张

允许http服务。

ansible怎么查常用关键字 ansible的三个关键模块,ansible怎么查常用关键字 ansible的三个关键模块_配置文件_23,第23张

再次访问成功。



https://www.xamrdz.com/lan/54v1938480.html

相关文章: