网工2.0 - 给你一次逆袭的机会

  聊天的画风已变!

  你好,我是姜汁啤酒,咱们又见面了。

  不知道你是否注意到,网络技术群里面的聊天画风慢慢开始变了。

  以前,聊天内容是这样的。

  兄弟,最近实验敲得咋样啊。

  我刚把NP的题看完。

  嗯,我准备学点安全和语音的技术。

  而现在的聊天内容,以我的《老司机网络运维-读者群》为例。

  大家讨论的不光是日常网络故障和经验汇总。

  慢慢地,朋友们开始研究如何学习Python。

  如何把玩Juniper的PyEZ模块实现日常运维自动化。

  连这13周年庆学习专栏送书活动。

  大家购买的不再是什么思科学习指南。

  更多的是Python,Ansible等书籍。

  难道,这个世界变了么?

  我的回答是:世界不仅变了,而且速度超乎你的想象。

  若现在的你,仍然像昔日的王朝,固守传统的网络技术疆土。

  那很抱歉,云技术,虚拟化,SDN,NetOps网络运维自动化会慢慢撕开你坚固的防线。

  所谓和你一条战线上的厂商们,纷纷倒戈。

  思科IOS-XE系列的设备,华为CloudEngine系列的设备纷纷开始支持SDN,Python自动化,更别说Juniper以及其他大厂,全都自愿的,不自愿的投入了未来技术的怀抱。

  新的网络技术时代 - 网络工程师2.0 到来!

  机遇和挑战

  每一次新的技术出现,并存着机遇。

  若你抓住了,就会被技术的浪潮抬升到新的高度。

  若负隅顽抗,最好的结果就是随波逐流。

  正如文章标题所述,这是一次逆袭的机会,也是一次挑战自我,提升自我的机会。

  在这网络工程师2.0时代?我到底需要准备什么?

  我不想提前回答这个问题。

  相反,我相信你通读完此篇文章以后,答案自然而然就在你的脑海里面了。

  而你所收获的,可能不仅仅这一个答案而已,也许包含了认知的升级,更有可能是职业生涯的蜕变。

  让我们先看看一个简单而实际的问题。

  明天,都需要什么样的人才?

  你去找工作,或者跳槽。不用说,是为了挑战自己,为了获得更好的工作环境,提高生活质量?

  而你所能遇见的工作机会,换个角度来看,就是招聘公司的业务发展需求,或者说是行业的发展需求。

  既然是发展需求,就存在一个时效性问题。

  可能,今天这个行业需要这样的技能型人才,但是并不能代表明天还是这样?

  例如,对于网络工程师来说,好几年前,大家会思科的东西就好了。可是现在,因为华为市场规模不断扩大,公司又要求你会华为的技能,难保明天又有什么新的东西出来,搞得你措手不及。

  这种情况下,就会出现两种可能性:

  要么被动的跟在后面跑,人家需要什么,我们再去学习。

  或者

  具有一定的预见性,提前做好准备,当机遇来临,你就是那第一批人。

  想想大数据、人工智能刚刚兴起的时候,第一批吃螃蟹的人,就可以当着雇主的面,漫天要价。

  那作为网络工程师的我们,该如何去把握市场业务的发展方向,让我们不那么被动。

  其实很简单,看看业界的巨头都在干什么,招聘什么样的人才。

  他们的今天,就是许许多多普通公司的明天,把握住了这一点,就是变被动为主动的关键。

  业界IT巨头网工招聘要求分析

  限于篇幅有限,此处展示了三个在业界名声赫赫,也非常具有代表性的公司。

  Google,亚马逊,Facebook。

  首先看看网络一哥Google的网络工程师招聘要求。

  Google 网工招聘简介

  职位:网络工程师

  最低要求:

  计算机相关本科学位。

  熟悉一个或者多个通用型计算机语言,包含但并不限于:C,C++,Python,Java,Go。

  熟悉网络架构,企业级网络管理,排错,和日常运维。(注:google把自己的网络定义为企业网。)

  亚马逊AWS招聘简介

  亚马逊这几年的AWS云计算服务是一路狂奔,是不折不扣的市场领跑者,让我们看看他们都需要什么样的网络工程师。

  职位:网络工程师

  最低要求:

  科技领域相关的本科学位。

  3年以上大型网络工作经验。

  熟悉网络路由协议:TCP/IP, BGP, MPLS, ISIS and/or OSPF

  熟悉Cisco IOS和JUNOS

  熟悉自动化,包括bash/shell脚本,Perl、Python编程。

  Facebook招聘简介

  最后让我们看看Facebook的招聘要求。

  Facebook,不用说大家都知道,全球使用最多的社交平台。

  职位:网络工程师

  最低要求:

  2年ISP运营商、CDN运营商、或者大型企业核心工程师或者设计工程师工作经验。

  熟悉IS-IS,BGP,MPLS,并具有使用(OpenConfig,NetConf,YANG)等工具的经验。

  熟悉业界网络硬件和软件架构,以及掌握发展趋势。

  实际编程经验,包括不限于Python、Go、Perl等语言。尤其是控制和管理网络相关项目的编程经验。

  熟悉并协调厂商网络产品研发和支持的工作。

  具有展示技术PPT的沟通能力。

  分析小结

  我不知道,当你看到以上行业领头羊的招聘需求以后,你是否有了些感触?

  你会发现,基本上以上几个职位,都提到了同一个东西:写代码的能力。

  什么Python,Perl,Go,Java语言,都是必备项。若要是没有这个编程能力,连筛简历这一关都过不去。

  有朋友就说了,人家是全球的规模,我们相比小得多,没那个必要,参考意义不大。

  如果这样想,那可能就错了。

  要记住,他们代表着(也把控着)网络行业的发展方向,他们的今天,就是我们的明天。

  你要是还没觉得有什么危机感,让我们继续往下看。

  谁说只有网工可以配置设备?

  讨论此话题之前,看几个小例子:

  当年,苹果研发iPhone的时候,诺基亚嘲笑说,你搞的啥玩意儿。连个实体按键都没有。

  谁会用啊?

  不用我说,你也知道最后谁输谁赢。

  同样的,当阿里巴巴在杭州倒腾支付宝,腾讯后来玩微信支付的时候。

  银行的柜台员工们并不认为这和他们有什么关系,银行ATM机的制造商们还在那里逍遥的过着小日子。

  几年以后,大家都不怎么去柜台办理业务了,一切都电子化,谁还去取现金?

  ATM机制造商怎么办,柜台人员怎么办?

  回到网络行业,我也给你说一个我自己的感受,这也是促成我学习编程,写这份专栏的最根本原因。

  在我刚开始学习Ansible的时候,我发现Ansible帮我减轻了两个负担:

  它可以同时大规模部署和配置网络设备。

  帮你省去登陆设备,敲入命令的时间。

  但是,初期的Ansible,我还是得输入需要执行的CLI命令行。

  换而言之,我只有熟悉思科,Juniper,华为等设备的命令行才可以,若不是网络工程师,就不会。

  可是,后来Ansible迭代进化了,各个 厂家分别更新了自己的Ansible模块,你只需要提交相应的参数,就可以完整的配置网络设备。

  例如,传统情况下,你需要配置思科的接口,你需要这样:

  interface gi0/0

  ip address 10.1.1.1 255.255.255.0

  no shutdown

  但是,现在的Ansible,你只需要选择对应的厂商模块,然后传递给Ansible对应的参数,例如接口名称,IP地址。

  如下所示,给了接口名称和IP地址,完工。(若还不理解,专栏里有详细介绍)

  - name: set GigabitEthernet0/0 IPv4 Address

  ios_l3_interface:

  name: GigabitEthernet0/0

  ipv4: 10.1.1.1/24

  Ansible就帮你完成所有的命令并配置设备。

  你完全不需要了解特定厂商的配置内容。

  再次强调,你不再需要了解某个厂商的配置细节,照样可以把工作干得好,干得快,干得漂亮。

  如果网络工程师不需要配置设备,剩下的也就只有两个看家本领:

  扎实的网络知识。

  丰富的网络项目和故障处理经验。

  可是唯一存在的问题是,一个公司如果大量的维护工作都自动化了,它会招聘多少网络工程师?

  5个,10个?

  我猜,可能1-2个经验丰富的网工+2个码农的就搞定了。

  那剩下的人怎么办?

  你说呢?

  未来的网工 - 网工2.0

  有句话说的好,最好的防守就是进攻。

  传统的网络工程师,是指熟悉网络技术,例如路由交换,安全语音,以及各个厂家的设备调试等技术。我个人称之为网工1.0时代。

  可是正如我上面所述,现如今因为网络大规模化,云计算化,数据中心化带来的运维自动化需求,以及厂商针对自动化开放的程序接口,使得那些会自动化的软件开发工程师、或具有写代码能力的网络工程师,在工作效率和层次上远高于传统的网络工程师。

  这就好比人家用枪,你还在用刀,完全不在一个量级上。

  所以,若不想被历史的车轮碾压,最好的办法就是升级自己,让自己的技能也能赶上时代的潮流。让自己成为新一代网络工程师,即所谓的网工2.0。

  我该学习什么才能升级?

  首先,你需要选择一门编程语言。至于选择哪一个。

  不用说,你光看各个IT网站头版的广告就知道,编程语言Python是最佳选择,尤其是初学者。

  作为一门专注于解决问题的语言,所有的各种工具早已有人给你写好,你只需要专注在你所需要实现的程序功能即可,当然python还有很多其他的优势,这里不再陈述了。

  除此之外,我为什么推荐Ansible作为另外一个学习的对象和工具。

  因为它同样也是极其容易上手,非常简洁明了,厂商支持程度也很高,就算对编程不熟悉的朋友,经过一番讲解之后,也能上手写自己的Ansible自动化脚本,马上就能看见成效。

  啰嗦一句,编程语言也好,还是自动化工具也好,选择可是五花八门,在我们有限的时间和精力之下,选择一个业界流行,大家认可的工具,并潜心研究,才是正道。

  相反,若各个工具都有所染指,虽然可以成为和朋友的谈资,但是真正用起来,你会发现哪一个都不怎么会用,浅尝辄止。

  如何克服编程恐惧症?

  有部分朋友说 :“姜汁哥,不瞒你说,我搞网络就是因为对编程不感冒,不是那块料。要不然我早去干编程了,说不定现在随着哪一家初创公司上市,都财务自由了。”

  这位朋友,其实我也不瞒你,我和你一样,当时上大学也学过编程,但是就是怎么都入不了门。

  有句话说得好,不是你不会,而是身上的压力还没到那份上。

  我个人接触了一些做自动化的朋友,加上自己涉猎Python + Ansible这一方向后,我就开始有深深的危机感。

  上有老下有小,丢工作了可不是一件好玩的事情。所以我硬着头皮就啃了下来。

  可就在我啃的过程中,我发现一些学习编程的小窍门和方法,这对于初学者来说,尤其有帮助。

  我暂且称之为“基于需求的编程学习法”。

  由于此方法不是一句话就能说清的,我特地把这一民间偏方写成一篇文章,放到了新开的专栏《网工2.0晋级公攻略 - 零基础入门Python/ Ansible》内,共大家揣摩。

  网工2.0晋级攻略 - 零基础入门Python/ Ansible

  说了这么多真心话,怎么也得给大家介绍下自己的新专栏。

  此专栏目的只有一个:作为过来人和你一起入门Ansible和Python。

  为了实现这个目的,此专栏存在如下奇葩风格:

  1. 注重思路分析和细节讲解

  其实写代码和画画很类似。

  首先你需要知道画什么。

  其次你脑海里面有一个即将画的物体的大概轮廓。

  最后再动笔。

  在此专栏里面,我们会一起针对每一个案例详尽剖析,从需求,到构思,最后到代码的生成。

  以及每一行代码所要表达的意思以及相关的含义,都会仔细讲解。

  2. 提倡拿来主义

  本专栏提供了多个Python和Ansible的基础案例和实践案例。

  我提供的这些案例,最终达到两个效果:

  通过案例让你熟悉并掌握Ansible和Python。

  其次,对于特定日常基础运维工作,你可以通过简单修改案例中的代码,轻松搞定一些重复的工作。

大连妇科医院哪家好   http://www.dlgcyy.cn/

  第二条即为我所说的拿来主义。

  例如,某一天厂商报了一个软件bug,需要升级IOS、才能解决。

  这时,领导急着让你搜集全网所有设备的软件版本。

  你若是手工一个个的弄,费时费力,还不讨好。

  但是学习了本专栏,你就有两个选择了。

  要么自己写一个代码来搞定。

  或者你若是还不太熟练的情况下,直接复制专栏代码,改改命令行,设备用户名密码就可以用了。

  3.不纠结于高级编程技巧

  若有人对你说。

  你的代码不够简洁,代码写得比较low,写得像流水账。

  以上问题如果是程序员之间的交流,我完全可以理解,毕竟他们是吃这一碗饭的。

  但是,作为一名初学者,作为一名网络工程师,我的观点是,去他的代码质量,先能写,能用再说。温饱都没解决了,给我谈什么艺术情操

  现在这个时代,计算资源过剩,刚开始入门编程,你完全不用考虑代码的执行效率等问题。你执行10个循环和执行一万个循环,对你来说,仍然是一秒钟的时间。

  所以,在这个专栏里面,我尽可能的采用大家容易理解的方式来实现程序的功能,而不是为了做个人表演show,虽然我表演爽了。

  可是你阅读起来,就很不爽了。

  再次重申:这个专栏,就是带你如何从不会编程这个0,到会基本的代码技能这个1的质变。

  而从会基本代码技能,到写的很漂亮,那就靠你未来的一步步的练习精进了。

  4.免费vs付费 ?

  最后一个,付费也算是本专栏的一个优势。

  你可能会说,Ansible和python的东西,网上最不缺了。

  我干嘛犯得着花这点钱来买专栏?

  我不会反驳你的观点,相反,我觉得你说的很对。

  一起看看网上的免费资源,大致分为两类:

  给你个100G的python视频,慢慢去看吧。

  这100G搜集了各路神仙的python视频,表面上你拥有了全世界,可是你却少了一个东西 - 时间。

  回忆一下,这100G视频,你看了百分之一了么?

  各类博客文章散布全网,需要通过搜索来获取。

  不可否认,很多大神写的博客文章,的确很详细很独到。

  可是,以Ansible为例,要么你是在需要用Ansible的时候,才想到去搜相关知识,并找到一两个网站。

  或者,你无意间浏览到某个Ansible为主的网站,并习得了相关技能。

  但是这些技能都是碎片化的,你很难系统的把它拼装到一起。

  还有一个问题,你无法去搜索那些你不知道的东西,所以有一个人系统的带领你一起走,事情就变得很简单了。

原文地址:https://blog.csdn.net/weixin_44239023/article/details/89478175

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


----name:setpublickeyonremotehosts&setreomtehostssudoersfilehosts:all#此脚本要求所有的主机root用户密码相同become:noremote_user:rootvars:-remoteuser:user1:rhcetasks:-name:setsecondarygroupforrhce
环境准备#cat/etcedhat-releaseCentOSLinuxrelease7.9.2009(Core)#pythonPython3.7.11(default,Jul312022,16:12:35)[GCC4.8.520150623(RedHat4.8.5-44)]onlinuxType"help","copyright","credits"or"li
准备好环境,在安装之前请先了解openshift提供的ansible有大量的安装选项文档地址:https://docs.okd.io/latest/install/configuring_inventory_file.html1、配置/etc/ansible/hosts 
Ansible:运维工作:系统安装(物理机、虚拟机)-->程序包安装、配置、服务启动-->批量操作-->程序发布-->监控OSProvisioning:物理机:PXE、Cobbler虚拟机:ImageTemplatesConfigration:puppet(ruby)saltstack(python)chefcfengineCommandand
ansible与salt对比相同都是为了同时在多台机器上执行相同的命令都是python开发不同agent(saltstack需要安装、ansible不需要)配置(salt配置麻烦,ansible基本不用配置)学习路线(salt比较陡峭,ansible比较平缓)第三方工具(salt比较少)开源社区的对接(salt比较少)现有用户(salt还是an
[root@node1playbook]#catnginx.yml-hosts:test\\主机组,要和nginx.yml在同一个目录下remote_user:root\\远端执行任务的用户tasks:\\任务-name:installhttpd\\任务描述command:yum-yinstallhttpd\\调用ansible的command模块安装httpd-na
一直不知道这个模块到底在哪,并且也挺想搞清楚官方那些模块到底在哪个目录下。1.使用grep-rl"copy.py"/usr/lib/python2.7/site-packages/ansible(这个目录是专门放ansible源码目录的)然后找到是/usr/lib/python2.7/site-packages/ansible/modules/files/copy.py这个文件,这里需要
ansile作为去除安装agent的自动化工具,通过ssh协议的简单功能强大的自动化工作。在ansile使用的过程中,有三种用途1、ansible自行一次性任务,即执行命令如:ansible10.59.87.11-mping*ansible"dev-hdp"-mcopy-a"src=oot/HfHadoopHiveUdf.jardest=/data1/opt/cloudera/par
ansible-playbook(1) Ansible组成部分InventoryModulesAdHocCommandsplaybooksplaybooks:Tasks:任务,即调用的模块完成的某操作variables:变量Templates:模版Roles:角色 基本结构:-host:webserverremote_user:tasks:
报错:[root@jenkins~]#ansiblego_activity-mcron-a"name='log_clear'minute=0hour=2job=find/home/golanger/log/-typef-name'log$(date+\%d-d-1day)'-delete"ERROR!thistask'cron'hasextraparams,wh
一、测试环境说明1、系统:rhel6.92、ip地址:20.20.20.24/2420.20.20.41/2420.20.20.42/243、以下操作使用root身份进行,也可以使用具有sudo权限的用户进行相关操作二、环境准备1、关闭iptables防火墙、selinux#/etc/init.d/iptablesstop#
ansible常用模块安装:依赖于epel源yuminstallansible-y配置文件:/etc/ansible/ansible.cfgInvertoory:/etc/ansible/hosts 如何查看模块帮助:ansible-doc-lansible-doc-sMODULE_NAME` ansible命令应用基础:语法:ansible<host-pattern>[options]-fforks
copycopy模块是将ansible管理主机上的文件拷贝上远程主机中,与fetch相反,如果目标路径不存在,则自动创建,如果src的目录带“/”则复制该目录下的所有东西,如果src的目录不带“/”则连同该目录一起复制到目标路径;常用模块src参数:用于指定需要copy的文件或目录
9.YAML9.1简介(1)YAML是一个可读性高的用来表达资料序列的格式。(2)YAML参考了其它多种语言。包括:XML、C语言、python、perl以及电子邮件格式的RFC2822等。ClarkEvans在2001年首次发表了这种语言。(3)YAML不是XML,在开发这种语言时,YAML的意思其实是:yetanothermarkuplanguage,9.2特性(1)YA
了解ansibleansible批量在远程主机上执行命令ansible主要是为了进行操作多个主机而进行的#!/bin/envpython文件中直接指向python文件#!/bin/base 指行脚本一.ansible第一步.下载epel源wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.comepo/epel-7.repo
背景:在私有云环境下,遇到要开通某个项目,则需要快速的响应创建虚拟机,并且做一些基础的配置。为了提高效率以及减少手工犯错的概率,一般会采取ansible批量部署,但是使用ansible的前提是预先配置好免密。在密码一致的场景中,可以使用expect优化做免密的过程解决方案:1.
简单例子1:vars定义变量-hosts:allremote_user:rootvars:-package:nginx-service:nginx tasks:-name:installnginxpackage yum:name={{package}}state=latest-name:installconfigurationfileforhttpd copy:src=/etcginxginx
 ansible自动化运维工具的介绍      ansible结构特性:            模块化,调用特定的模块,完成特定的任务;        基于Python语言实现,由Paramiko、PyYAML和Jinja2三个关键模块;        部署简单,agentless        主从模
---恢复内容开始---Templates:模版 cat/etc/ansible/hosts  cattemplatesginx.conf.j2 -hosts:testremote_user:rootvars:-package:httpd-service:httpdtasks:-name:installnginxpackage yum:name={{package}}state=la
1、配置资源清单inventory文件[root@test1~]#cat>/etc/ansible/hosts<<EOF[k8s]192.168.0.92ansible_ssh_port=22ansible_ssh_user=k8sansible_ssh_pass='123'ansible_become_pass='123456'EOF解释:ansible_ssh_pass='123'