阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

自动化运维之Ansible的安装部署与命令模块

264次阅读
没有评论

共计 2694 个字符,预计需要花费 7 分钟才能阅读完成。

  • Ansible 简介

Ansible 是新出现的自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Ansible 是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是 ansible 所运行的模块,ansible 只是提供一种框架。

主要包括:

(1) 连接插件 connection plugins:负责和被监控端实现通信;

(2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3) 各种模块核心模块、command 模块、自定义模块;

(4) 借助于插件完成记录日志邮件等功能;

(5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

  • 搭建环境

管理端:CentOS7-1 192.168.177.145

被管理端:centos7-2 192.168.177.135

被管理端:centos7-3 192.168.177.132

Ansible 安装

192.168.177.145:

# systemctl stop firewalld.service  // 关闭防火墙
# setenforce 0
# yum install -y epel-release  // 安装 epel 源
# yum install ansible -y   // 安装 Ansible
# vim /etc/ansible/hosts 
  [abc]
  192.168.177.135
  [mysql]
  192.168.177.132
# ssh-keygen -t rsa       // 设置密钥对
# ssh-copy-id root@192.168.177.135
# ssh-copy-id root@192.168.177.132  // 配置密钥对
# ssh-agent bash    // 免交互代理
# ssh-add

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

192.168.177.135(另一台也一样):

# systemctl stop firewalld.service  // 关闭防火墙
# setenforce 0
# cd ~/.ssh

自动化运维之 Ansible 的安装部署与命令模块

Ansible 命令行模块

command 模块

命令格式:ansible [主机] [-m 模块] [-a args]

# ansible 192.168.177.135 -m command -a 'date'   // 指定 ip 执行 date
# ansible mysql -a 'date'   // 指定分类执行 date

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

cron 模块

用于定义任务计划

两种状态(state):present 表示添加(可以省略),absent 表示移除。

# ansible-doc -s cron      // 查看 cron 模块信息
# ansible abc -m cron -a 'minute="*/1"job="/usr/bin/echo nihao"name="test nihao"'  // 添加周期性计划任务
# ansible abc -a 'crontab -l'
# ansible abc -m cron -a 'name="test nihao"state=absent'   // 移除计划任务,假如该计划任务没有取名字,name=None 即可 

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

user 模块

用于创建新用户和更改删除已存在的用户

user 模块是请求的是 useradd, userdel, usermod 三个指令

# ansible-doc -s user
# ansible mysql -m user -a 'name=zhangsan'  // 创建 zhangsan
# ansible mysql -m user -a 'name=zhangsan state=absent'   // 删除 zhangsan

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

group 模块

对用户组进行管理

group 模块请求的是 groupadd, groupdel, groupmod 三个指令

# ansible mysql -m group -a 'name=test gid=306 system=yes'  // 创建 test 组
# ansible mysql -m user -a 'name=wang' // 创建用户 wang
# ansible mysql -m group -a 'name=test1 gid=506 system=yes'  // 创建 test1 组
# ansible mysql -m user -a 'name=wang uid=506 group=test1 system=yes' // 将 wang 添加到 test1 组 

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

copy 模块

用于实现文件复制和批量下发文件

# ansible-doc -s copy
# ansible abc -m copy -a 'src=/etc/fstab dest=/opt/fstab.bk owner=root mode=644' // 将 /etc/fstab 复制到被管理端 /opt 下
# ansible abc -a 'cat /opt/fstab.bk' // 查看 

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

file 模块

用于设置文件属性

# ansible mysql -m file -a 'path=/opt/test.txt state=touch'  // 创建空文件
# ansible mysql -m file -a 'path=/opt/test.txt owner=wang group=test1 mode=666'   // 设置文件的属主,属组和权限
# ansible mysql -m file -a 'src=/opt/test.txt path=/opt/test.txt.link state=link'  // 创建链接性文件
# ansible mysql -m copy  -a 'content="hello"dest=/opt/test.txt'  // 在 test.txt 中写入内容 

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

ping 模块

用于测试指定主机的连通性

# ansible all -m ping

自动化运维之 Ansible 的安装部署与命令模块

yum 模块

# ansible abc -m yum -a 'name=httpd' //yum 安装 httpd 服务 

自动化运维之 Ansible 的安装部署与命令模块

service 模块

用来控制管理服务的运行状态

# ansible abc -m service -a 'name=httpd enabled=true state=started'  // 开机自启动 

自动化运维之 Ansible 的安装部署与命令模块
自动化运维之 Ansible 的安装部署与命令模块

shell 模块

在被管理端运行命令

# ansible mysql -m shell -a 'echo"abc123"| passwd --stdin wang'  // 创建密码 

自动化运维之 Ansible 的安装部署与命令模块

script 模块

将本地脚本复制到被管理端运行

# ansible-doc -s script
# vi /opt/test.sh
#!/bin/bash
echo "hello ansible from script"> /opt/script.txt
# chmod +x /opt/test.sh
# ansible mysql -m script -a '/opt/test.sh'

自动化运维之 Ansible 的安装部署与命令模块

setup 模块

# ansible mysql -m setup           // 获取 mysql 组主机的 facts 信息 

自动化运维之 Ansible 的安装部署与命令模块

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2694字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中