Linux小白必备实战技能
Linux小白必备实战技能
Ansible是一种常用的自动运维化工具,基于python开发,分布式,无需客户端,轻量级,配置语言采用YAML。
1.模块化:调用特定的模块,完成特殊的任务。
2.Paramiko(python对ssh的实现),PyYaml,jinja2(模块语言)三个关键模块。
3.支持自定义模块,可使用任何编程语言写模块。
4.基于python语言实现。
5.部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖KPI(无需SSL)。
6.安全,基于OpenSSH。
7.幂等性:一个任务执行一次和执行n遍效果一样,不因重复执行带来意外情况。
8.支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构。
9.较强大的多层解决方案role。
1.自动化部署APP。
2.自动化管理配置项。
3.自动化的持续交付。
4.自动化的云服务管理。
1> USER,普通用户,即SYSTEM ADMINISTRATOR。
2> CMDB(配置管理数据库) API 调用。
3> PUBLIC/PRIVATE CLOUD API调用 (公有私有云的API接口调用)。
4> USER-> Ansible Playbook -> Ansibile。
利用ansible实现管理的方式:
1> Ad-Hoc 即ansible单条命令,主要用于临时命令使用场景。
2> Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前期的规划过程。
Ansible-playbook(剧本)执行过程:
将已有编排好的任务集写入Ansible-Playbook。
通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行。
HOSTS主机
NETWORKING网络设备
注意事项:
1.执行ansible的主机一般称为主控端,中控,master或堡垒机。
2.主控端Python版本需要2.6或以上。
3.被控端Python版本小于2.4需要安装python-simplejson。
4.被控端如开启SELinux需要安装libselinux-python。
5.windows不能做为主控端 ansible不是服务,不会一直启动,只是需要的时候启动。
yum安装:
EPEL源:yum -y install epel-release yum install ansible -y(只推荐这一种方法)
配置文件:
/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性(一般无需修改) /etc/ansible/hosts 主机清单(将被管理的主机放到此文件) /etc/ansible/roles/ 存放角色的目录
程序:
/usr/bin/ansible 主程序,临时命令执行工具 /usr/bin/ansible-doc 查看配置文档,模块功能查看工具 /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台 /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具 /usr/bin/ansible-pull 远程执行命令的工具 /usr/bin/ansible-vault 文件加密工具 /usr/bin/ansible-console 基于Console界面与用户交互的执行工具
列出所有主机:ansible all --list-hosts。
e.g.1 打开三台机器,第一台安装ansible工具,编辑/etc/ansible/hosts文件,在文件末行添加子目录ip地址。
[webserves]是为了便捷地使用主机,在inventory file中设置的分组命名。
然后将第一台机器的公钥拷贝到两个子网中:
cd /root/.ssh/ ll ssh-copy-id root@192.168.218.11 id_rsa.pub
1.在管理节点生成公钥 ssh-keygen; 路径为 :
~/.ssh/id_rsa.pub
2.添加目标节点的SSH认证信息,在管理节点执行如下命令 :
ssh-copy-id root@目标节点ip
第三步为测试:
ansible+分组名称或all -m ping ansible all -m ping -k 连接时需要输入密码,默认为key验证 ansible “*” -m ping 连接所有的ip地址 ansible webservers --list-hosts 列出这组的ip地址 ansible “lvs-servers:webservers” -m ping : 表示或的关系 ansible “lvs-servers:&webservers” -m ping :& 表示逻辑与关系 ansible ‘lvs-servers:!webservers’ -m ping :! 逻辑非关系(此处用单引号) ansible webservers -m ping -v 查看详细执行过程 ansible all -m ping -u wang -k 以wang用户执行ping存活检测 e.g.2 开启三台机器,在第一台安装ansible,另外两台创建用户xingyun useradd xingyun cat /etc/passwd | grep xingyun passwd wang (设置用户wang的密码)
配置两个子网中xingyun用户的sudo权限:
vi /etc/sudoers (在末行添加)
以xingyun sudo到root执行ping存活检测:
ansible all -m ping -u xingyun -K -b
ping模块测试链接:
ansible 192.168.218.11,192.168.218.12 -m ping -k
在另外两台子网中创建用户wang, 以xingyun sudo至wang用户来执行ping存活检查:
ansible all -m ping -u xingyun -K -b --become-user=wang
推荐阅读
>>>新手必备-Linux系统安装配置+Xshell远程连接
运维界升职加薪必备的云计算技术,你学了吗?
学完高级运维云计算课程之后,你可以:
跨越90%企业的招聘硬门槛
增加70%就业机会
拿下BAT全国TOP100大厂敲门砖
体系化得到运维技术硬实力
技术大佬年薪可达30w+