分类 系统运维 下的文章

本指南将向你介绍如何使用 Authconfig 在命令行中将无图形界面的 CentOS 7 服务器集成到 Samba4 AD 域控制器中。

这类设置提供了由 Samba 持有的单一集中式帐户数据库,允许 AD 用户通过网络基础设施对 CentOS 服务器进行身份验证。

要求

  1. 在 Ubuntu 上使用 Samba4 创建 AD 基础架构
  2. CentOS 7.3 安装指南

步骤 1:为 Samba4 AD DC 配置 CentOS

1、 在开始将 CentOS 7 服务器加入 Samba4 DC 之前,你需要确保网络接口被正确配置为通过 DNS 服务查询域。

运行 ip address 命令列出你机器网络接口,选择要编辑的特定网卡,通过针对接口名称运行 nmtui-edit 命令(如本例中的 ens33),如下所示。

# ip address
# nmtui-edit ens33

List Network Interfaces

列出网络接口

2、 打开网络接口进行编辑后,添加最适合 LAN 的静态 IPv4 配置,并确保为 DNS 服务器设置 Samba AD 域控制器 IP 地址。

另外,在搜索域中追加你的域的名称,并使用 [TAB] 键跳到确定按钮来应用更改。

当你仅对域 dns 记录使用短名称时, 已提交的搜索域保证域对应项会自动追加到 dns 解析 (FQDN) 中。

Configure Network Interface

配置网络接口

3、最后,重启网络守护进程以应用更改,并通过对域名和域控制器 ping 来测试 DNS 解析是否正确配置,如下所示。

# systemctl restart network.service
# ping -c2 tecmint.lan
# ping -c2 adc1
# ping -c2 adc2

Verify DNS Resolution on Domain

验证域上的 DNS 解析

4、 另外,使用下面的命令配置你的计算机主机名并重启机器应用更改。

# hostnamectl set-hostname your_hostname
# init 6

使用以下命令验证主机名是否正确配置。

# cat /etc/hostname
# hostname

5、 最后,使用 root 权限运行以下命令,与 Samba4 AD DC 同步本地时间。

# yum install ntpdate
# ntpdate domain.tld

Sync Time with Samba4 AD DC

与 Samba4 AD DC 同步时间

步骤 2:将 CentOS 7 服务器加入到 Samba4 AD DC

6、 要将 CentOS 7 服务器加入到 Samba4 AD 中,请先用具有 root 权限的帐户在计算机上安装以下软件包。

# yum install authconfig samba-winbind samba-client samba-winbind-clients

7、 为了将 CentOS 7 服务器与域控制器集成,可以使用 root 权限运行 authconfig-tui,并使用下面的配置。

# authconfig-tui

首屏选择:

  • 在 User Information 中:

    • Use Winbind
  • 在 Authentication 中使用[空格键]选择:

    • Use Shadow Password
    • Use Winbind Authentication
    • Local authorization is sufficient

Authentication Configuration

验证配置

8、 点击 Next 进入 Winbind 设置界面并配置如下:

  • Security Model: ads
  • Domain = YOUR\_DOMAIN (use upper case)
  • Domain Controllers = domain machines FQDN (comma separated if more than one)
  • ADS Realm = YOUR\_DOMAIN.TLD
  • Template Shell = /bin/bash

Winbind Settings

Winbind 设置

9、 要加入域,使用 [tab] 键跳到 “Join Domain” 按钮,然后按[回车]键加入域。

在下一个页面,添加具有提升权限的 Samba4 AD 帐户的凭据,以将计算机帐户加入 AD,然后单击 “OK” 应用设置并关闭提示。

请注意,当你输入用户密码时,凭据将不会显示在屏幕中。在下面再次点击 OK,完成 CentOS 7 的域集成。

Join Domain to Samba4 AD DC

加入域到 Samba4 AD DC

Confirm Winbind Settings

确认 Winbind 设置

要强制将机器添加到特定的 Samba AD OU 中,请使用 hostname 命令获取计算机的完整名称,并使用机器名称在该 OU 中创建一个新的计算机对象。

将新对象添加到 Samba4 AD 中的最佳方法是已经集成到安装了 RSAT 工具的域的 Windows 机器上使用 ADUC 工具。

重要:加入域的另一种方法是使用 authconfig 命令行,它可以对集成过程进行广泛的控制。

但是,这种方法很容易因为其众多参数造成错误,如下所示。该命令必须输入一条长命令行。

# authconfig --enablewinbind --enablewinbindauth --smbsecurity ads --smbworkgroup=YOUR_DOMAIN --smbrealm YOUR_DOMAIN.TLD --smbservers=adc1.yourdomain.tld --krb5realm=YOUR_DOMAIN.TLD --enablewinbindoffline --enablewinbindkrb5 --winbindtemplateshell=/bin/bash--winbindjoin=domain_admin_user --update  --enablelocauthorize   --savebackup=/backups

10、 机器加入域后,通过使用以下命令验证 winbind 服务是否正常运行。

# systemctl status winbind.service

11、 接着检查是否在 Samba4 AD 中成功创建了 CentOS 机器对象。从安装了 RSAT 工具的 Windows 机器使用 AD 用户和计算机工具,并进入到你的域计算机容器。一个名为 CentOS 7 Server 的新 AD 计算机帐户对象应该在右边的列表中。

12、 最后,使用文本编辑器打开 samba 主配置文件(/etc/samba/smb.conf)来调整配置,并在 [global] 配置块的末尾附加以下行,如下所示:

winbind use default domain = true
winbind offline logon = true

Configure Samba

配置 Samba

13、 为了在 AD 帐户首次登录时在机器上创建本地家目录,请运行以下命令:

# authconfig --enablemkhomedir --update

14、 最后,重启 Samba 守护进程使更改生效,并使用一个 AD 账户登陆验证域加入。AD 帐户的家目录应该会自动创建。

# systemctl restart winbind
# su - domain_account

Verify Domain Joining

验证域加入

15、 通过以下命令之一列出域用户或域组。

# wbinfo -u
# wbinfo -g

List Domain Users and Groups

列出域用户和组

16、 要获取有关域用户的信息,请运行以下命令。

# wbinfo -i domain_user

List Domain User Info

列出域用户信息

17、 要显示域摘要信息,请使用以下命令。

# net ads info

List Domain Summary

列出域摘要

步骤 3:使用 Samba4 AD DC 帐号登录CentOS

18、 要在 CentOS 中与域用户进行身份验证,请使用以下命令语法之一。

# su - ‘domain\domain_user’
# su - domain\\domain_user

或者在 samba 配置文件中设置了 winbind use default domain = true 参数的情况下,使用下面的语法。

# su - domain_user
# su - [email protected]

19、 要为域用户或组添加 root 权限,请使用 visudocommand 编辑 sudoers 文件,并添加以下截图所示的行。

YOUR_DOMAIN\\domain_username             ALL=(ALL:ALL) ALL      #For domain users
%YOUR_DOMAIN\\your_domain\  group            ALL=(ALL:ALL) ALL  #For domain groups

或者在 samba 配置文件中设置了 winbind use default domain = true 参数的情况下,使用下面的语法。

domain_username                  ALL=(ALL:ALL) ALL      #For domain users
%your_domain\  group             ALL=(ALL:ALL) ALL  #For domain groups

Grant Root Privileges on Domain Users

授予域用户 root 权限

20、 针对 Samba4 AD DC 的以下一系列命令也可用于故障排除:

# wbinfo -p #Ping domain
# wbinfo -n domain_account #Get the SID of a domain account
# wbinfo -t  #Check trust relationship

21、 要离开该域, 请使用具有提升权限的域帐户对你的域名运行以下命令。从 AD 中删除计算机帐户后, 重启计算机以在集成进程之前还原更改。

# net ads leave -w DOMAIN -U domain_admin
# init 6

就是这样了!尽管此过程主要集中在将 CentOS 7 服务器加入到 Samba4 AD DC 中,但这里描述的相同步骤也适用于将 CentOS 服务器集成到 Microsoft Windows Server 2012 AD 中。


作者简介:

Matei Cezar - 我是一个电脑上瘾的家伙,开源和基于 linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约 4 年的经验。


via: https://www.tecmint.com/integrate-centos-7-to-samba4-active-directory/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Apache Hadoop 软件库是一个框架,它允许使用简单的编程模型在计算机集群上对大型数据集进行分布式处理。Apache™ Hadoop® 是可靠、可扩展、分布式计算的开源软件。

该项目包括以下模块:

  • Hadoop Common:支持其他 Hadoop 模块的常用工具。
  • Hadoop 分布式文件系统 (HDFS™):分布式文件系统,可提供对应用程序数据的高吞吐量访问支持。
  • Hadoop YARN:作业调度和集群资源管理框架。
  • Hadoop MapReduce:一个基于 YARN 的大型数据集并行处理系统。

本文将帮助你逐步在 CentOS 上安装 hadoop 并配置单节点 hadoop 集群。

安装 Java

在安装 hadoop 之前,请确保你的系统上安装了 Java。使用此命令检查已安装 Java 的版本。

java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

要安装或更新 Java,请参考下面逐步的说明。

第一步是从 Oracle 官方网站下载最新版本的 java。

cd /opt/
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz"
tar xzf jdk-7u79-linux-x64.tar.gz

需要设置使用更新版本的 Java 作为替代。使用以下命令来执行此操作。

cd /opt/jdk1.7.0_79/
alternatives --install /usr/bin/java java /opt/jdk1.7.0_79/bin/java 2
alternatives --config java
There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /opt/jdk1.7.0_60/bin/java
 + 2           /opt/jdk1.7.0_72/bin/java
   3           /opt/jdk1.7.0_79/bin/java

Enter to keep the current selection[+], or type selection number: 3 [Press Enter]

现在你可能还需要使用 alternatives 命令设置 javacjar 命令路径。

alternatives --install /usr/bin/jar jar /opt/jdk1.7.0_79/bin/jar 2
alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_79/bin/javac 2
alternatives --set jar /opt/jdk1.7.0_79/bin/jar
alternatives --set javac /opt/jdk1.7.0_79/bin/javac

下一步是配置环境变量。使用以下命令正确设置这些变量。

设置 JAVA_HOME 变量:

export JAVA_HOME=/opt/jdk1.7.0_79

设置 JRE_HOME 变量:

export JRE_HOME=/opt/jdk1.7.0_79/jre

设置 PATH 变量:

export PATH=$PATH:/opt/jdk1.7.0_79/bin:/opt/jdk1.7.0_79/jre/bin

安装 Apache Hadoop

设置好 java 环境后。开始安装 Apache Hadoop。

第一步是创建用于 hadoop 安装的系统用户帐户。

useradd hadoop
passwd hadoop

现在你需要配置用户 hadoop 的 ssh 密钥。使用以下命令启用无需密码的 ssh 登录。

su - hadoop
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
exit

现在从官方网站 hadoop.apache.org 下载 hadoop 最新的可用版本。

cd ~
wget http://apache.claz.org/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
tar xzf hadoop-2.6.0.tar.gz
mv hadoop-2.6.0 hadoop

下一步是设置 hadoop 使用的环境变量。

编辑 ~/.bashrc,并在文件末尾添加以下这些值。

export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

在当前运行环境中应用更改。

source ~/.bashrc

编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 并设置 JAVA_HOME 环境变量。

export JAVA_HOME=/opt/jdk1.7.0_79/

现在,先从配置基本的 hadoop 单节点集群开始。

首先编辑 hadoop 配置文件并进行以下更改。

cd /home/hadoop/hadoop/etc/hadoop

让我们编辑 core-site.xml

<configuration>
<property>
  <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
</property>
</configuration>

接着编辑 hdfs-site.xml

<configuration>
<property>
 <name>dfs.replication</name>
 <value>1</value>
</property>

<property>
  <name>dfs.name.dir</name>
    <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>

<property>
  <name>dfs.data.dir</name>
    <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
</configuration>

并编辑 mapred-site.xml

<configuration>
 <property>
  <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
</configuration>

最后编辑 yarn-site.xml

<configuration>
 <property>
  <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
 </property>
</configuration>

现在使用以下命令格式化 namenode:

hdfs namenode -format

要启动所有 hadoop 服务,请使用以下命令:

cd /home/hadoop/hadoop/sbin/
start-dfs.sh
start-yarn.sh

要检查所有服务是否正常启动,请使用 jps 命令:

jps

你应该看到这样的输出。

26049 SecondaryNameNode
25929 DataNode
26399 Jps
26129 JobTracker
26249 TaskTracker
25807 NameNode

现在,你可以在浏览器中访问 Hadoop 服务:http://your-ip-address:8088/

hadoop

谢谢阅读!!!


via: https://www.unixmen.com/setup-apache-hadoop-centos/

作者:anismaj 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

监控服务器 - 什么是 Zabbix

Zabbix 是企业级开源分布式监控服务器解决方案。该软件能监控网络的不同参数以及服务器的完整性,还允许为任何事件配置基于电子邮件的警报。Zabbix 根据存储在数据库(例如 MySQL)中的数据提供报告和数据可视化功能。软件收集的每个测量指标都可以通过基于 Web 的界面访问。

Zabbix 根据 GNU 通用公共许可证版本 2(GPLv2)的条款发布,完全免费。

在本教程中,我们将在运行 MySQL、Apache 和 PHP 的 Ubuntu 16.04 server 上安装 Zabbix。

安装 Zabbix 服务器

首先,我们需要安装 Zabbix 所需的几个 PHP 模块:

# apt-get install php7.0-bcmath php7.0-xml php7.0-mbstring

Ubuntu 仓库中提供的 Zabbix 软件包已经过时了。使用官方 Zabbix 仓库安装最新的稳定版本。

通过执行以下命令来安装仓库软件包:

$ wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
# dpkg -i zabbix-release_3.2-1+xenial_all.deb

然后更新 apt 包源:

# apt-get update

现在可以安装带有 MySQL 支持和 PHP 前端的 Zabbix 服务器。执行命令:

# apt-get install zabbix-server-mysql zabbix-frontend-php

安装 Zabbix 代理:

# apt-get install zabbix-agent

Zabbix 现已安装。下一步是配置数据库来存储数据。

为 Zabbix 配置 MySQL

我们需要创建一个新的 MySQL 数据库,Zabbix 将用来存储收集的数据。

启动 MySQL shell:

$ mysql -uroot -p

接下来:

mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'usr_strong_pwd';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> EXIT;
Bye

接下来,导入初始表和数据。

# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

输入在 MySQL shell 中创建的 zabbix 用户的密码。

接下来,我们需要编辑 Zabbix 服务器配置文件,它是 /etc/zabbix/zabbis_server.conf

# $EDITOR /etc/zabbix/zabbix_server.conf

搜索文件的 DBPassword 部分:

### Option: DBPassword                           
#       Database password. Ignored for SQLite.   
#       Comment this line if no password is used.
#                                                
# Mandatory: no                                  
# Default:                                       
# DBPassword=

取消注释 DBPassword= 这行,并添加在 MySQL 中创建的密码:

DBPassword=usr_strong_pwd

接下来,查找 DBHost= 这行并取消注释。

保存并退出。

配置 PHP

我们需要配置 PHP 来使用 Zabbix。在安装过程中,安装程序在 /etc/zabbix 中创建了一个名为 apache.conf 的配置文件。打开此文件:

# $EDITOR /etc/zabbix/apache.conf

此时,只需要取消注释 date.timezone 并设置正确的时区:


<IfModule mod_php7.c>
    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value always_populate_raw_post_data -1
    php_value date.timezone Europe/Rome
</IfModule>

保存并退出。

此时,重启 Apache 并启动 Zabbix Server 服务,使其能够在开机时启动:

# systemctl restart apache2
# systemctl start zabbix-server
# systemctl enable zabbix-server

systemctl 检查 Zabbix 状态:

# systemctl status zabbix-server

这个命令应该输出:

â zabbix-server.service - Zabbix Server
 Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor pr
 Active: active (running) ...

此时,Zabbix 的服务器端已经正确安装和配置了。

配置 Zabbix Web 前端

如介绍中所述,Zabbix 有一个基于 Web 的前端,我们将用于可视化收集的数据。但是,必须配置此接口。

使用 Web 浏览器,进入 URL http://localhost/zabbix

Zabbix monitoring server Frontend Setup

点击 Next step

snapshot2

确保所有的值都是 Ok,然后再次单击 Next step

Zabbix MySQL configuration

输入 MySQL zabbix 的用户密码,然后点击 Next step

Zabbix server details

单击 Next step ,安装程序将显示具有所有配置参数的页面。再次检查以确保一切正确。

Zabbix pre-installation details

Zabbix installation finished

点击 Next step 进入最后一页。

点击完成以完成前端安装。默认用户名为 Admin,密码是 zabbix

Zabbix 服务器入门

Zabbix login interface

使用上述凭证登录后,我们将看到 Zabbix 面板:

zabbix dashboard

前往 Administration -> Users,了解已启用帐户的概况:

Zabbix users

通过点击 Create user 创建一个新帐户。

Zabbix User Creation

点击 Groups 中的 Add,然后选择一个组:

snapshot11

保存新用户凭证,它将显示在 Administration -> Users 面板中。

请注意,在 Zabbix 中,主机的访问权限分配给用户组,而不是单个用户。

总结

我们结束了 Zabbix Server 安装的教程。现在,监控基础设施已准备好完成其工作并收集有关需要在 Zabbix 配置中添加的服务器的数据。


via: https://www.unixmen.com/monitoring-server-install-zabbix-ubuntu-16-04/

作者:Giuseppe Molica 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这个快速入门教程中,我们使用 Azure CLI 创建一个 Kubernetes 集群,然后在集群上部署运行由 Web 前端和 Redis 实例组成的多容器应用程序。一旦部署完成,应用程序可以通过互联网访问。

示例应用截图

这个快速入门教程假设你已经基本了解了 Kubernetes 的概念,有关 Kubernetes 的详细信息,请参阅 Kubernetes 文档

如果您没有 Azure 账号,请在开始之前创建一个免费帐户

登录 Azure 云控制台

Azure 云控制台是一个免费的 Bash shell,你可以直接在 Azure 网站上运行。它已经在你的账户中预先配置好了, 单击 Azure 门户右上角菜单上的 “Cloud Shell” 按钮;

Cloud Shell

该按钮会启动一个交互式 shell,您可以使用它来运行本教程中的所有操作步骤。

 Cloud Shell 截图

此快速入门教程所用的 Azure CLI 的版本最低要求为 2.0.4。如果您选择在本地安装和使用 CLI 工具,请运行 az --version 来检查已安装的版本。 如果您需要安装或升级请参阅安装 Azure CLI 2.0

创建一个资源组

使用 az group create 命令创建一个资源组,一个 Azure 资源组是指 Azure 资源部署和管理的逻辑组。

以下示例在 eastus 区域中创建名为 myResourceGroup 的资源组。

az group create --name myResourceGroup --location eastus

输出:

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

创建一个 Kubernetes 集群

使用 az acs create 命令在 Azure 容器服务中创建 Kubernetes 集群。 以下示例使用一个 Linux 主节点和三个 Linux 代理节点创建一个名为 myK8sCluster 的集群。

az acs create --orchestrator-type=kubernetes --resource-group myResourceGroup --name=myK8sCluster --generate-ssh-keys 

几分钟后,命令将完成并返回有关该集群的 json 格式的信息。

连接到 Kubernetes 集群

要管理 Kubernetes 群集,可以使用 Kubernetes 命令行工具 kubectl

如果您使用 Azure CloudShell ,则已经安装了 kubectl 。如果要在本地安装,可以使用 az acs kubernetes install-cli 命令。

要配置 kubectl 连接到您的 Kubernetes 群集,请运行 az acs kubernetes get-credentials 命令下载凭据并配置 Kubernetes CLI 以使用它们。

az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster

要验证与集群的连接,请使用 kubectl get 命令查看集群节点的列表。

kubectl get nodes

输出:

NAME                    STATUS                     AGE       VERSION
k8s-agent-14ad53a1-0    Ready                      10m       v1.6.6
k8s-agent-14ad53a1-1    Ready                      10m       v1.6.6
k8s-agent-14ad53a1-2    Ready                      10m       v1.6.6
k8s-master-14ad53a1-0   Ready,SchedulingDisabled   10m       v1.6.6

运行应用程序

Kubernetes 清单文件为集群定义了一个所需的状态,包括了集群中应该运行什么样的容器镜像。 对于此示例,清单用于创建运行 Azure Vote 应用程序所需的所有对象。

创建一个名为 azure-vote.yaml ,将下面的内容拷贝到 YAML 中。

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      containers:
      - name: azure-vote-back
        image: redis
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      containers:
      - name: azure-vote-front
        image: microsoft/azure-vote-front:redis-v1
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front

使用 kubectl create 命令来运行该应用程序。

kubectl create -f azure-vote.yaml

输出:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

测试应用程序

当应用程序的跑起来之后,需要创建一个 Kubernetes 服务,将应用程序前端暴露在互联网上。 此过程可能需要几分钟才能完成。

要监控这个进程,使用 kubectl get service 命令时加上 --watch 参数。

kubectl get service azure-vote-front --watch

最初,azure-vote-front 服务的 EXTERNAL-IP 显示为 pending 。 一旦 EXTERNAL-IP 地址从 pending 变成一个具体的 IP 地址,请使用 “CTRL-C” 来停止 kubectl 监视进程。

azure-vote-front   10.0.34.242   <pending>     80:30676/TCP   7s
azure-vote-front   10.0.34.242   52.179.23.131   80:30676/TCP   2m

现在你可以通过这个外网 IP 地址访问到 Azure Vote 这个应用了。

浏览 Azure Vote 应用截图

删除集群

当不再需要集群时,可以使用 az group delete 命令删除资源组,容器服务和所有相关资源。

az group delete --name myResourceGroup --yes --no-wait

获取示例代码

在这个快速入门教程中,预先创建的容器镜像已被用于部署 Kubernetes 。相关应用程序代码 Dockerfile 和 Kubernetes 清单文件可在 GitHub 中获得。Github 仓库地址是 https://github.com/Azure-Samples/azure-voting-app-redis

下一步

在这个快速入门教程中,您部署了一个 Kubernetes 集群,并部署了一个多容器应用程序。

要了解有关 Azure 容器服务的更多信息,走完一个完整的从代码到部署的全流程,请继续阅读 Kubernetes 集群教程。


via: https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-walkthrough

作者:neilpetersonmmacy 译者:rieonke 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

什么是 Let’s Encrypt

Let’s Encrypt 是互联网安全研究组织 (ISRG) 提供的免费证书认证机构。它提供了一种轻松自动的方式来获取免费的 SSL/TLS 证书 - 这是在 Web 服务器上启用加密和 HTTPS 流量的必要步骤。获取和安装证书的大多数步骤可以通过使用名为 Certbot 的工具进行自动化。

特别地,该软件可在可以使用 shell 的服务器上使用:换句话说,它可以通过 SSH 连接使用。

在本教程中,我们将看到如何使用 certbot 获取免费的 SSL 证书,并在 Ubuntu 16.04 服务器上使用 Nginx。

安装 Certbot

第一步是安装 certbot,该软件客户端可以几乎自动化所有的过程。 Certbot 开发人员维护自己的 Ubuntu 仓库,其中包含比 Ubuntu 仓库中存在的软件更新的软件。

添加 Certbot 仓库:

# add-apt-repository ppa:certbot/certbot

接下来,更新 APT 源列表:

# apt-get update

此时,可以使用以下 apt 命令安装 certbot

# apt-get install certbot

Certbot 现已安装并可使用。

获得证书

有各种 Certbot 插件可用于获取 SSL 证书。这些插件有助于获取证书,而证书的安装和 Web 服务器配置都留给管理员。

我们使用一个名为 Webroot 的插件来获取 SSL 证书。

在有能力修改正在提供的内容的情况下,建议使用此插件。在证书颁发过程中不需要停止 Web 服务器。

配置 NGINX

Webroot 会在 Web 根目录下的 .well-known 目录中为每个域创建一个临时文件。在我们的例子中,Web 根目录是 /var/www/html。确保该目录在 Let’s Encrypt 验证时可访问。为此,请编辑 NGINX 配置。使用文本编辑器打开 /etc/nginx/sites-available/default

# $EDITOR /etc/nginx/sites-available/default

在该文件中,在 server 块内,输入以下内容:

 location ~ /.well-known {
    allow all;
 }

保存,退出并检查 NGINX 配置:

# nginx -t

没有错误的话应该会显示如下:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 NGINX:

# systemctl restart nginx

使用 Certbot 获取证书

下一步是使用 Certbot 的 Webroot 插件获取新证书。在本教程中,我们将保护示例域 www.example.com。需要指定应由证书保护的每个域。执行以下命令:

# certbot certonly --webroot --webroot-path=/var/www/html -d www.example.com

在此过程中,Cerbot 将询问有效的电子邮件地址,用于进行通知。还会要求与 EFF 分享,但这不是必需的。在同意服务条款之后,它将获得一个新的证书。

最后,目录 /etc/letsencrypt/archive 将包含以下文件:

  • chain.pem:Let’s Encrypt 加密链证书。
  • cert.pem:域名证书。
  • fullchain.pemcert.pemchain.pem 的组合。
  • privkey.pem:证书的私钥。

Certbot 还将创建符号链接到 /etc/letsencrypt/live/domain_name/ 中的最新证书文件。这是我们将在服务器配置中使用的路径。

在 NGINX 上配置 SSL/TLS

下一步是服务器配置。在 /etc/nginx/snippets/ 中创建一个新的代码段。 snippet 是指一段配置,可以包含在虚拟主机配置文件中。如下创建一个新的文件:

# $EDITOR /etc/nginx/snippets/secure-example.conf

该文件的内容将指定证书和密钥位置。粘贴以下内容:

ssl_certificate /etc/letsencrypt/live/domain_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain_name/privkey.pem;

在我们的例子中,domain_nameexample.com

编辑 NGINX 配置

编辑默认虚拟主机文件:

# $EDITOR /etc/nginx/sites-available/default

如下:

server {
 listen 80 default_server;
 listen [::]:80 default_server;
 server_name www.example.com
 return 301 https://$server_name$request_uri;

 # SSL configuration
 #
 listen 443 ssl default_server;
 listen [::]:443 ssl default_server;
 include snippets/secure-example.conf
 #
 # Note: You should disable gzip for SSL traffic.
 # See: https://bugs.debian.org/773332
 # ...  
}

这将启用 NGINX 加密功能。

保存、退出并检查 NGINX 配置文件:

# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 NGINX:

# systemctl restart nginx

总结

按照上述步骤,此时我们已经拥有了一个安全的基于 NGINX 的 Web 服务器,它由 Certbot 和 Let’s Encrypt 提供加密。这只是一个基本配置,当然你可以使用许多 NGINX 配置参数来个性化所有东西,但这取决于特定的 Web 服务器要求。


via: https://www.unixmen.com/encryption-secure-nginx-web-server-ubuntu-16-04/

作者:Giuseppe Molica 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本教程将指导你如何使用 iRedMail 服务器配置 Mozilla Thunderbird 客户端,以便通过 IMAPS 和 SMTP 提交协议发送和接收邮件,如何使用 Samba AD LDAP 服务器设置联系人数据库以及如何配置其他相关的邮件功能,例如通过 LDAP 数据库离线副本启用 Thunderbird 联系人。

安装和配置 Mozilla Thunderbird 客户端的过程适用于安装在 Windows 或 Linux 操作系统上的 Thunderbird 客户端。

要求

  1. 如何在 CentOS 7 上安装 iRedMail 集成到 Samba4 AD
  2. 如何配置和集成 iRedMail 服务到 Samba4 AD DC
  3. 将 iRedMail Roundcube 与 Samba4 AD DC 集成

第一步:为 iRedMail 服务器配置 Thunderbird

1、 在安装完成 Thunderbird 邮件客户端之后,点击启动器或者快捷方式打开程序,并在首屏检查 E-mail 系统集成,然后点击跳过集成按钮继续。

Thunderbird System Integration

Thunderbird 系统集成

2、 在欢迎界面点击跳过并使用我已存在的邮件按钮添加你的名字、你的 Samba 帐户邮件地址以及密码,检查记住密码区域并点击继续按钮启动你的邮箱帐户设置。

在 Thunderbird 客户端尝试识别由 iRedMail 服务器提供的正确的IMAP设置后,点击手动配置按钮手动设置 Thunderbird。

Thunderbird Mail Account Setup

Thunderbird 邮箱帐户设置

3、 邮件帐户设置窗口展开后,通过添加正确的 iRedMail 服务器 FQDN 来手动编辑 IMAP 和 SMTP 设置,为邮件服务添加安全端口(IMAPS 为 993,发送为 587),为每个端口选择合适的 SSL 通信通道并验证然后点击完成完成设置。使用以下图片作为指导。

Thunderbird iRedMail Settings

Thunderbird iRedMail 设置

4、 由于你的 iRedMail 服务器使用自签名证书,屏幕上应会显示一个新的“安全异常”窗口。点击永久存储此异常并按确认安全异常按钮添加此安全性异常,Thunderbird 客户端应该就被成功配置了。

Thunderbird Security Exception

Thunderbird 安全异常

你会看到你的域帐号的所有已收文件,并且你能够从你的域或者其他域发送或者接收文件。

Domain Mails Inbox

域邮箱收件箱

第二步:使用 Samba AD LDAP 设置 Thunderbird 联系人数据库

5、 为了让 Thunderbird 客户端查询 Samba AD LDAP 数据库中的联系人,点击“设置”菜单,在左边面板右键单击您的帐户,如下图片所示找到 “Composition & Addressing → Addressing → Use a different LDAP server → Edit Directories”

Thunderbird Samba AD LDAP Settings

Thunderbird Samba AD LDAP 设置

Thunderbird Composition & Addressing Settings

Thunderbird Composition & Addressing 设置

6、 LDAP 目录服务器窗口应该带开了,点击添加按钮并将下面的内容填写到目录服务器属性窗口中:

在 “常规” 选项卡上添加此对象的描述性名称,添加你的域的名称或 Samba 域控制器的 FQDN,你的域的基本 DN 形式是 “dc=你的域,dc=tld”,LDAP 端口号 389,vmail 绑定 DN 帐户用于以 vmail@your\_domain.tld 的形式查询 Samba AD LDAP 数据库。

使用下面的截图作为指导:

Directory Server Properties

目录服务器属性

7、 在下一步中,从目录服务器属性进入高级选项卡,并在搜索过滤栏添加下面的内容:

(&(mail=*)(|(&(objectClass=user)(!(objectClass=computer)))(objectClass=group)))

Add Search Filter

添加搜索过滤

让其他的设置保持默认,并点击 OK 按钮来应用更改,再次点击 OK 按钮关闭 LDAP 目录服务器窗口,在账户设置界面点击 OK 关闭窗口。

Select LDAP Directory Server

选择 LDAP 目录服务器

8、 要测试 Thunderbird 是否能够向 Samba AD LDAP 数据库请求联系人,点击上方的地址簿图标,选择之前创建的 LDAP 数据库名。

添加绑定 DN 帐户密码来查询 AD LDAP 服务器,勾选使用密码管理器记住密码,然后点击确定按钮保存更改并关闭窗口。

Thunderbird Samba AD LDAP Testing

Thunderbird Samba AD LDAP 测试

9、 使用上面的搜索框搜索 Samba AD 联系人,并提供一个域名帐户名。注意没有在 AD E-mail 字段声明的邮件地址的 Samba AD 帐户不会在 Thunderbird 地址簿搜索中列出。

Search Samba AD Mail Contacts

搜索 Samba AD 邮件联系人

10、 要在编写电子邮件时搜索联系人,请单击视图→联系人侧边栏或按 F9 键打开 “联系人” 面板。

Search Mail Contacts in Thunderbird

在 Thunderbird 中搜索联系人

11、 选择合适的地址簿,你应该能够搜索并添加收件人的电子邮件地址。发送第一封邮件时,会出现一个新的安全警报窗口。点击确认安全例外,邮件应该就能发送到收件人地址中了。

Send Mail in Thunderbird

在 Thunderbird 发送邮件

12、 如果你想通过仅针对特定 AD 组织单位的 Samba LDAP 数据库搜索联系人,请从左边面板编辑你的目录服务器名称的地址簿,点击属性并添加自定义的 Samba AD OU,如下所示。

ou=your_specific_ou,dc=your_domain,dc=tld 

Search Contacts in Samba LDAP Database

Samba LDAP 数据库中搜索联系人

第三步:设置 LDAP 离线副本

13、 要为 Thunderbird 配置 Samba AD LDAP 离线副本,请点击“地址簿”按钮,选择你的 LDAP 通讯录,打开“目录服务器属性” -> “常规” 选项卡,将端口号更改为 3268。

接着切换到离线选项卡并点击“现在下载”按钮开始在本地复制 Samba AD LDAP 数据库。

Setup LDAP Offline Replica in Thunderbird

在 Thunderbird 设置 LDAP 离线副本

Download LDAP Database for Offline

为离线下载 LDAP 数据库

当同步联系人完成后,你将收到消息复制成功通知。点击 OK 并关闭所有窗口。在无法访问 Samba 域控制器的情况下,你仍然可以通过离线方式进行搜索。


作者简介:

我是一个电脑上瘾的家伙,开源和基于 linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约4年的经验。


via: https://www.tecmint.com/configure-thunderbird-with-iredmail-for-samba4-ad-ldap/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出