ansible从入门到精通 从安装到使用

本文中引用的部分图片来自网络。

ansible官网地址
https://docs.ansible.com/
中文网(马哥教育)
http://www.ansible.com.cn/

有服务器两台
192.168.23.131
192.168.23.134

安装

rpm -Uvh http://mirrors.ustc.edu.cn/epel/epel-release-latest-7.noarch.rpm
yum install epel-release -y
yum install ansible

默认会在/etc/ansible/目录下

校验版本
ansible --version

使用

创建秘钥
ssh-keygen -t rsa
一路回车
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.23.134
用户权限部分
visudo
修改
%wheel这一行,然后把账户[testuser]添加到wheel组,aG保留原来组
这样使用sudo就不需要再输入密码
usermod -aG wheel testuser

本文选择创建/root/ansible目录
创建host文件和roles目录
编辑host
[group]
192.168.23.131

测试
ansible all -m ping
ansible -i hosts all -u root -m shell -a "mkdir -p /root/ansible/roles;echo>hello.txt;"
ansible [server/IP] -m ping -i hosts

分组

[db_server]
192.168.1.1
192.168.1.2:[22]

[run_server]
192.168.1.3:[ssh端口]

[all_servers]
192.168.1.[1:3]  #这里是1到3
[subnet]
csdn[a:f].com
# csdna.com, csdnb.com...

配置文件部分
/etc/ansible/ansible.cfg

在这里插入图片描述

在这里插入图片描述
doc命令
ansible-doc -l |grep maven
可以使用以下命令进行测试
ansible-doc ping

在这里插入图片描述
ansible默认模块是command
ansible执行命令,-a 为参数,server为需要执行的主机分组
ansible server -m command -a’ls /home’;

ansible的Host-pattern

在这里插入图片描述

ansible命令执行过程

也可以用-v -vv…来查看
在这里插入图片描述

ansible常用模块

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

在这里插入图片描述

模块使用

command
ansible all -a 'ls /home';

shell
ansible all -m shell -a 'echo hostname';

script
ansible all -m script -a '/root/ansible/tmp.sh';

copy
ansible all -m copy -a 'content="hello\thanks\n" dest=/data/f2-ansible.txt'

系列命令

https://galaxy.ansible.com
在这里插入图片描述
在这里插入图片描述

yml文件加密解密

密码忘记了你就凉凉了

在这里插入图片描述

交互式工具

在这里插入图片描述

YAML介绍

在这里插入图片描述
在这里插入图片描述
list
在这里插入图片描述
字典
在这里插入图片描述
在这里插入图片描述

Playbook核心元素

在这里插入图片描述
playbook基础组件
在这里插入图片描述

task任务

每个任务的action中只能有一个操作
既:一个- name下只能有一个模块,多个操作的需要写多个- name

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

运行playbook

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

大概用法,其中notify可以写多个,对应多个handlers【name】

在这里插入图片描述

tags使用

用于ansible-playbook执行单个任务
在这里插入图片描述

 执行多个标签中间使用[,]隔开

playbook变量使用

在这里插入图片描述

将参数定义到文件中

在这里插入图片描述

新建参数文件:vars.yml

param1: hello
param2: world

新建执行文件:testvars.yml

---
- hosts: all
  remote_user: root
  vars_files:
    - vars.yml
  tasks:
   - name: mkdir{{param1}}
     shell: mkdir /root/{{param1}}
   - name: mkdir{{param2}}
     shell: mkdir /root/{{param1}}/{{param2}}

执行
ansible-playbook testvars.yml

使用模板

在这里插入图片描述

Template

需要配合 模块template.j2文件使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
when判断
在这里插入图片描述
在这里插入图片描述

迭代机制

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

在这里插入图片描述

循环

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

角色Roles

在这里插入图片描述

roles文件夹创建方法
推荐目录:/etc/ansible/roles下,可以配置ansible.conf文件修改,目录位置并不是必须的,可以任意地方。
在这里插入图片描述

roles目录编排规则

在这里插入图片描述

roles文件目录

在这里插入图片描述

roles各个目录的作用

在这里插入图片描述

创建角色

在这里插入图片描述

角色示例

在这里插入图片描述

调用角色

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

给角色加标签

在这里插入图片描述

在这里插入图片描述

挑选指定的标签执行

只执行文件中的web任务:
ansible-playbook -t web nginx_roles.yml

角色和when组合使用

在这里插入图片描述

其中使用hanlder方式

直接在notify中引用handler文件中的name就可以了,不需要再额外的引用。(教程是这么说的)
但是handlers中的文件应该有一个main.yml引用其他handler.yml文件,或者直接在main.yml文件中编写handler,不然找不到对应的handler操作。

完整的roles结构

在这里插入图片描述

角色练习

git:https://gitee.com/csdnuser/ansible.git
描述
通过ansible-playboot nginx_role.yml来触发roles/nginx下的任务
其中nginx_role.yml需要和roles同级

2.接下来练习第二种角色使用方法

在task中指定需要调用的某个roles名字
其中role对应的名字是文件夹的名字,其他的文件写法不变
调用多个role的话写多个就好了

在这里插入图片描述
调用的httpd_role.yml
在这里插入图片描述
–此处提交git记录

调用其他角色中的task文件

这种情况注意路径问题
在这里插入图片描述

最后是视频中的推荐资料

教程是腾讯课堂看到的《马哥教育》,讲的比较清晰的一篇教程。虽然不认识这个作者,但是还是给他打个广告点个赞。
教程最后推荐的几个网址
在这里插入图片描述

http://galaxy.ansible.com
https://galaxy.ansible.com/explore#这个好像访问不了
http://ansible.com.cn
https://github.com/ansible/ansible
https://github.com/ansible/ansible-examples

标题剩下的自己去发现星辰大海吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值