设为首页 收藏本站
查看: 1185|回复: 0

Powershell DSC 5.0 - 配置Linux

[复制链接]

尚未签到

发表于 2018-9-2 10:19:52 | 显示全部楼层 |阅读模式
  Powershell DSC的一个强悍之处就在于他是一个跨平台的产品。并不仅仅可以在windows上执行,他还可以管理交换机,存储,Linux等等。这个主要是通过OMI服务器来实现的。
  OMI的主要目的就是一个标准化的管理架构来管理一系列的服务。
  OMI's primary goal is to provide a rich, high-performance, standards-based management stack that is suitable for a wide range of management applications. This includes cloud management, storage management, server hardware management, device management, and network management, on both large and small systems (embedded and mobility).
  关于OMI可以参考,这是一个开源的平台
  http://blogs.technet.com/b/windows-server-china-blog/archive/2012/07/19/open-management-infrastructure.aspx
  理论不多说,直接上手试试看。
  下面以CentOS 7 为例进行一个推送的实验。
  基本流程如下:
  1.在节点上安装OMI服务器
  2.在节点上安装DSC的组件
  3.配置服务器上的DSC资源
  4.配置mof文件然后推送到节点
  首先需要安装一些必要的安装包
  Putty登陆到一个CentOS 7的虚拟机上
yum groupinstall 'Development Tools'  
yum install pam-devel
  
yum install openssl-devel
  
yum install wget
DSC0000.jpg

DSC0001.jpg

DSC0002.jpg

DSC0003.jpg

  然后下载解压OMI的安装包
mkdir /root/downloads  
cd /root/downloads
  
wget https://collaboration.opengroup.org/omi/documents/30532/omi-1.0.8.tar.gz
  
tar -xvf omi-1.0.8.tar.gz
DSC0004.jpg

  配置安装OMI
cd omi-1.0.8/  
./configure
  
make
  
make install
DSC0005.jpg

DSC0006.jpg

DSC0007.jpg

DSC0008.jpg

DSC0009.jpg

  安装python和Linux DSC的组件
yum install python  
yum install python-devel
  
cd /root/downloads
  
wget https://github.com/MSFTOSSMgmt/WPSDSCLinux/releases/download/v1.0.0-CTP/PSDSCLinux.tar.gz
  
tar -xvf PSDSCLinux.tar.gz
  
mv ./dsc/* ./
  
ls -l
  
make
  
make reg
DSC00010.jpg

DSC00011.jpg

DSC00012.jpg

DSC00013.jpg

DSC00014.jpg

DSC00015.jpg

  最后启动OMI服务器就行了
OMI_HOME=/opt/omi-1.0.8 /opt/omi-1.0.8/bin/omiserver -d  现在来配置服务器的DSC
  首先需要下载对应的Linux资源
  https://github.com/MSFTOSSMgmt/WPSDSCLinux/releases/download/v1.0.0-CTP/nx-PSModule.zip.
  下载之后解压拷贝到  C:\Windows\System32\WindowsPowerShell\v1.0\Modules
  然后查看是否已经成功加载, 可以看见多了几个nx开头的资源,我这个貌似不是最新版,从微软网页上可以看见更多的资源。
  nxFile, 管理文件
  nxPackage, 添加删除Package
  nxScript, 运行脚本
  nxService,管理服务
  nxUser, 管理用户
DSC00016.jpg

  接下来配置一个测试用的配置文件,这里我创建了创建了一个文件和一个用户
Configuration MyDSCDemo  
{
  
    Import-DSCResource -module nx
  
    Node "10.2.1.79"{
  
        nxFile myTestFile
  
        {
  
            Ensure = "Present"
  
            Type = "File"
  
            DestinationPath = "/tmp/dsctest"
  
            Contents="This is my DSC Test!"
  
        }
  
        # Install packages if they are not installed
  

  
        nxUser test {
  
            username="test"
  
            ensure="Present"
  
            password="password"
  
        }
  

  
    }
  
}
  
mydscdemo -outputpath c:\temp\demo
  为了连接到OMI服务器,我们需要创建一个CIM的session,默认端口是5986/5985,记得在Linux上打开对应的防火墙策略。
$securePass=ConvertTo-SecureString -string "Goat2015" -AsPlainText -Force  
$cred= New-Object System.Management.Automation.PSCredential "root", $SecurePass
  
$opt = New-CimSessionOption -UseSsl:$true -SkipCACheck:$true -SkipCNCheck:$true -SkipRevocationCheck:$true
  
$demo1=New-CimSession -Credential:$cred -ComputerName 10.2.1.79 -Port:5986 -Authentication:basic -SessionOption:$opt -OperationTimeoutSec:90
  直接推送,咦,报错?!!!
  经过检查,这个东西其实是一个bug或者说是不兼容。WMF 5.0 Preview(DSC 2.0)会自动生成configrationName 和 Name, 而这个语法在4.0(DSC 1.0)和Linux上不存在,因此会报错。
DSC00017.jpg

  处理方法很简单,要么手动删掉,要么用4.0的机器生成一个。
  再次推送,成功!
DSC00018.jpg

  登陆Putty,查看确认
  cat /tmp/dsctest
DSC00019.jpg

  cat /etc/passwd
DSC00020.jpg

  实验成功。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-561432-1-1.html 上篇帖子: PowerShell-saluteiceman 下篇帖子: Powershell 获取特定的网页信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表