自动化编译神器ansible学习/快速入门

1 ansible基本架构

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

2 ansible安装

可以访问ansible官网,查看对应操作系统下载版本,以下以ubuntu系统为例
https://docs.ansible.com/

基于ubuntu
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

安装完成后主要有一下7个命令

1) ansible

-m:要使用的模块名称。
-a,–args:制定模块所需的参数。
-u:制定连接的用户名。
-h,–help显示帮助内容。
-k, 指定输入密码
-I, 指定加载的hosts文件目录,默认是加载/etc/ansible/hosts
-S 大S,指定使用su命令
-f 指定fork出的并行处理进程数,默认值是5。
-o 使用精简的输出
-vvvv 显示详细输出

ansible all -m ping
ansible all –I ./hosts –m shell –a ‘date’ -k

2) ansible-config

配置文件,默认在/etc/ansible/ansible.cfg
Inventory 主机清单
Module_utils 指定模型工具
Remote_tmp 远端服务器临时目录存放
Remote_port 远端服务器端口
/log+path 注释掉前面#号,才会存储日志
Transport 连接方式(默认为smart)
Poll_interval 异步执行任务时多久检查一次任务装填

3) ansible-galaxy

类似于github,去官网拉去所需要的模块

4) ansible-pull

将模块推到仓库存储

5) ansible-doc

帮助文档
ansible-doc –l 列出所有自己下载的模块
ansible-doc –s xx模块名 列出该模块的使用方法

6) ansible-lint

对playbook语法进行检查的命令

7) ansible-playbook

ansible核心功能

3 ansible免密登录

a. 生成秘钥

ssh-keygen –t rsa

b. 将秘钥拷贝到预管理节点上

ssh-copy-id –I /root/.ssh/id_rsa.pub xxx

即可完成主机之间的免密登录

4 ansible常用模块

4.1 Ping模块

4.2 setup模块

主要用于获取主机的相关信息
ansible all –m setup –a ‘filter=ansible_*_mb’ 获取内存信息
ansible all –m setup –a “filter=ansible_eth[0-2]”

4.3 file模块

force 强制创建软连接
group
mode 定义文件权限
owner 定义文件/目录所属的组
path
recurse 递归
src 源目录
dest 目标目录
state 状态
file 文件不存在时,也不创建
link 软连接
hard 硬连接
touch
absent 删除目录,取消连接
ansible all –m file –a “path=xxx state=touch”创建文件
ansible –i ./hosts chen-2 –m file –a “src=xxx dest=xxx state=link”创建软连接
ansible –I ./hosts chen-2 –m file –a “path=xxx state=absent” 删除

4.4 copy模块

backup 覆盖之前将备份
content
dest
directory_mode 递归
others
src
validate 验证
ansible –I hosts chen-2 –m copy –a “src=xxx dest=xxx owner=root mode=0644”

**加粗样式
**

4.5 service模块

arguments 给命令提供一些选项
enabled 是否开机启动
name 服务名称
pattern 定义模式
runlevel 运行级别
sleep 休眠
state 状态(started/sopped/reload/restarted)

在这里插入图片描述
在这里插入图片描述

4.6 cron模块

$ crontab –e 打开任务计划
backup 对远程主机上原计划内容修改前做备份
corn_file 该文件替换远程主机上的cord.d目录下的任务计划
job 要执行的任务,依赖于state
name
specia;_time 指定执行时间
state 状态
user 指定执行的用户

ansible –i hosts chen-2 –m cron –a “name=’touch a new file’ special_time=rebbot
job=/home/chen/xx.sh”
ansible –i hosts chen-2 –m cron –a “name=’touch a new file’ special_time=rebbot job=/home/chen/xx.sh corn_file=’test ansible’”

4.7 yum及get_url模块

不推荐使用,anshible只使用该模块进行下载时,下载速度比较慢,一般多使用shell脚本。
在这里插入图片描述

5 ansible-playbook

5.1 编写第一个nignx.yml文件

---
 - 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值