Ansible 实战:基于docker运行ansible

准备好安装了Ansible的主机,作为实验环境。
有一台新安装的Centos7系统,利用ansible在主机上完成以下操作:

  • 主机初始化设置,主要是yum
  • 安装python3
  • 安装docker,并且制作一个ansible的镜像
  • SSH和用户账号安全设置

准备工作

准备好一台安装了Centos7系统的主机,然后去ansible的主机上对目标主机进行操作。
我这里的ansible也是新安装的,所以如果遇到一些没有的工具,也会在遇到的时候一步一步进行添加。下面是汇总的内容。

对于一台新装好的ansible,还是会缺少很多依赖项,有些和特定模块关联的比较紧密,可以在使用特定模块的时候再安装。
还有一些使用范围比较广,建议先装好:

  • yum 安装 sshpass
  • 目标主机安装了python3,就需要将pip更新到最新,并且安装好selinux

修改ansible.cfg配置文件
我的实验环境,为了测试方便,暂时只有下面3项做了设置:

[defaults]
#host_key_checking = False
inventory = ~/hosts
vault_password_file = ~/vault_password_file

配置文件第一行的[defaults]不能省。

添加主机

编辑 /etc/ansible/hosts 添加主机信息:

host1 ansible_host=192.168.24.172

我的实验环境是直接放到了家目录里了

先用ping模块测试一下连通性:

[root@Ansible ~]# ansible host1 -m ping -k
SSH password: 
host1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
[root@Ansible ~]# 

这里使用了-k参数,手动输入密码。
测试联通性,可以再加上-c参数,指定local。不过这里要验证一下ssh连接。

安装 sshpass
如果是第一次使用,可能会提示需要安装sshpass。这个简单,yum安装即可:

$ yum install sshpass

添加密码信息
最好的做法是用SSHKey实现免密码登录。这里讲使用密码的情况。
为了方便,也可以把密码加到配置中,这样不用每次都输入密码:

host2 ansible_host=192.168.24.172 ansible_ssh_pass=123456

这样做,密码就是明码存放了,很不安全。下面有更安全的做法。

加密保存密码

使用 ansible-vault 来加密敏感信息

修改配置文件
这步不是必须的,运行命令的时候可以加上参数 --vault_password_file 来指定你的密码文件。不过通过设置就可以把这个参数省了:

$ vi /etc/ansible/ansible.cfg
# If set, configures the path to the Vault password file as an alternative to
# specifying --vault-password-file on the command line.
vault_password_file = ~/vault_password_file

使用openssl来生成随机密码
使用 openssl 来生成随机的base64编码的内容:

$ openssl rand -base64 128 -out vault_password_file
$ chmod a-w vault_password_file
$ chattr +i vault_password_file

文件生成后,对文件做了一些保护,防止文件被修改。修改文件的ugo权限只对普通用户有效,root依然可以修改文件。后面的命令可以锁定文件,即使root也无法修改了,防止对文件的意外操作。
如果需要修改或者删除文件,可以先把文件解锁,只要把命令的 +i 改成 -i 就可以了:

$ chattr -i vault_password_file

生成加密后的字符串
下面是使用 ansible-vault 来生成加密后的字符串:

[root@Ansible ~]# ansible-vault encrypt_string "123456" --name ansible_ssh_pass
ansible_ssh_pass: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          33336539373437373161326537323836343163633532396235383334326562303134626565613537
          3134313631393931376361363761313165393966613831360a343338353765326331663433613533
          31636238613133363639336130613264386366363931663230333663363062333836323730383563
          6562626265393535310a62373263386363376536306663626530326531666137346432
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值