|NO.Z.00004|——————————|NavigationLog|——|Ansible|

一、概述:
### --- 概述:

~~~		Ansible自动化运维工具简介及特点剖析
~~~		Ansible自动化运维工具原理和有点深入理解
~~~		Ansible模块企业实战工具及命令演练
~~~		Ansible自动化运维工具playbook应用实战
~~~		详解Ansible配置文件和高级性能调优
二、linux云计算工程师三大和核心职能:
### --- 平台架构组建:
~~~		负责参与并审核架构设计的合理性,搭建运维平台管理架构,通过开源解决方案,
~~~		以确保在产品发布之后能高效稳定的运行,
~~~		保障并不断提升服务的可用性,确保用户数据安全,提升用户体验。

### --- 日常运营保障:
~~~		负责用运维技术或者运维平台确保产品可以高效的发布上线,
~~~		负责保障产品7*24小时稳定运行,在此期间可以对出现的问题可以快速定位并解决,
~~~		在日常工作中不断优化系统架构和部署的合理性,以提升系统服务的稳定性,

### --- 性能效率优化:
~~~		用自动化工具或者运维平台提升软件在研发周期中的工程效率,不断优化系统架构,
~~~		提升部署效率,优化资源利用率,支持产品的不断迭代,需要不断的进行架构的优化调整,
~~~		以确保整个产品能够在功能不断丰富和复杂的条件下,同时保证高可用性。
### --- Ansible是什么:

~~~		Ansible简单说是一个配置管理系统(configuration management system),
~~~		你只需要可以使用ssh访问你的服务器或者设备就行。
~~~		它也不同于其他工具,因为他使用推送的方式,而不是puppet等。
~~~		那样使用拉取安装agent的方式,你可以将代码部署到任意数量的服务器上!
### --- Ansible能做什么:

~~~		Ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的公工作;
~~~		比如:同时在100台服务器上安装nginx服务,并在安装后启动他们
~~~		比如:将某个文件一次性拷贝到100台服务器上
~~~		比如:每当有新服务器加入工作环境是,
~~~		你都要为新服务器部署某个服务,也就是你需要经常重复的完成相同的工作。
~~~		这些场景我们都可以使用到Ansible
三、Ansible架构:
### --- Ansible架构:

~~~		右边绿色是我们被管理的主机(虚拟机、物理机、云主机等)
~~~		从以上架构图中可以看出Ansible是由主机清单(配置),playbook(配置),
~~~		以及各模块插件组成,简单的说就是,
~~~		用户(管理员)通过Ansible的主机清单配置或playbook配置(一组任务)
~~~		调用Ansible的各种模块及参数来对,清单中的主机进行统一的管理。
~~~		Ansible可以工作在linux、BSD、Mac OS、等平台,
~~~		对Python环境的版本最低要求为Python2.6以上,如果操作系统Python软件版本为2.4,
~~~		需要升级方可使用Ansible工具;

四、配置Ansible实战:
### --- 硬件环境:

~~~		Ansible-server端:        192.168.1.60
~~~		Ansible-client端:          192.168.1.70
~~~		Ansible-client端:           192.168.1.71
~~~		Ansible-client端:            192.168.1.72
### --- 安装方式:

~~~		源码安装 ,pip,yum安装;
~~~		Centos Red Hat操作系统可以直接基于YUM工具自动安装Ansible,
~~~		Centos6.x或者Centos7.x安装前,需要安装epel扩展源,代码如下:

五、Ansible部署
### --- 环境准备
~~~		# 安装扩展源

[root@localhost ~]# yum -y install epel-release   				// 安装扩展源
[root@localhost ~]# yum install -y ansible
 (11/15): ansible-2.9.14-1.el7.noarch.rpm  

[root@localhost ~]# ansible --version    					// 查看它的版本
ansible 2.9.14 
python version = 2.7.5 
~~~		# 可以查看到它的配置文件
 
[root@localhost ~]# ll /etc/ansible/
-rw-r--r-- 1 root root 19985 108 01:35 ansible.cfg        			// 此文件为Ansible的主配置文件
-rw-r--r-- 1 root root  1016 108 01:35 hosts			     	// 定义主机组的
drwxr-xr-x 2 root root     6 108 01:35 roles				// 定义不同角色
### --- Ansible主机清单

~~~		# Ansible主机清单:
~~~		# Ansible远程批量管理,其中执行命令是通过Ad-Hoc来完成,
~~~		# 也几点对点单条执行命令,能够快速执行,而且不需要保存执行的命令,
~~~		# 默认hosts文件配置主机列表,可以配置分组,可以定义各种ip及规则,hosts列表默认配置。
[root@localhost ansible]# cat hosts |more    					// 查看Ansible主机清单
[root@localhost ansible]# vim hosts 
### ---  them like this:
[web]										// 定义了一个组名
192.168.1.[70:72]       							// 定义了组内的主机、	70/71/72主机
[web]										// 或者这样定义也可以
192.168.1.70
192.168.1.71
192.168.1.72
### --- ping模块实战

~~~		# Ansible最基础的模块为ping模块,主要用判断客户端是否在线,用ping本身的服务器,范沪指changed ping;
~~~		# ansible web -m ping  //使用Ansible对web组内的主机进行ping模块测试
[root@localhost ansible]# ansible web -m ping
Are you sure you want to continue connecting (yes/no)?      			// 提示没有配置秘钥对,解决方案针对问题一

[root@localhost ~]# ansible web -m ping
192.168.1.70 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.72 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.71 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
### --- command模块:

~~~		# command模块:
~~~		# Ansible command模块为Ansible默认模块,主要用于执行linux命令,
~~~		# 可以在直接管理远程服务器,任务操作等。
[root@localhost ~]# ansible web -m command -a "date"
192.168.1.71 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.70 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.72 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
 
[root@localhost ~]# ansible web -m command -a "ping -c 1 www.baidu.com" 
[root@localhost ~]# ansible web -m command -a "yum install httpd -y"
[root@localhost ~]# ansible web -m command -a "systemctl start httpd.service"
[root@localhost ~]# ansible web -m command -a "ss -tan"				// 查看端口
六、Ansible Playbook应用:
### --- Ansible Playbook应用:
### --- Playbook由一个或多个“paly”组成的列表,
### --- play的主要功能Ansible中的Task定义好的角色,指定剧本对应的服务器组;
### --- 远程安装nginx服务器脚本;playbook代码如下;

[root@localhost ~]# vim nginx_install.yaml
~~~ 脚本内容;
-host:web
 remote_user:root
 tasks:
 -name:cvc Pcre-devel and Zlib LIB Install.
  yum:name=pcre-devel,pcre,zlib-devel,gcc-c++ state=installed
 -name:cvc Nginx WEB Server Install Process.
 shell:cd /tmp;rm -rf nginx-1.15.0.tar.gz;wget
http://nginx.org/download/nginx-1.15.0.tar.gz;tar xzf nginx-1.15.0.tar.gz;cd nginx-1.15.0;./configure --prefix=/usr/local/nginx;make,make isntall

### --- 执行脚本在三台主机上部署nginx
[root@localhost ~]# ansible-playbook nginx_install.yam1 -vvv

附录一:
### --- 报错现象

[root@localhost ansible]# ansible web -m ping
The authenticity of host '192.168.1.71 (192.168.1.71)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.72 (192.168.1.72)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.70 (192.168.1.70)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)?
### --- 报错分析
### --- 错误提示:没有和远程主机配置秘钥对,可以使用ssh-keygen配置秘钥对

### --- 解决方案:免秘钥配置
[root@localhost ~]# ssh-keygen
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub   -p 22 root@192.168.1.70    // 将秘钥对拷贝到目标主机。
[root@localhost ~]# ssh 192.168.1.70						    // 测试目标配置是否成功
Last login: Sun Nov  1 06:29:29 2020 from 192.168.1.101
[root@cb687a8072d1 ~]# ip add

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(29)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示