1.什么是ansible?

ansible是一款自动化运维工具,可批量集群中的主机进行部署管理

ansible的使用场景:

     • 应用代码自动化部署

     • 系统管理配置自动化

     • 支持持续交付自动化

ansible执行自动化任务方式:

执行方式有两种

     • ad-hoc

      Ad-Hoc应用的场景

           • 情景1:节假日将近,我们需要关闭所有不必要的应用服务器,并且对所有服务器进行借钱健康检查

           • 情景2:临时更新Apache或者Nginx的配置文件,且需要同时将其分发至所有更新该配置的web服务器

     • playbook

           • 情景1:新购置的服务器在安装完系统后需要做一些固化的初始环境配置,诸如:定制防火墙策略、添加NTP时间同步配置、添加EPEL源等

           • 情景2:每周定期对生产环境发布更新代码

资源站点:

• https://docs.ansible.com/

• https://github.com/ansible/ansible

2.Ansible的工作模型

Ansible系列1

Ansible系列1

Ansible系列1

3.安装部署Ansible

  • 基于epel源进行安装
  • 修改ansible配置文件
  • 修改ansible的主机清单文件
  • 测试效果

相关文件和目录

  • 配置文件目录:/etc/ansible
  • 执行文件目录:/usr/bin
  • lib库依赖目录:/usr/lib/python2.7/site-packages/ansible
  • help文档目录: /usr/share/doc/ansible-2.4.2.0/

ansible的主配置文件,主要配置信息:

[defaults]

#inventory      = /etc/ansible/hosts

#forks          = 5

#sudo_user      = root

#remote_port    = 22

#roles_path    = /etc/ansible/roles

#host_key_checking = False

#module_name = command

 

[privilege_escalation]

#become=True

#become_method=sudo

#become_user=root

#become_ask_pass=False

hosts文件是主机清单文件,主要定义被管理的主机

可以直接用ip来定义一个主机

• 192.168.253.177
 

也可以使用hostname(主机名)后面跟ssh的端口,默认是22

localhost.localdomain :22
 

定义一台主机组webservers

[webservers]

192.168.253.177

192.168.189.178

定义主机清单,可能用到两个参数

• ansible_ssh_port ssh端口号.如果不是默认的端口号,通过此变量设置.
 
• ansible_ssh_user:默认的 ssh 用户名
 

[webservers]

192.168.253.177 ansible_ssh_port=232 ansible_ssh_user=tuser

192.168.253.178

ad-hoc命令格式:

ad-hoc的命令格式:ansible  <host-pattern>  [-f forks] [-m module_name]  [-a args]

• <host-pattern>:是Inventory定义的主机和主机组,可以为iphostnameInventory中的group组名、可以使用“.”、“*”或者“:”等特殊字符的匹配型字符串,all设置所有
• [-f forks]:指明每批管控多少主机,默认为5个主机一批次
• [-m module_name]:使用何种模块管理操作,所有的操作都需要通过模块来指定,默认是command模块
• [-a args]:指明模块专用参数;args一般为key=value格式

 

开始安装:

[[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo    #使用阿里的源准备安装ansible工具

[[email protected] ~]# yum install ansible -y      #安装

[[email protected] ~]# vim /etc/ansible/ansible.cfg     #ansible的主配置文件

host_key_checking = False      #禁用查看指纹信息

[[email protected] ~]# vim /etc/ansible/hosts    #被管理主机清单文件

[webserver]              #定义了一个主机组
192.168.253.177
192.168.253.178

[[email protected] ~]# ssh-****** -t rsa    #在管理节点,生成秘钥对

[[email protected] ~]# cd .ssh/    #进入秘钥对存放位置
[[email protected] .ssh]# ssh-copy-id -i id_rsa.pub [email protected]   #讲公钥文件发送到被管理节点

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

在被管理节点也安装ansible

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

[[email protected] ~]# ansible webserver -m ping    #检测被管理主机是否在线
192.168.253.178 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

相关文章:

  • 2021-09-24
  • 2021-06-30
  • 2022-02-05
  • 2021-11-17
  • 2021-07-20
  • 2021-10-08
  • 2021-11-12
  • 2021-12-18
猜你喜欢
  • 2021-12-26
  • 2021-12-10
  • 2021-12-22
  • 2021-10-23
  • 2021-12-30
  • 2021-11-18
  • 2021-05-29
相关资源
相似解决方案