在百度上建网站,专业网站制作哪专业,专业微网站开发,宁波网站设计pxe 一键安装操作系统
操作系统只是提供一个平台
lnmp 需要多软件协同完成的一个简单项目
服务器正常运行 日常运维 巡检
服务器上的软件正常运行 zabbix 普罗米修斯
系统调优#xff0c;架构调优 云计算核心职能 搭建平台架构 日常运营保障 性能效率优化 相关工具 代…
pxe 一键安装操作系统
操作系统只是提供一个平台
lnmp 需要多软件协同完成的一个简单项目
服务器正常运行 日常运维 巡检
服务器上的软件正常运行 zabbix 普罗米修斯
系统调优架构调优 云计算核心职能 搭建平台架构 日常运营保障 性能效率优化 相关工具 代码管理SCMGitHub、GitLab、BitBucket、SubVersion 构建工具maven、Ant、Gradle 自动部署Capistrano、CodeDeploy 持续集成CIJenkins、Travis 配置管理Ansible、SaltStack、Chef、Puppet 容器Docker、Podman、LXC、第三方厂商如AWS 编排Kubernetes、Core、Apache Mesos 服务注册与发现Zookeeper、etcd、Consul 大数据工程师去搞 脚本语言python、ruby、shell、go 日志管理ELK、Logentries 系统监控Prometheus、Zabbix、Datadog、Graphite、Ganglia、Nagios 性能监控AppDynamics、New Relic、Splunk 压力测试JMeter、Blaze Meter、loader.io 应用服务器Tomcat、JBoss、IIS Web服务器Apache、Nginx 数据库MySQL、Oracle、PostgreSQL等关系型数据库mongoDB、redis等NoSQL数据库 项目管理PMJira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
自动化脚本 去写脚本
批量处理工具ansible 替代脚本 同一时间下发 给500 台机器 新建 /data
幂等性 1 Ansible 发展史及功能
作者Michael DeHaan Cobbler pxe kikstar 与 Func 作者ansible 的名称来自科幻小说《安德的游戏》中跨越时空的即时通信工具使用它可以在相距数光年的距离远程实时控制前线的舰队战斗2012-03-09发布0.0.1版2015-10-17Red Hat宣布1.5亿美元收购。
官网https://www.ansible.com/官方文档https://docs.ansible.com/
1.1Ansible 功能
有几千个模块挑选十几个应用 批量执行远程命令,可以对远程的多台主机同时进行命令的执行 批量安装和配置软件服务可以对远程的多台主机进行自动化的方式配置和管理各种服务 编排高级的企业级复杂的IT架构任务, Ansible的Playbook和role可以轻松实现大型的IT复杂架构 提供自动化运维工具的开发API, 有很多运维工具,如jumpserver堡垒机就是基于 ansible 实现自动化管理功能
1.2 Ansible 特性 模块化调用特定的模块完成特定任务支持自定义模块可使用任何编程语言写模块账号软件等 Paramikopython对ssh的实现PyYAMLJinja2模板语言三个关键模块 基于Python语言实现 部署简单基于python和SSH(默认已安装)agentless无需代理不依赖PKI无需ssl 安全基于OpenSSH 幂等性一个任务执行1遍和执行n遍效果一样不因重复执行带来意外情况,此特性非绝对 支持playbook编排任务YAML格式编排任务支持丰富的数据结构 剧本演员要按照 系统按照你规定的方式去执行命令 较强大的多层解决方案 role
1.3 Ansible 架构
1.3.1 Ansible组成 INVENTORYAnsible管理主机的清单 /etc/anaible/hosts 需要管理的服务清单 MODULESAnsible执行命令的功能模块多数为内置核心模块也可自定义与开发有关 PLUGINS模块功能的补充如连接类型插件、循环插件、变量插件、过滤插件等该功能不常用与开发有关 API供第三方程序调用的应用程序编程接口与开发有关
1.3.2 Ansible 命令执行来源 USER 普通用户即SYSTEM ADMINISTRATOR PLAYBOOKS任务剧本任务集编排定义Ansible任务集的配置文件由Ansible顺序依次执行通常是JSON格式的YML文件 CMDB配置管理数据库 API 调用 PUBLIC/PRIVATE CLOUD API调用
2.Ansible 安装和入门
无论版本多低只要基础功能有就行
2.1安装
[rootmcb-11-8 ~]#yum install epel-release.noarch -y 先按装epel源
[rootmcb-11-8 ~]#yum install ansible -y
2.2查看基本信息
[rootmcb-11-8 ~]#ansible --version
ansible 2.9.27config file /etc/ansible/ansible.cfgconfigured module search path [u/root/.ansible/plugins/modules, u/usr/share/ansible/plugins/modules]ansible python module location /usr/lib/python2.7/site-packages/ansibleexecutable location /usr/bin/ansiblepython version 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]2.3相关文件 /etc/ansible/ansible.cfg 主配置文件配置ansible工作特性,也可以在项目的目录中创建此文件,当前目录下如果也有ansible.cfg,则此文件优先生效,建议每个项目目录下,创建独有的ansible.cfg文 件 /etc/ansible/hosts 主机清单 /etc/ansible/roles/ 存放角色的目录 [rootmcb-11-8 ~]#vim /etc/ansible/hosts [rootmcb-11-8 ~]#ansible -m ping 192.168.11.8 -k
[rootmcb-11-8 ~]#ssh 192.168.11.4
The authenticity of host 192.168.11.4 (192.168.11.4) cant be established.
ECDSA key fingerprint is SHA256:f5CWB5B1Xrf1hEtCK5pFcGmmkQvskC9fe3Kaa7B9w.
ECDSA key fingerprint is MD5:d0:e4:b1:5f:db:31:26:bf:ec:b1:45:27:37:06:f6:95.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 192.168.11.4 (ECDSA) to the list of known hosts.
root192.168.11.4s password:
Last login: Mon Mar 11 14:54:23 2024 from 192.168.11.1
[rootmcb-11-4 ~]# exit
登出
Connection to 192.168.11.4 closed.
[rootmcb-11-8 ~]#ansible -m ping 192.168.11.4 -k
SSH password:
192.168.11.4 | SUCCESS {ansible_facts: {discovered_interpreter_python: /usr/bin/python}, changed: false, ping: pong
}
[rootmcb-11-8 ~]#③[rootmcb-11-8 ~]#ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.11.6 此脚本可以批量添加文本 2.4 ansible 主配置文件
Ansible 的配置文件可以放在多个不同地方,优先级从高到低顺序如下
2.5 inventory 主机清单文件
ansible的主要功用在于批量主机操作为了便捷地使用其中的部分主机可以在inventory 主机清单文件中将其分组组织
官方文档 https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html **默认的inventory file 位置在** font colorred**/etc/ansible/hosts**/font
ansible 默认使用 ssh 连接
所以管理前要免密登录
[rootnode1 ~]#vim /etc/ssh/ssh_config
# StrictHostKeyChecking ask
# 修改35行 StrictHostKeyChecking no[rootnode1 ~]#vim /etc/ansible/ansible.cfg
71 #host_key_checking False
开启71行的ansible的不验证即可
2.6Ansible相关工具 /usr/bin/ansible 主程序临时命令执行工具 /usr/bin/ansible-doc 查看配置文档模块功能查看工具,相当于man ansible-doc -l |grep 关键字 具体模块名字 /usr/bin/ansible-playbook 定制自动化任务编排剧本工具,相当于脚本 /usr/bin/ansible-pull 远程执行命令的工具 /usr/bin/ansible-vault 文件加密工具 /usr/bin/ansible-console 基于Console界面与用户交互的执行工具 /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
2.6.1ansible
执行临时任务一次性任务
用法
ansible host-pattern [-m module_name] [-a args]
命令 主机或者清单中的组 -m 指定模块 -a 执行的任务
选项
--version #显示版本
-m module #指定模块默认为command
-v #详细过程 -vv -vvv更详细
--list-hosts #显示主机列表可简写 --list
-C, --check #检查并不执行
-T, --timeoutTIMEOUT #执行命令的超时时间默认10s
-k, --ask-pass #提示输入ssh连接密码默认Key验证
-u, --userREMOTE_USER #执行远程执行的用户,默认root
-b, --become #代替旧版的sudo 切换
--become-userUSERNAME #指定sudo的runas用户默认为root vim /etc/sudoers 用户权限
-K, --ask-become-pass #提示输入sudo时的口令
-f FORKS, --forks FORKS #指定并发同时执行ansible任务的主机数
例子 执行返回结果 绿色执行成功并且不需要做改变的操作 黄色执行成功并且对目标主机做变更 红色执行失败
配置文件中定义了
2.6.2 ansible-doc
2.6.3 ansible-console
2.6.4 playbook
2.7 模块
2015年底270多个模块2016年达到540个2018年01月12日有1378个模块2018年07月15日1852个模块,2019年05月25日ansible 2.7.10时2080个模块2020年03月02日有3387个模块虽然模块众多但最常用的模块也就230个而已针对特定业务只用10几个模块
常用模块帮助文档参考
https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html
https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.htmlhttps://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html
https://docs.ansible.com/ansible/latest/modules/modules_by_category.html
2.7.1 Command 模块
功能在远程主机执行命令此为默认模块可忽略 -m 选项
注意此命令不支持 $VARNAME | ; 等可能用shell模块实现
注意此模块不具有幂等性
例子
[rootmcb-11-8 ~]#ansible web -a hostname [rootmcb-11-8 ~]#ansible web -a ifconfig