为将Ubuntu服务器置于Ansible控制下做好准备
由于与CentOS相比,这次的过程更加复杂并需要更多准备工作。考虑到将来可能需要再次进行类似的操作,我会在这里记录备忘。
Ubuntu16.04 套件
做的事情
-
- 実行ユーザ作成
-
- (nano -> vimにする)
-
- ansibleのsudo追加
-
- 鍵の設定
-
- (~/.ssh/configに追記)
-
- python2.7のインストール
- dry-runのためにpython-aptをインストール
创建执行用户
$ sudo adduser ansible
将nano更改为vim。
帮忙改变有很多Vim用户的地方是一种友善的举动。
$ sudo update-alternatives --config editor
在中国,只需要一种选项,将以下内容以本地语言进行释义:
给Ansible增加sudo权限。
由於構築系的處理常常使用become:yes,因此在此情況下,最好將密碼設為無需輸入即可使用sudo。
$ vi /etc/sudoers.d/users
#以下を追記
ansible ALL=(ALL) NOPASSWD: ALL
设置密码。
使用安装了Ansible的服务器创建的相应公钥将其注册到客户端。
从安装了Ansible的服务器执行以下命令。
$ ssh-copy-id -i ~/.ssh/[[対象の公開鍵]].pub ansible@<target_host>
请在`~/.ssh/config`文件中添加内容。
为了在执行ansible时顺利进行ssh连接,将客户端信息添加到配置文件中。
在ansible服务器中,追加以下内容到~/.ssh/config。
host [[対象サーバのホストを記入]]
StrictHostKeyChecking no
IdentityFile ~/.ssh/[[秘密鍵]]
↑只需要最低的设置。
安装Python 2.7
ansible默认使用python 2系列,因此我们需要安装2.7版本。
一开始我尝试使用pyenv进行版本管理,但在playbook中尝试执行sudo tasks时失败,所以最终我还是安装了普通的2.7版本并更改了路径。
可能还有其他更好的方法..
$ sudo apt-get install python2.7
似乎默认情况下已经包含了Python 2.7和3.6,但是在进行最小化安装时,没有安装Python 2系列,所以如果没有的话,我会进行安装。
如果保持这样的话无法使用命令如 python2.7 -V,因此将创建以下的符号链接。
$ ls -la /usr/bin/python*
#pythonコマンドがないことを確認してから
$ sudo ln -s /usr/bin/python2.7 /usr/bin/python
#確認
$ ls -la /usr/bin/python
lrwxrwxrwx 1 root root 9 Nov 24 09:52 /usr/bin/python -> python2.7
$ python -V
Python 2.7.12
顺便提一下,如果想要在ansible中使用python3系列,只需在执行playbook时加上以下选项即可运行。
-e ‘ansible_python_interpreter=/usr/bin/python3’
为了进行试运行,在本地安装Python-apt。
如果没有这个,无法以检查模式运行。
如果没有这个,就不能以检查模式运行。
$ sudo apt-get install python-apt
鉴于我经常使用它,所以我会安装python-selinux。(每次尝试使用ansible的apt模块安装时都会遇到错误,让我感到很困扰。)
以上。 .)