mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-06 23:50:16 +08:00
Merge remote-tracking branch 'LCTT/master'
This commit is contained in:
commit
3836b7095b
@ -0,0 +1,74 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (GitHub report surprises, serverless hotness, and more industry trends)
|
||||
[#]: via: (https://opensource.com/article/19/11/github-report-serverless-hotness-more-industry-trends)
|
||||
[#]: author: (Tim Hildred https://opensource.com/users/thildred)
|
||||
|
||||
GitHub report surprises, serverless hotness, and more industry trends
|
||||
======
|
||||
A weekly look at open source community and industry trends.
|
||||
![Person standing in front of a giant computer screen with numbers, data][1]
|
||||
|
||||
As part of my role as a senior product marketing manager at an enterprise software company with an open source development model, I publish a regular update about open source community, market, and industry trends for product marketers, managers, and other influencers. Here are five of my and their favorite articles from that update.
|
||||
|
||||
## [GitHub tops 40 million developers as Python, data science, machine learning popularity surges][2]
|
||||
|
||||
> In its annual Octoverse report, GitHub, owned by Microsoft, said it had more than 10 million new users, 44 million repositories created and 87 million pull requests in the last 12 months. The report is a good view of open source software and where the community is headed.
|
||||
|
||||
**The impact:** The finding that hit home hardest for me is that "nearly 80% of GitHub users are outside of the US." While an important part of open source history comes from the east and west coasts of America, there is a good chance that the future of the movement will happen elsewhere.
|
||||
|
||||
## [Serverless: Is it the Kubernetes killer?][3]
|
||||
|
||||
> Serverless isn't here to destroy Kubernetes. The cloud infrastructure space race isn't a zero-sum game. Kubernetes is an obvious evolution following OpenStack and can be run successfully inside of it. There will be OpenStack users for a long time to come, and there are also reasons many companies have moved on from there. Serverless is another tool in the belt of forward-thinking development teams. And increasingly, it can be [run on top of Kubernetes][4] (see Knative), enabling you to get the benefits of the simplicity of serverless and the complexity of Kubernetes where it makes sense for both in your stack.
|
||||
|
||||
**The impact:** The moral of the story is that legacy doesn't really go away, it just gets built in and around.
|
||||
|
||||
## [When Quarkus meets Knative serverless workloads][5]
|
||||
|
||||
> Now, let's discuss how developers can use Quarkus to bring Java into serverless, a place where previously, it was unable to go. Quarkus introduces a comprehensive and seamless approach to generating an operating system specific (aka native) executable from your Java code, as you do with languages like Go and C/C++. Environments such as event-driven and serverless, where you need to start a service to react to an event, require a low time-to-first-response, and traditional Java stacks simply cannot provide this. Knative enables developers to run cloud-native applications as serverless containers in seconds and the containers will go down to zero on demand.
|
||||
>
|
||||
> In addition to compiling Java to Knative, Quarkus aims to improve developer productivity. Quarkus works out of the box with popular Java standards, frameworks and libraries like Eclipse MicroProfile, Apache Kafka, RESTEasy, Hibernate, Spring, and many more. Developers familiar with these will feel at home with Quarkus, which should streamline code for the majority of common use cases while providing the flexibility to cover others that come up.
|
||||
|
||||
**The impact:** It's good to start getting specific with how and where the new hotness can be used. The answer, in this case, is "with the other new hotness."
|
||||
|
||||
## [Why you should join the CNCF Meetup Program][6]
|
||||
|
||||
> With the recent changes to Meetup’s [policies][7], we wanted to share a reminder of the benefits of joining the [CNCF Meetup Program][8] and encourage Meetups in the CNCF ecosystem to apply.
|
||||
>
|
||||
> As part of our Meetup Pro membership, CNCF is able to organize a network with an unlimited number of groups on a single account.
|
||||
|
||||
**The impact:** The long term response to this unfortunate fallout from the WeWork debacle is to build a distributed open source Meetup alternative. Thankfully in the meantime, the CNCF has a more pragmatic response.
|
||||
|
||||
## [Introducing your friends to automation (and overcoming their fear)][9]
|
||||
|
||||
> My team and I were in a meeting a little while back with a third party vendor when they asked us what our stance was on automation. My reply was, "We want to automate everything." On top of my reply, my teammates added, "Well, we don’t want to automate ourselves out of a job."
|
||||
|
||||
**The impact:** I've always thought it was a bit cavalier when someone would say, "I think it's my job to automate myself out of a job." There is plenty of circumstances where that is the last measure of success someone would want to be measured by. I'm happy to see this addressed head-on.
|
||||
|
||||
_I hope you enjoyed this list of what stood out to me from last week and come back next Monday for more open source community, market, and industry trends._
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/11/github-report-serverless-hotness-more-industry-trends
|
||||
|
||||
作者:[Tim Hildred][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/thildred
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/data_metrics_analytics_desktop_laptop.png?itok=9QXd7AUr (Person standing in front of a giant computer screen with numbers, data)
|
||||
[2]: https://www.zdnet.com/article/github-tops-40-million-developers-as-python-data-science-machine-learning-popularity-surges/#ftag=RSSbaffb68
|
||||
[3]: https://www.forbes.com/sites/forbestechcouncil/2019/11/04/serverless-is-it-the-kubernetes-killer/#7e6740711f77
|
||||
[4]: https://github.com/knative
|
||||
[5]: https://vmblog.com/archive/2019/10/29/when-quarkus-meets-knative-serverless-workloads.aspx#.XbiN1JNKiuN
|
||||
[6]: https://www.cncf.io/blog/2019/11/01/why-you-should-join-the-cncf-meetup-program/
|
||||
[7]: https://www.meetup.com/lp/paymentchanges?mpId=9038
|
||||
[8]: https://www.meetup.com/pro/cncf
|
||||
[9]: https://www.redhat.com/sysadmin/introducing-automation
|
@ -0,0 +1,64 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Microsoft Defender ATP is Coming to Linux! What Does it Mean?)
|
||||
[#]: via: (https://itsfoss.com/microsoft-defender-atp-linux/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
Microsoft Defender ATP is Coming to Linux! What Does it Mean?
|
||||
======
|
||||
|
||||
_**Microsoft has announced that it is bringing its enterprise security product Microsoft Defender Advanced Threat Protection (ATP) to Linux in 2020.**_
|
||||
|
||||
Microsoft’s annual developer conference Microsoft Ignite has just been concluded and there are a few important announcements that relate to Linux. You probably already read about [Microsoft bringing its Edge web browser to Linux][1]. The next big news is that Microsoft is bringing Microsoft Defender ATP to Linux.
|
||||
|
||||
Let’s get into some details what it is and why Microsoft is bothering itself to develop something for Linux.
|
||||
|
||||
### What is Microsoft Defender ATP?
|
||||
|
||||
If you have used Windows in past few years, you must have come across Windows Defender. It is basically an antivirus product by Microsoft that brings some level of security by detecting viruses and malware.
|
||||
|
||||
Microsoft improved this functionality for its enterprise users by introducing Windows Defender ATP (Advanced Threat Protection). Defender ATP works on behavioral analysis. It collects usage data and store them on the same system. However, when it notices an inconsistent behavior, it sends the data to Azure service (Microsoft’s cloud service). In here, it will have a collection of behavioral data and the anomalies.
|
||||
|
||||
For example, if you got a PDF attachment in the email, you open it and it opened a command prompt, Defender ATP will notice this abnormal behavior. I recommend reading this article to [learn more about the difference between Defender and Defender ATP][2].
|
||||
|
||||
Now this is entirely an enterprise product. In a big enterprise with hundreds or thousands of end points (computers), Defender ATP provides a good layer of protection. The IT admins will have a centralized view of the end-points on their Azure instance and the threats can be analyzed and actions can be taken accordingly.
|
||||
|
||||
### Microsoft Defender ATP for Linux (and Mac)
|
||||
|
||||
Normally, enterprises have Windows on their computer but Mac and Linux are also getting popular specially among the developers. In an environment where there is a mix of Mac and Linux machines among Windows, Defender ATP has to extends its services to these operating systems so that it can provide a holistic defense to all the devices on the network.
|
||||
|
||||
Keeping that in mind, Microsoft first [changed Windows Defender ATP to Microsoft Defender ATP in March 201][3][9][3], signaling that the product is not limited to just Windows operating system.
|
||||
|
||||
Soon after it [announced Defender ATP for Mac][4].
|
||||
|
||||
And now to cover all the major operating systems in an enterprise environment, [Microsoft is bringing Defender ATP to Linux][5] in 2020.
|
||||
|
||||
### How Microsoft Defender ATP on Linux impacts you, a Linux user?
|
||||
|
||||
Since Defender ATP is an enterprise product, I don’t think you need to be bothered with this. Organizations need to secure their end-points against threats so it makes sense that Microsoft is improving its product to cover Linux as well.
|
||||
|
||||
For normal Linux users like you and me, it won’t make any difference. I am not going to use it ‘secure’ my three Linux systems and pay Microsoft for that.
|
||||
|
||||
Please feel free to share your opinion on Microsoft bringing Defender ATP to Linux in the comment section.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/microsoft-defender-atp-linux/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/microsoft-edge-linux/
|
||||
[2]: https://www.concurrency.com/blog/november-2017/windows-defender-vs-windows-defender-atp
|
||||
[3]: https://www.theregister.co.uk/2019/03/21/microsoft_defender_atp/
|
||||
[4]: https://techcommunity.microsoft.com/t5/Microsoft-Defender-ATP/Announcing-Microsoft-Defender-ATP-for-Mac/ba-p/378010
|
||||
[5]: https://www.zdnet.com/article/microsoft-defender-atp-is-coming-to-linux-in-2020/
|
@ -0,0 +1,110 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to drive customer experience with agile principles)
|
||||
[#]: via: (https://opensource.com/article/19/11/apply-devops-agile-principles-customer-experience)
|
||||
[#]: author: (Matt Shealy https://opensource.com/users/mshealy)
|
||||
|
||||
How to drive customer experience with agile principles
|
||||
======
|
||||
Increasing customer satisfaction scores is one of the most important
|
||||
ways to grow a business.
|
||||
![People meeting][1]
|
||||
|
||||
Customer experience has never been more important. People can find out just about anything with a few clicks or a voice search on their phones. They can research products, services, and companies. They can do business with organizations all over the world. They can buy with a swipe and have things shipped right to their home within a day.
|
||||
|
||||
Consumers now demand instant access, frictionless transactions, and [superior customer experience][2] (CX). Not only do they want efficiency, but they also want personalized interactions.
|
||||
|
||||
### Customer experience as a competitive advantage
|
||||
|
||||
CX is also becoming a way to distinguish yourself from the competition. More than 80% of organizations say that they expect to [compete mainly based on the customer experience][3] they provide. Companies that excel at customer experience have higher brand awareness, higher employee satisfaction, higher customer retention, higher customer satisfaction rates, and higher average order value.
|
||||
|
||||
### Using agile and DevOps principles to compete
|
||||
|
||||
Customer-forward applications, such as websites, apps, chatbots, call center tech, and e-commerce toolkits, define customer service and CX. They can positively shape a brand or push customers away. Organizations need to be in a continuous improvement cycle to improve these products.
|
||||
|
||||
Competing successfully in a CX-driven world can happen only by applying agile and DevOps principals throughout the organization.
|
||||
|
||||
### What is DevOps?
|
||||
|
||||
[DevOps][4] is designed to deliver apps and services rapidly within a continuous development (CD) and continuous integration (CI) cycle. Products are developed, released, tested, and updated continuously rather than once or twice a year.
|
||||
|
||||
To make this happen, cross-functional teams work in an agile environment rather than in a linear development cycle. Instead of working in silos, engineers work across application lifecycles.
|
||||
|
||||
### The DevOps cycle
|
||||
|
||||
By forgoing the traditional software development and infrastructure management process, organizations can launch products more quickly, identify problems to apply patches, and serve customers better.
|
||||
|
||||
There are various iterations of the DevOps cycle, but they typically boil down to a few common elements in an infinite loop, starting with planning and looping back to the start.
|
||||
|
||||
1. Plan
|
||||
2. Build
|
||||
3. Continuous integration
|
||||
4. Deployment
|
||||
5. Operate
|
||||
6. Continuous feedback
|
||||
|
||||
|
||||
|
||||
The idea is to constantly be in development and improving the application to provide a better customer experience.
|
||||
|
||||
### Building a DevOps strategy
|
||||
|
||||
The DevOps process brings together stakeholders from different disciplines into one project team. Instead of building things in an assembly-line manner, where one task follows another, the team works holistically across multiple disciplines at the same time.
|
||||
|
||||
This helps bring business intelligence and strategy teams into the design phase. It keeps engineers in the customer feedback loop. For everyone in the agile development team, it provides tighter integration and keeps everyone focused on the larger goals. It allows developers to work towards customer and business outcomes rather than delivery feature sets.
|
||||
|
||||
Customer feedback is one of the most important phases in improving CX. It doesn't matter how clean your code is or how innovative your app is if customers don't find it useful. Quality service starts with understanding customer needs and delivering intuitive ways to meet them.
|
||||
|
||||
Automation is crucial to improving speed. Try to automate as much of the process as possible. There are technology tools—many of which are free and open source solutions—that can handle parts of the software delivery lifecycle smoothly.
|
||||
|
||||
The DevOps strategy was developed as a way to speed software to market, but it can also be applied to nearly any process. A continuous development, deployment, test, and feedback loop creates a way to improve systems continuously. This makes for better workflows, stronger employee and customer engagement, and more iterative development.
|
||||
|
||||
### The benefits of agile teams and DevOps strategies
|
||||
|
||||
There are real and tangible benefits of improving CX. For one: [86% of consumers report they are willing to pay more for great customer experience][5].
|
||||
|
||||
Also, [improving customer experience][6] creates more brand loyalty. Keeping customers involved in the feedback loop and building on their suggestions to enhance usability can improve customer satisfaction.
|
||||
|
||||
In addition, organizations can see multiple internal benefits, including:
|
||||
|
||||
* Faster deployment times
|
||||
* Higher product quality
|
||||
* Increased project control and transparency
|
||||
* Risk mitigation
|
||||
* Faster adaptation
|
||||
* More predictable costs and schedules
|
||||
|
||||
|
||||
|
||||
Finally, agile development is iterative. A functional product may be market-ready after only a few iterations, and this can create a first-mover advantage. In fast-moving markets, this eliminates long delivery cycles. Fast releases can stimulate customer feedback, which can be turned into additional features to keep you ahead of competitors.
|
||||
|
||||
Organizations with high agility are nearly [20% more likely to meet their business goals][7] than less agile teams. They finish projects on time 50% more often and [deliver software to market 37% faster][8].
|
||||
|
||||
The better your customer-facing products are, the more time call center and customer support teams will have available to work on customer problems. When patterns and concerns are recognized, they can be added to applications in a more seamless manner using the DevOps strategy.
|
||||
|
||||
Raising the bar on customer experience takes an across-the-board commitment—from senior management to line-level employees. Raising customer satisfaction scores is one of the most important things you can do to grow any business.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/11/apply-devops-agile-principles-customer-experience
|
||||
|
||||
作者:[Matt Shealy][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/mshealy
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/people_team_community_group.png?itok=Nc_lTsUK (People meeting)
|
||||
[2]: https://www.chamberofcommerce.com/business-advice/master-a-great-experience-for-your-customers
|
||||
[3]: https://www.gartner.com/en/doc/3874972-realizing-the-benefits-of-superior-customer-experience-a-gartner-trend-insight-report
|
||||
[4]: https://opensource.com/resources/devops
|
||||
[5]: https://www.walkerinfo.com/knowledge-center/featured-research-reports/customers-2020-a-progress-report
|
||||
[6]: https://www.avoxi.com/blog/how-to-improve-csat-scores-in-your-call-center/
|
||||
[7]: https://www.pmi.org/-/media/pmi/documents/public/pdf/learning/thought-leadership/pulse/pulse-of-the-profession-2015.pdf
|
||||
[8]: http://nyspin.org/QSMA-Rally%20Agile%20Impact%20Report.pdf
|
@ -1,79 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Why blockchain (might be) coming to an IoT implementation near you)
|
||||
[#]: via: (https://www.networkworld.com/article/3386881/why-blockchain-might-be-coming-to-an-iot-implementation-near-you.html#tk.rss_all)
|
||||
[#]: author: (Jon Gold https://www.networkworld.com/author/Jon-Gold/)
|
||||
|
||||
Why blockchain (might be) coming to an IoT implementation near you
|
||||
======
|
||||
|
||||
![MF3D / Getty Images][1]
|
||||
|
||||
Companies have found that IoT partners well with a host of other popular enterprise computing technologies of late, and blockchain – the innovative system of distributed trust most famous for underpinning cryptocurrencies – is no exception. Yet while the two phenomena can be complementary in certain circumstances, those expecting an explosion of blockchain-enabled IoT technologies probably shouldn’t hold their breath.
|
||||
|
||||
Blockchain technology can be counter-intuitive to understand at a basic level, but it’s probably best thought of as a sort of distributed ledger keeping track of various transactions. Every “block” on the chain contains transactional records or other data to be secured against tampering, and is linked to the previous one by a cryptographic hash, which means that any tampering with the block will invalidate that connection. The nodes – which can be largely anything with a CPU in it – communicate via a decentralized, peer-to-peer network to share data and ensure the validity of the data in the chain.
|
||||
|
||||
**[ Also see[What is edge computing?][2] and [How edge networking and IoT will reshape data centers][3].]**
|
||||
|
||||
The system works because all the blocks have to agree with each other on the specifics of the data that they’re safeguarding, according to Nir Kshetri, a professor of management at the University of North Carolina – Greensboro. If someone attempts to alter a previous transaction on a given node, the rest of the data on the network pushes back. “The old record of the data is still there,” said Kshetri.
|
||||
|
||||
That’s a powerful security technique – absent a bad actor successfully controlling all of the nodes on a given blockchain (the [famous “51% attack][4]”), the data protected by that blockchain can’t be falsified or otherwise fiddled with. So it should be no surprise that the use of blockchain is an attractive option to companies in some corners of the IoT world.
|
||||
|
||||
Part of the reason for that, over and above the bare fact of blockchain’s ability to securely distribute trusted information across a network, is its place in the technology stack, according to Jay Fallah, CTO and co-founder of NXMLabs, an IoT security startup.
|
||||
|
||||
“Blockchain stands at a very interesting intersection. Computing has accelerated in the last 15 years [in terms of] storage, CPU, etc, but networking hasn’t changed that much until recently,” he said. “[Blockchain]’s not a network technology, it’s not a data technology, it’s both.”
|
||||
|
||||
### Blockchain and IoT**
|
||||
|
||||
**
|
||||
|
||||
Where blockchain makes sense as a part of the IoT world depends on who you speak to and what they are selling, but the closest thing to a general summation may have come from Allison Clift-Jenning, CEO of enterprise blockchain vendor Filament.
|
||||
|
||||
“Anywhere where you've got people who are kind of wanting to trust each other, and have very archaic ways of doing it, that is usually a good place to start with use cases,” she said.
|
||||
|
||||
One example, culled directly from Filament’s own customer base, is used car sales. Filament’s working with “a major Detroit automaker” to create a trusted-vehicle history platform, based on a device that plugs into the diagnostic port of a used car, pulls information from there, and writes that data to a blockchain. Just like that, there’s an immutable record of a used car’s history, including whether its airbags have ever been deployed, whether it’s been flooded, and so on. No unscrupulous used car lot or duplicitous former owner could change the data, and even unplugging the device would mean that there’s a suspicious blank period in the records.
|
||||
|
||||
Most of present-day blockchain IoT implementation is about trust and the validation of data, according to Elvira Wallis, senior vice president and global head of IoT at SAP.
|
||||
|
||||
“Most of the use cases that we have come across are in the realm of tracking and tracing items,” she said, giving the example of a farm-to-fork tracking system for high-end foodstuffs, using blockchain nodes mounted on crates and trucks, allowing for the creation of an un-fudgeable record of an item’s passage through transport infrastructure. (e.g., how long has this steak been refrigerated at such-and-such a temperature, how far has it traveled today, and so on.)
|
||||
|
||||
### **Is using blockchain with IoT a good idea?**
|
||||
|
||||
Different vendors sell different blockchain-based products for different use cases, which use different implementations of blockchain technology, some of which don’t bear much resemblance to the classic, linear, mined-transaction blockchain used in cryptocurrency.
|
||||
|
||||
That means it’s a capability that you’d buy from a vendor for a specific use case, at this point. Few client organizations have the in-house expertise to implement a blockchain security system, according to 451 Research senior analyst Csilla Zsigri.
|
||||
|
||||
The idea with any intelligent application of blockchain technology is to play to its strengths, she said, creating a trusted platform for critical information.
|
||||
|
||||
“That’s where I see it really adding value, just in adding a layer of trust and validation,” said Zsigri.
|
||||
|
||||
Yet while the basic idea of blockchain-enabled IoT applications is fairly well understood, it’s not applicable to every IoT use case, experts agree. Applying blockchain to non-transactional systems – although there are exceptions, including NXM Labs’ blockchain-based configuration product for IoT devices – isn’t usually the right move.
|
||||
|
||||
If there isn’t a need to share data between two different parties – as opposed to simply moving data from sensor to back-end – blockchain doesn’t generally make sense, since it doesn’t really do anything for the key value-add present in most IoT implementations today: data analysis.
|
||||
|
||||
“We’re still in kind of the early dial-up era of blockchain today,” said Clift-Jennings. “It’s slower than a typical database, it often isn't even readable, it often doesn't have a query engine tied to it. You don't really get privacy, by nature of it.”
|
||||
|
||||
Join the Network World communities on [Facebook][5] and [LinkedIn][6] to comment on topics that are top of mind.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3386881/why-blockchain-might-be-coming-to-an-iot-implementation-near-you.html#tk.rss_all
|
||||
|
||||
作者:[Jon Gold][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Jon-Gold/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://images.idgesg.net/images/article/2019/02/chains_binary_data_blockchain_security_by_mf3d_gettyimages-941175690_2400x1600-100788434-large.jpg
|
||||
[2]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
|
||||
[3]: https://www.networkworld.com/article/3291790/data-center/how-edge-networking-and-iot-will-reshape-data-centers.html
|
||||
[4]: https://bitcoinist.com/51-percent-attack-hackers-steals-18-million-bitcoin-gold-btg-tokens/
|
||||
[5]: https://www.facebook.com/NetworkWorld/
|
||||
[6]: https://www.linkedin.com/company/network-world
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (guevaraya )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -0,0 +1,175 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to cohost GitHub and GitLab with Ansible)
|
||||
[#]: via: (https://opensource.com/article/19/11/how-host-github-gitlab-ansible)
|
||||
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
|
||||
|
||||
How to cohost GitHub and GitLab with Ansible
|
||||
======
|
||||
Protect your access to important projects by mirroring Git repositories
|
||||
with Ansible.
|
||||
![Hands programming][1]
|
||||
|
||||
Open source is everywhere. It's in your computer at home, it's in your computer at work, it's on the internet, and a lot of it is managed with [Git][2]. Because Git is decentralized, many people also think of it as a kind of crowdsourced backup solution. The theory is that each time someone clones a Git repository to their local computer, they are creating a backup of the project's source code. If 100 people do that, then there are 100 backup copies of a repository.
|
||||
|
||||
This, in theory, mitigates "disasters" such as a project maintainer [suddenly deciding to remove a repository][3] or [inexplicably blocking all traffic][4] and leaving developers scrambling to figure out who has the latest version of the master branch. Similarly, entire code-hosting sites have disappeared in the past. Nobody anticipated the closure of Google Code, Microsoft CodePlex, or Gitorious when they were at their peak.
|
||||
|
||||
In short, if the internet has taught us anything over the past few decades, it's that relying on the internet to magically create backups isn't the most reliable road to redundancy.
|
||||
|
||||
Besides, it's a problem for a lot of people that many open source projects are hosted on GitHub, which is not an open platform. Many developers and users would prefer to support and interact with a stack such as GitLab, which has an open source community edition.
|
||||
|
||||
### Using Ansible for Git
|
||||
|
||||
Git's decentralization is useful in solving this problem. Using pure Git, you can easily push to two or more repositories with a single **push** command. However, for that to be useful against unexpected failure, you must be interacting (and pushing, specifically) with a Git repository frequently. Furthermore, there may be repositories out there that you want to back up, even though you may never push or pull the code yourself.
|
||||
|
||||
But using Ansible, you can automate Git pulls of a project's master branch (or any other branch, for that matter) and then automate Git pushes of the repository to an "offsite" mirror. In other words, you can have your computer regularly pull from GitHub and push to GitLab or [Gitolite][5] or Gitea (or whatever Git host you prefer).
|
||||
|
||||
### Ansible modules
|
||||
|
||||
There wouldn't be much to Ansible if it weren't for its excellent collection of modules. Like third-party libraries for Python or applications for Linux, the technical _driver_ of the useful and surprisingly easy tricks Ansible is famous for are the parts that other people have already figured out for you. Because this article is tackling how to effectively and reliably backup a Git repository, the modules used here are the [Git module][6] and the [ini_file][7] module.
|
||||
|
||||
To begin, create a file called **mirror.yaml** to serve as the playbook. You can start mostly as you usually do with Ansible, with **name** and **task** entries. This example adds **localhost** to the **hosts** list so that the play runs on the controller machine (the computer you're sitting at right now), but in real life, you would probably run this on a specific host or group of hosts on your network.
|
||||
|
||||
|
||||
```
|
||||
\---
|
||||
\- name: "Mirror a Git repo with Ansible"
|
||||
hosts: localhost
|
||||
tasks:
|
||||
```
|
||||
|
||||
### Git pull and clone
|
||||
|
||||
If you're going to make a backup, then you need a copy of the latest code. The obvious way to make that happen with a Git repository is to perform a **git pull**. However, **pull** assumes that a clone already exists, and a well-written Ansible _play_ (an Ansible script) assumes as little as possible. It's better to tell Ansible to **clone** a repository first.
|
||||
|
||||
Add your first task to your playbook:
|
||||
|
||||
|
||||
```
|
||||
\---
|
||||
\- name: "Mirror a Git repo with Ansible"
|
||||
hosts: localhost
|
||||
vars:
|
||||
git_dir: /tmp/soso.git
|
||||
tasks:
|
||||
|
||||
- name: "Clone the git repo"
|
||||
git:
|
||||
repo: '<https://github.com/ozkl/soso.git>'
|
||||
dest: '{{ git_dir }}'
|
||||
clone: yes
|
||||
update: yes
|
||||
```
|
||||
|
||||
This example uses the open source, Unix-like operating system **soso** as the repository I want to mirror. This is a completely arbitrary choice and in no way implies a lack of confidence in this repository's future. It also uses a variable to refer to the destination folder, **/tmp/soso.git**, which is convenient now and also beneficial later should you want to scale this out to be a generic mirroring script. In real life, you would probably have a more permanent location than **/tmp**, such as **/home/gitmirrors/soso.git** or **/opt/gitmirrors/soso.git**, on your worker machine.
|
||||
|
||||
Run your playbook:
|
||||
|
||||
|
||||
```
|
||||
`$ ansible-playbook mirror.yaml`
|
||||
```
|
||||
|
||||
The first time you run the playbook, Ansible correctly detects that the Git repository does not yet exist locally, so it clones it.
|
||||
|
||||
|
||||
```
|
||||
PLAY [Ansible Git mirror] ********
|
||||
|
||||
TASK [Gathering Facts] ***********
|
||||
ok: [localhost]
|
||||
|
||||
TASK [Clone git repo] ************
|
||||
changed: [localhost]
|
||||
|
||||
PLAY RECAP ***********************
|
||||
localhost: ok=2 changed=1 failed=0 [...]
|
||||
```
|
||||
|
||||
Should you run the playbook again, Ansible correctly detects that there have been no changes since the last time it was run and it reports that no actions were performed:
|
||||
|
||||
|
||||
```
|
||||
`localhost: ok=2 changed=0 failed=0 [...]`
|
||||
```
|
||||
|
||||
Next, Ansible must be instructed to push the repository to another Git server.
|
||||
|
||||
### Git push
|
||||
|
||||
The Git module in Ansible doesn't provide a **push** function, so that part of the process is manual. However, before you can push the repo to an alternate mirror, you have to have a mirror, and you have to configure the mirror as an alternate remote.
|
||||
|
||||
First, you must add an alternate remote to your Git configuration. Because the Git config file is an INI-style configuration, you can use the **ini_file** Ansible module to append the required information easily. Add this to your playbook:
|
||||
|
||||
|
||||
```
|
||||
- name: "Add alternate remote"
|
||||
ini_file: dest={{ git_dir }}/.git/config section='remote \"mirrored\"' option=url value='[git@gitlab.com][8]:example/soso-mirror.git'
|
||||
tags: configuration
|
||||
```
|
||||
|
||||
For this to work, you must have an empty repository on your destination server (in this case, [GitLab.com][9]). If you need to create destination repositories in your playbook, you can do that by following Steve Ovens' excellent article "[How to use Ansible to set up a Git server over SSH][10]."
|
||||
|
||||
Finally, use Git directly to push HEAD to your alternate remote:
|
||||
|
||||
|
||||
```
|
||||
- name: "Push the repo to alternate remote"
|
||||
shell: 'git --verbose --git-dir={{ git_dir }}/.git push mirrored HEAD'
|
||||
```
|
||||
|
||||
Run the playbook as usual, and then automate the process so that you never have to run it directly again. You can adjust the script with variables and specific Git commands to suit your needs, but with regular pulls and pushes, you can be sure that an important project that lives on one server is safely mirrored on another.
|
||||
|
||||
Here is the full playbook for reference:
|
||||
|
||||
|
||||
```
|
||||
\---
|
||||
\- name: "Mirror a Git repository with Ansible"
|
||||
hosts: localhost
|
||||
vars:
|
||||
git_dir: /tmp/soso.git
|
||||
|
||||
tasks:
|
||||
|
||||
- name: "Clone the Git repo"
|
||||
git:
|
||||
repo: '<https://github.com/ozkl/soso.git>'
|
||||
dest: '{{ git_dir }}'
|
||||
clone: yes
|
||||
update: yes
|
||||
|
||||
- name: "Add alternate remote"
|
||||
ini_file: dest={{ git_dir }}/.git/config section='remote \"mirrored\"' option=url value='[git@gitlab.com][8]:example/soso-mirror.git'
|
||||
tags: configuration
|
||||
|
||||
- name: "Push the repo to alternate remote"
|
||||
shell: 'git --verbose --git-dir={{ git_dir }}/.git push mirrored HEAD'
|
||||
```
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/11/how-host-github-gitlab-ansible
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/programming-code-keyboard-laptop.png?itok=pGfEfu2S (Hands programming)
|
||||
[2]: https://opensource.com/resources/what-is-git
|
||||
[3]: https://github.com/AntiMicro/antimicro/issues/3
|
||||
[4]: https://opensource.com/article/19/10/how-community-saved-artwork-creative-commons
|
||||
[5]: https://opensource.com/article/19/4/server-administration-git
|
||||
[6]: https://docs.ansible.com/ansible/latest/modules/git_module.html
|
||||
[7]: https://docs.ansible.com/ansible/latest/modules/ini_file_module.html
|
||||
[8]: mailto:git@gitlab.com
|
||||
[9]: http://GitLab.com
|
||||
[10]: https://opensource.com/article/17/8/ansible-environment-management
|
@ -0,0 +1,351 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to install and Configure Postfix Mail Server on CentOS 8)
|
||||
[#]: via: (https://www.linuxtechi.com/install-configure-postfix-mailserver-centos-8/)
|
||||
[#]: author: (James Kiarie https://www.linuxtechi.com/author/james/)
|
||||
|
||||
How to install and Configure Postfix Mail Server on CentOS 8
|
||||
======
|
||||
|
||||
**Postfix** is a free and opensource **MTA** (Mail Transfer Agent) used for routing or delivering emails on a Linux system. In this guide, you will learn how to install and configure Postfix on CentOS 8.
|
||||
|
||||
[![Install-configure-Postfx-Server-CentOS8][1]][2]
|
||||
|
||||
Lab set up:
|
||||
|
||||
* OS : CentOS 8 server
|
||||
* IP Address : 192.168.1.13
|
||||
* Hostname: server1.crazytechgeek.info (Ensure the domain name is pointed to the server’s IP)
|
||||
|
||||
|
||||
|
||||
### Step 1) Update the system
|
||||
|
||||
The first step is to ensure that the system packages are up to date. To do so, update the system as follows:
|
||||
|
||||
```
|
||||
# dnf update
|
||||
```
|
||||
|
||||
Before proceeding further, also ensure that no other **MTAs** such as **Sendmail** are existing as this will cause conflict with Postfix configuration. To remove Sendmail, for example, run the command:
|
||||
|
||||
```
|
||||
# dnf remove sendmail
|
||||
```
|
||||
|
||||
### Step 2) Set Hostname and update /etc/hosts file
|
||||
|
||||
Use below hostnamectl command to set the hostname on your system,
|
||||
|
||||
```
|
||||
# hostnamectl set-hostname server1.crazytechgeek.info
|
||||
# exec bash
|
||||
```
|
||||
|
||||
Additionally, you need to add the system’s hostname and IP entries in the /etc/hosts file
|
||||
|
||||
```
|
||||
# vim /etc/hosts
|
||||
192.168.1.13 server1.crazytechgeek.info
|
||||
```
|
||||
|
||||
Save and exit the file.
|
||||
|
||||
### Step 3) Install Postfix Mail Server
|
||||
|
||||
After verifying that no other MTA is running on the system install Postfix by executing the command:
|
||||
|
||||
```
|
||||
# dnf install postfix
|
||||
```
|
||||
|
||||
[![Install-Postfix-Centos8][1]][3]
|
||||
|
||||
### Step 4) Start and enable Postfix Service
|
||||
|
||||
Upon successful installation of Postfix, start and enable Postfix service by running:
|
||||
|
||||
```
|
||||
# systemctl start postfix
|
||||
# systemctl enable postfix
|
||||
```
|
||||
|
||||
To check Postfix status, run the following systemctl command
|
||||
|
||||
```
|
||||
# systemctl status postfix
|
||||
```
|
||||
|
||||
![Start-Postfix-check-status-centos8][1]
|
||||
|
||||
Great, we have verified that Postfix is up and running. Next, we are going to configure Postfix to send emails locally to our server.
|
||||
|
||||
### Step 5) Install mailx email client
|
||||
|
||||
Before configuring the Postfix server, we need to install mailx feature, To install mailx, run the command:
|
||||
|
||||
```
|
||||
# dnf install mailx
|
||||
```
|
||||
|
||||
![Install-Mailx-CentOS8][1]
|
||||
|
||||
### Step 6) Configure Postfix Mail Server
|
||||
|
||||
Postfix’s configuration file is located in **/etc/postfix/main.cf**. We need to make a few changes in the configuration file, so open it using your favorite text editor.
|
||||
|
||||
```
|
||||
# vi /etc/postfix/main.cf
|
||||
```
|
||||
|
||||
Make changes to the following lines:
|
||||
|
||||
```
|
||||
myhostname = server1.crazytechgeek.info
|
||||
mydomain = crazytechgeek.info
|
||||
myorigin = $mydomain
|
||||
## Uncomment and Set inet_interfaces to all ##
|
||||
inet_interfaces = all
|
||||
## Change to all ##
|
||||
inet_protocols = all
|
||||
## Comment ##
|
||||
#mydestination = $myhostname, localhost.$mydomain, localhost
|
||||
##- Uncomment ##
|
||||
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
|
||||
## Uncomment and add IP range ##
|
||||
mynetworks = 192.168.1.0/24, 127.0.0.0/8
|
||||
## Uncomment ##
|
||||
home_mailbox = Maildir/
|
||||
```
|
||||
|
||||
Once done, save and exit the configuration file. Restart postfix service for the changes to take effect
|
||||
|
||||
```
|
||||
# systemctl restart postfix
|
||||
```
|
||||
|
||||
### Step 7) Testing Postfix Mail Server
|
||||
|
||||
Test whether our configuration is working, first, create a test user
|
||||
|
||||
```
|
||||
# useradd postfixuser
|
||||
# passwd postfixuser
|
||||
```
|
||||
|
||||
Next, run the command below to send email from **pkumar** local user to another user ‘**postfixuser**‘
|
||||
|
||||
```
|
||||
# telnet localhost smtp
|
||||
or
|
||||
# telnet localhost 25
|
||||
```
|
||||
|
||||
If telnet service is not installed, you can install it using the command:
|
||||
|
||||
```
|
||||
# dnf install telnet -y
|
||||
```
|
||||
|
||||
When you run the command as earlier indicated, you should get the output as shown
|
||||
|
||||
```
|
||||
[root@linuxtechi ~]# telnet localhost 25
|
||||
Trying 127.0.0.1...
|
||||
Connected to localhost.
|
||||
Escape character is '^]'.
|
||||
220 server1.crazytechgeek.info ESMTP Postfix
|
||||
```
|
||||
|
||||
Above confirm that connectivity to postfix mail server is working fine. Next, type the command:
|
||||
|
||||
```
|
||||
# ehlo localhost
|
||||
```
|
||||
|
||||
Output will be something like this
|
||||
|
||||
```
|
||||
250-server1.crazytechgeek.info
|
||||
250-PIPELINING
|
||||
250-SIZE 10240000
|
||||
250-VRFY
|
||||
250-ETRN
|
||||
250-STARTTLS
|
||||
250-ENHANCEDSTATUSCODES
|
||||
250-8BITMIME
|
||||
250-DSN
|
||||
250 SMTPUTF8
|
||||
```
|
||||
|
||||
Next, run the commands highlighted in orange, like “mail from”, “rcpt to”, data and then finally type quit,
|
||||
|
||||
```
|
||||
mail from:<pkumar>
|
||||
250 2.1.0 Ok
|
||||
rcpt to:<postfixuser>
|
||||
250 2.1.5 Ok
|
||||
data
|
||||
354 End data with <CR><LF>.<CR><LF>
|
||||
Hello, Welcome to my mailserver (Postfix)
|
||||
.
|
||||
250 2.0.0 Ok: queued as B56BF1189BEC
|
||||
quit
|
||||
221 2.0.0 Bye
|
||||
Connection closed by foreign host
|
||||
```
|
||||
|
||||
Complete telnet command to send email from local user “**pkumar**” to another local user “**postfixuser**” would be something like below
|
||||
|
||||
![Send-email-with-telnet-centos8][1]
|
||||
|
||||
If everything went according to plan, you should be able to view the email sent at the new user’s home directory.
|
||||
|
||||
```
|
||||
# ls /home/postfixuser/Maildir/new
|
||||
1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
|
||||
#
|
||||
```
|
||||
|
||||
To read the email, simply use the cat command as follows:
|
||||
|
||||
```
|
||||
# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
|
||||
```
|
||||
|
||||
![Read-postfix-email-linux][1]
|
||||
|
||||
### Postfix mail server logs
|
||||
|
||||
Postfix mail server mail logs are stored in the file “**/var/log/maillog**“, use below command to view the live logs,
|
||||
|
||||
```
|
||||
# tail -f /var/log/maillog
|
||||
```
|
||||
|
||||
![postfix-maillogs-centos8][1]
|
||||
|
||||
### Securing Postfix Mail Server
|
||||
|
||||
It is always recommended secure the communication of between clients and postfix server, this can be achieved using SSL certificates, these certificates can be either from trusted authority or Self Signed Certificates. In this tutorial we will generate Self Signed certificated for postfix using **openssl** command,
|
||||
|
||||
I am assuming openssl is already installed on your system, in case it is not installed then use following dnf command,
|
||||
|
||||
```
|
||||
# dnf install openssl -y
|
||||
```
|
||||
|
||||
Generate Private key and CSR (Certificate Signing Request) using beneath openssl command,
|
||||
|
||||
```
|
||||
# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr
|
||||
```
|
||||
|
||||
![Postfix-Key-CSR-CentOS8][1]
|
||||
|
||||
Now Generate Self signed certificate using following openssl command,
|
||||
|
||||
```
|
||||
# openssl x509 -req -days 365 -in mail.csr -signkey mail.key -out mail.crt
|
||||
Signature ok
|
||||
subject=C = IN, ST = New Delhi, L = New Delhi, O = IT, OU = IT, CN = server1.crazytechgeek.info, emailAddress = root@linuxtechi
|
||||
Getting Private key
|
||||
#
|
||||
```
|
||||
|
||||
Now copy private key and certificate file to /etc/postfix directory
|
||||
|
||||
```
|
||||
# cp mail.key mail.crt /etc/postfix
|
||||
```
|
||||
|
||||
Update Private key and Certificate file’s path in postfix configuration file,
|
||||
|
||||
```
|
||||
# vi /etc/postfix/main.cf
|
||||
………
|
||||
smtpd_use_tls = yes
|
||||
smtpd_tls_cert_file = /etc/postfix/mail.crt
|
||||
smtpd_tls_key_file = /etc/postfix/mail.key
|
||||
smtpd_tls_security_level = may
|
||||
………
|
||||
```
|
||||
|
||||
Restart postfix service to make above changes into the effect.
|
||||
|
||||
```
|
||||
# systemctl restart postfix
|
||||
```
|
||||
|
||||
Let’s try to send email to internal local domain and external domain using mailx client.
|
||||
|
||||
**Sending local internal email from pkumar user to postfixuser**
|
||||
|
||||
```
|
||||
# echo "test email" | mailx -s "Test email from Postfix MailServer" -r root@linuxtechi root@linuxtechi
|
||||
```
|
||||
|
||||
Check and read the email using the following,
|
||||
|
||||
```
|
||||
# cd /home/postfixuser/Maildir/new/
|
||||
# ll
|
||||
total 8
|
||||
-rw-------. 1 postfixuser postfixuser 476 Nov 12 17:34 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
|
||||
-rw-------. 1 postfixuser postfixuser 612 Nov 13 02:40 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
|
||||
# cat 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
|
||||
```
|
||||
|
||||
![Read-Postfixuser-Email-CentOS8][1]
|
||||
|
||||
**Sending email from postfixuser to external domain ( [root@linuxtechi][4])**
|
||||
|
||||
```
|
||||
# echo "External Test email" | mailx -s "Postfix MailServer" -r root@linuxtechi root@linuxtechi
|
||||
```
|
||||
|
||||
**Note:** If Your IP is not blacklisted anywhere then your email to external domain will be delivered otherwise it will be bounced saying that IP is blacklisted in so and so spamhaus database.
|
||||
|
||||
### Check Postfix mail queue
|
||||
|
||||
Use mailq command to list mails which are in queue.
|
||||
|
||||
```
|
||||
# mailq
|
||||
Mail queue is empty
|
||||
#
|
||||
```
|
||||
|
||||
And that’s it! Our Postfix configuration is working! That’s all for now. We hope you found this tutorial insightful and that you can comfortably set up your local Postfix server.
|
||||
|
||||
* [Facebook][5]
|
||||
* [Twitter][6]
|
||||
* [LinkedIn][7]
|
||||
* [Reddit][8]
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/install-configure-postfix-mailserver-centos-8/
|
||||
|
||||
作者:[James Kiarie][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/james/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
|
||||
[2]: https://www.linuxtechi.com/wp-content/uploads/2019/11/Install-configure-Postfx-Server-CentOS8.jpg
|
||||
[3]: https://www.linuxtechi.com/wp-content/uploads/2019/11/Install-Postfix-Centos8.png
|
||||
[4]: https://www.linuxtechi.com/cdn-cgi/l/email-protection
|
||||
[5]: http://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.linuxtechi.com%2Finstall-configure-postfix-mailserver-centos-8%2F&t=How%20to%20install%20and%20Configure%20Postfix%20Mail%20Server%20on%20CentOS%208
|
||||
[6]: http://twitter.com/share?text=How%20to%20install%20and%20Configure%20Postfix%20Mail%20Server%20on%20CentOS%208&url=https%3A%2F%2Fwww.linuxtechi.com%2Finstall-configure-postfix-mailserver-centos-8%2F&via=Linuxtechi
|
||||
[7]: http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.linuxtechi.com%2Finstall-configure-postfix-mailserver-centos-8%2F&title=How%20to%20install%20and%20Configure%20Postfix%20Mail%20Server%20on%20CentOS%208
|
||||
[8]: http://www.reddit.com/submit?url=https%3A%2F%2Fwww.linuxtechi.com%2Finstall-configure-postfix-mailserver-centos-8%2F&title=How%20to%20install%20and%20Configure%20Postfix%20Mail%20Server%20on%20CentOS%208
|
@ -0,0 +1,73 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Why blockchain (might be) coming to an IoT implementation near you)
|
||||
[#]: via: (https://www.networkworld.com/article/3386881/why-blockchain-might-be-coming-to-an-iot-implementation-near-you.html#tk.rss_all)
|
||||
[#]: author: (Jon Gold https://www.networkworld.com/author/Jon-Gold/)
|
||||
|
||||
为什么区块链(可能会)来到你身边的物联网
|
||||
======
|
||||
|
||||
![MF3D / Getty Images][1]
|
||||
|
||||
各个公司发现,物联网与最近其他许多流行的企业计算技术有着良好的合作关系,以支持加密货币而闻名的分布式信任创新系统的区块链也不例外。然而,在物联网应用中实施区块链可能具有挑战性,并且需要对技术有深入的了解。
|
||||
|
||||
区块链是一个跟踪各种交易的分布式账本。链上的每个“块”都包含要防止篡改的交易记录或其他数据,并通过加密散列链接到前一个,这意味着对块的任何篡改都将使该链接无效。节点(几乎可以是其中装有 CPU 的任何节点)通过分布式的对等网络进行通信,以共享数据并确保链中数据的有效性。
|
||||
|
||||
北卡罗来纳大学格林波若分校的管理学教授 Nir Kshetri 表示,该系统之所以有效,是因为所有的块都必须就它们所保护的数据的细节达成一致。如果有人尝试更改给定节点上的先前事务,则网络上的其余数据将会被回推回来。“数据的旧记录仍然存在,” Kshetri 说。
|
||||
|
||||
这是一项强大的安全技术 —— 如果没有坏人成功控制给定区块链上的所有(LCTT 译注:应为“大部分”)节点([著名的“51% 攻击”][4]),那么该区块链保护的数据就不会被伪造或以其他方式弄乱。因此,对于在物联网世界某些角落的公司来说,使用区块链是一种有吸引力的选择也就不足为奇了。
|
||||
|
||||
物联网安全初创企业 NXMLabs 的首席技术官兼联合创始人 Jay Fallah 认为,除了区块链能够在网络上安全分发可信信息的能力这一事实之外,部分原因还在于区块链在技术堆栈中的地位。
|
||||
|
||||
“区块链站在一个非常有趣的交叉点。在过去的 15 年中,在存储、CPU 等方面,计算技术一直在加速发展,但是直到最近,网络技术并没有发生太大变化。”他说,“ 区块链不是网络技术、不是数据技术,而是二者兼具。”
|
||||
|
||||
### 区块链和物联网
|
||||
|
||||
区块链作为物联网世界的一部分的意义取决于你在和谁交谈以及他们在出售什么,但是最接近的概括可能来自企业区块链供应商 Filament 的首席执行官 Allison Clift-Jenning。
|
||||
|
||||
她说:“在任何地方,人们都想互相信任,并用的是非常古老的方式,这通常是用例入手的好地方。”
|
||||
|
||||
直接从 Filament 自己的客户群中挑选出来的一个例子是二手车销售。Filament 与“一家主要的底特律汽车制造商”合作,创建了一个受信任的车辆历史平台,该平台基于一种设备,该设备可插入二手车的诊断端口,从那里获取信息,并将该数据写入区块链。像这样,二手车的历史记录就是不可变的,包括它的安全气囊是否曾经打开过,是否被水淹过等等。任何不道德的二手车或不诚实的前车主都无法更改数据,甚至拔掉设备也将意味着记录中存在可疑的空白期。
|
||||
|
||||
SAP 物联网高级副总裁兼全球负责人 Elvira Wallis 表示,当今大多数区块链物联网方案都与信任和数据验证有关。
|
||||
|
||||
她说:“我们遇到的大多数用例都在项目的跟踪和溯源领域,”她举例说明了高端食品的农场到餐桌跟踪系统,该系统使用安装在板条箱和卡车上的区块链节点,这样就可以为物品在运输基础设施中的通过创建无懈可击的记录。(例如,该牛排在这样的温度下冷藏了多长时间,今天运输了多长时间,等等。)
|
||||
|
||||
### 将区块链与物联网一起使用是个好主意吗?
|
||||
|
||||
不同的供应商针对不同的用例出售不同的基于区块链的产品,这些产品使用不同的区块链技术实现,其中一些与加密货币中使用的经典的、线性的、挖矿式交易区块链不太一样。
|
||||
|
||||
这意味着你目前需要从供应商那里购买特定功能。451 Research 高级分析师 Csilla Zsigri 表示,很少有客户组织拥有可以实施区块链安全系统的内部专家。
|
||||
|
||||
她说,区块链技术的任何智能应用的想法都是发挥其优势,为关键信息创建可信赖的平台。
|
||||
|
||||
Zsigri 说:“这就是我真正看到增值的地方,只是增加了一层信任和验证。”
|
||||
|
||||
专家们一致认为,尽管相当了解基于区块链的物联网应用程序的基本概念,但它并不适用于每个物联网用例。 将区块链应用于非交易系统(尽管有例外,包括 NXM Labs 的用于物联网设备的基于区块链配置的产品)通常不是正确的举动。
|
||||
|
||||
如果不需要在两个不同的参与方之间共享数据,而是简单地将数据从传感器移到后端,那么区块链通常就没有意义,因为它实际上并没有为当前大多数物联网实现中的数据分析增加任何关键的增值。
|
||||
|
||||
“今天,我们仍处于区块链的早期拨号时代。”Clift-Jennings 说,“它比典型的数据库要慢,它甚至无法读取,也常常没有查询引擎。从本质上讲,你并没有真正获得隐私。”
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3386881/why-blockchain-might-be-coming-to-an-iot-implementation-near-you.html#tk.rss_all
|
||||
|
||||
作者:[Jon Gold][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Jon-Gold/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://images.idgesg.net/images/article/2019/02/chains_binary_data_blockchain_security_by_mf3d_gettyimages-941175690_2400x1600-100788434-large.jpg
|
||||
[2]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
|
||||
[3]: https://www.networkworld.com/article/3291790/data-center/how-edge-networking-and-iot-will-reshape-data-centers.html
|
||||
[4]: https://bitcoinist.com/51-percent-attack-hackers-steals-18-million-bitcoin-gold-btg-tokens/
|
||||
[5]: https://www.facebook.com/NetworkWorld/
|
||||
[6]: https://www.linkedin.com/company/network-world
|
@ -7,36 +7,36 @@
|
||||
[#]: via: (https://www.2daygeek.com/bash-script-to-generate-patching-compliance-report-on-centos-rhel-systems/)
|
||||
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
|
||||
|
||||
Bash Script to Generate Patching Compliance Report on CentOS/RHEL Systems
|
||||
在 CentOS/RHEL 系统上生成补丁合规报告的 Bash 脚本
|
||||
======
|
||||
|
||||
If you are running a large Linux environment you may have already integrated your Red Hat systems with the Satellite.
|
||||
如果你运行的是大型 Linux 环境,那么你可能已经将 Red Hat 与 Satellite 集成了。
|
||||
|
||||
If yes, there is a way to export this from the Satellite Server so you don’t have to worry about patching compliance reports.
|
||||
如果是的话,有一种方法可以从 Satellite 服务器导出它,因此不必担心补丁合规性报告。
|
||||
|
||||
But if you are running a small Red Hat environment without satellite integration, or if it is CentOS systems, this script will help you to create a report.
|
||||
但是,如果你运行的是没有 Satellite 集成的小型 Red Hat 环境,或者它是 CentOS 系统,那么此脚本将帮助你创建报告。
|
||||
|
||||
The patching compliance report is usually created monthly once or three months once, depending on the company’s needs.
|
||||
补丁合规性报告通常每月创建一次或三个月一次,具体取决于公司的需求。
|
||||
|
||||
Add a cronjob based on your needs to automate this.
|
||||
根据你的需要添加 cronjob 来自动执行此功能。
|
||||
|
||||
This **[bash script][1]** is generally good to run with less than 50 systems, but there is no limit.
|
||||
此 [bash 脚本][1] 通常适合于少于 50 个系统运行,但没有限制。
|
||||
|
||||
Keeping the system up-to-date is an important task for Linux administrators, keeping your computer very stable and secure.
|
||||
保持系统最新是 Linux 管理员的一项重要任务,它使你的计算机非常稳定和安全。
|
||||
|
||||
The following articles may help you to learn more about installing security patches on Red Hat (RHEL) and CentOS systems.
|
||||
以下文章可以帮助你了解有关在红帽 (RHEL) 和 CentOS 系统上安装安全修补程序的更多详细信息。
|
||||
|
||||
* **[How to check available security updates on Red Hat (RHEL) and CentOS system][2]**
|
||||
* **[Four ways to install security updates on Red Hat (RHEL) & CentOS systems][3]**
|
||||
* **[Two methods to check or list out installed security updates on Red Hat (RHEL) & CentOS system][4]**
|
||||
* **[如何检查红帽 (RHEL) 和 CentOS 系统上的可用安全更新][2]**
|
||||
* **[在红帽 (RHEL) 和 CentOS 系统上安装安全更新的四种方法][3]**
|
||||
* **[两种用来检查或列出红帽 (RHEL) 和 CentOS 系统上已安装的安全更新的方法][4]**
|
||||
|
||||
|
||||
|
||||
Four **[shell scripts][5]** are included in this tutorial and pick the suitable one for you.
|
||||
此教程中包含四个 [shell 脚本][5],选择适合你的脚本。
|
||||
|
||||
### Method-1: Bash Script to Generate Patching Compliance Report for Security Errata on CentOS/RHEL Systems
|
||||
### 方法 1:为 CentOS / RHEL 系统上的安全修补生成补丁合规性报告的 Bash 脚本
|
||||
|
||||
This script allows you to create a security errata patch compliance report only. It sends the output via a mail in a plain text.
|
||||
此脚本只会生成安全修补合规性报告。它会通过纯文本发送邮件。
|
||||
|
||||
```
|
||||
# vi /opt/scripts/small-scripts/sec-errata.sh
|
||||
@ -58,13 +58,13 @@ echo "+---------------------------------------------+" >> $MESSAGE
|
||||
mail -s "$SUBJECT" "$TO" < $MESSAGE
|
||||
```
|
||||
|
||||
Run the script file once you have added the above script.
|
||||
添加完上面的脚本后运行它。
|
||||
|
||||
```
|
||||
# sh /opt/scripts/small-scripts/sec-errata.sh
|
||||
```
|
||||
|
||||
You get an output like the one below.
|
||||
你会看到下面的输出。
|
||||
|
||||
```
|
||||
# cat /tmp/sec-up.txt
|
||||
@ -79,7 +79,7 @@ server4
|
||||
+-----------------------------------+
|
||||
```
|
||||
|
||||
Add the following cronjob to get the patching compliance report once a month.
|
||||
现价下面的 cronjob 来每个月得到一份补丁合规性报告。
|
||||
|
||||
```
|
||||
# crontab -e
|
||||
@ -87,9 +87,9 @@ Add the following cronjob to get the patching compliance report once a month.
|
||||
@monthly /bin/bash /opt/scripts/system-uptime-script-1.sh
|
||||
```
|
||||
|
||||
### Method-1a: Bash Script to Generate Patching Compliance Report for Security Errata on CentOS/RHEL Systems
|
||||
### 方法 1a:为 CentOS / RHEL 系统上的安全修补生成补丁合规性报告的 Bash 脚本
|
||||
|
||||
This script allows you to generate a security errata patch compliance report. It sends the output through a mail with the CSV file.
|
||||
脚本会为你生成安全修补合规性报告。它会通过 CSV 文件发送邮件。
|
||||
|
||||
```
|
||||
# vi /opt/scripts/small-scripts/sec-errata-1.sh
|
||||
@ -105,19 +105,19 @@ echo "Patching Report for `date +"%B %Y"`" | mailx -s "Patching Report on `date`
|
||||
rm /tmp/sec-up.csv
|
||||
```
|
||||
|
||||
Run the script file once you have added the above script.
|
||||
添加完上面的脚本后运行它。
|
||||
|
||||
```
|
||||
# sh /opt/scripts/small-scripts/sec-errata-1.sh
|
||||
```
|
||||
|
||||
You get an output like the one below.
|
||||
你会看到下面的输出。
|
||||
|
||||
![][6]
|
||||
|
||||
### Method-2: Bash Script to Generate Patching Compliance Report for Security Errata, Bugfix, and Enhancement on CentOS/RHEL Systems
|
||||
### 方法 2:为 CentOS / RHEL 系统上的安全修补、bugfix、增强生成补丁合规性报告的 Bash 脚本
|
||||
|
||||
This script allows you to generate patching compliance reports for Security Errata, Bugfix, and Enhancement. It sends the output via a mail in a plain text.
|
||||
脚本会为你生成安全修补、bugfix、增强的补丁合规性报告。它会通过纯文本发送邮件。
|
||||
|
||||
```
|
||||
# vi /opt/scripts/small-scripts/sec-errata-bugfix-enhancement.sh
|
||||
@ -141,13 +141,13 @@ echo "+------------------------------------------------------------------+" >> $
|
||||
mail -s "$SUBJECT" "$TO" < $MESSAGE
|
||||
```
|
||||
|
||||
Run the script file once you have added the above script.
|
||||
添加完上面的脚本后运行它。
|
||||
|
||||
```
|
||||
# sh /opt/scripts/small-scripts/sec-errata-bugfix-enhancement.sh
|
||||
```
|
||||
|
||||
You get an output like the one below.
|
||||
你会看到下面的输出。
|
||||
|
||||
```
|
||||
# cat /tmp/sec-up.txt
|
||||
@ -162,7 +162,7 @@ server04 16
|
||||
+------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
Add the following cronjob to get the patching compliance report once every three months. This script is scheduled to run on the 1’st of January, April, July and October months.
|
||||
添加下面的 cronjob 来每三个月得到补丁合规性报告。该脚本计划在一月、四月、七月、十月的 1 号运行。
|
||||
|
||||
```
|
||||
# crontab -e
|
||||
@ -170,9 +170,9 @@ Add the following cronjob to get the patching compliance report once every three
|
||||
0 0 01 */3 * /bin/bash /opt/scripts/system-uptime-script-1.sh
|
||||
```
|
||||
|
||||
### Method-2a: Bash Script to Generate Patching Compliance Report for Security Errata, Bugfix, and Enhancement on CentOS/RHEL Systems
|
||||
### 方法 2a:为 CentOS / RHEL 系统上的安全修补、bugfix、增强生成补丁合规性报告的 Bash 脚本
|
||||
|
||||
This script allows you to generate patching compliance reports for Security Errata, Bugfix, and Enhancement. It sends the output through a mail with the CSV file.
|
||||
脚本会为你生成安全修补、bugfix、增强的补丁合规性报告。它会通过 CSV 文件发送邮件。
|
||||
|
||||
```
|
||||
# vi /opt/scripts/small-scripts/sec-errata-bugfix-enhancement-1.sh
|
||||
@ -190,13 +190,13 @@ echo "Patching Report for `date +"%B %Y"`" | mailx -s "Patching Report on `date`
|
||||
rm /tmp/sec-up.csv
|
||||
```
|
||||
|
||||
Run the script file once you have added the above script.
|
||||
添加完上面的脚本后运行它。
|
||||
|
||||
```
|
||||
# sh /opt/scripts/small-scripts/sec-errata-bugfix-enhancement-1.sh
|
||||
```
|
||||
|
||||
You get an output like the one below.
|
||||
你会看到下面的输出。
|
||||
|
||||
![][6]
|
||||
|
||||
@ -206,7 +206,7 @@ via: https://www.2daygeek.com/bash-script-to-generate-patching-compliance-report
|
||||
|
||||
作者:[Magesh Maruthamuthu][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
Loading…
Reference in New Issue
Block a user