Ansibleを使ってVagrant上にmssqlserverを構築する
Ansibleを使ってVagrant上にmssqlserverを構築する。
勉強もとのサイトのサンプルコードと異なる箇所のみ記載していきます。
大きな違いは、サンプルコードは、python3.7をインストールしていますが、CentOS7.8ではすでにインストール済であることです。
事前準備
プラグインのインストール
vagrant-vbguestは、ホストOSとゲストOSのGuestAdditionsのバージョンを自動で合わせてくれるVagrantのプラグインです。
ホストとゲスト間でフォルダーを共有するには「Guest Additions」が必要です。
今回は、競合しないよう最新のViertualBoxとCentoOSを使いますが一応入れておく。
$ vagrant plugin install vagrant-vbguest ※不要な場合はVagrantfileでconfig.vbguest.auto_update = falseすること。
今回は、CentOSの最新版
config.vm.box = "bento/centos-7"
config.vm.box_version = "202006.16.0"
を使うことでhost側と差異がでないようにした。
vagrant up後のバージョン確認$ cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)
ansible構成作成
Vagrantファイル作成
# ansibleインストール用shell $ansible_install = </dev/null 2>&1; then yum install -y python3 pip3 install virtualenv # vagrantユーザとしてvirtualenvとansibleをインストール su -c "source /vagrant/provision/bash/install_ansible.sh" vagrant fi SHELL Vagrant.configure("2") do |config| config.vm.box = "bento/centos-7" config.vm.box_version = "202006.16.0" config.vm.network "private_network", ip: "192.168.33.10" config.vm.provider "virtualbox" do |vm| # メモリを設定 vm.memory = 8184 # Linked Cloneでbase coreを作成し、nodeを作っていく。nodeが増えると容量節約となる(今回はあまり意味ない) vm.linked_clone = true vm.customize [ "modifyvm", :id, "--cpus", "4", "--ioapic", "on"] # vbguestは共有フォルダを作るために必要 config.vbguest.auto_update = true end # ansible vaultのためにパーミッションを指定 config.vm.synced_folder "./provision", "/provision", id: "ansible", owner: "vagrant", group: "vagrant", mount_options: ["dmode=775,fmode=664"] # ansibleをインストール config.vm.provision "shell", inline: $ansible_install # ansibleを実行 config.vm.provision "shell", inline: <<-SHELL # timezoneを日本に変更 timedatectl set-timezone Asia/Tokyo # localeを日本に変更 localectl set-locale LANG=ja_JP.UTF-8 # virtualenv起動(install_ansible.shで実行しているので不要?) source /home/vagrant/venv/bin/activate # provision 実行→ここが難しい。 DEFAULT_VAULT_PASSWORD_FILE=ANSIBLE_CONFIG=/provision/.ansible.cfg ansible-playbook -i /provision/playbooks/inventory/hosts /provision/playbooks/play.yml -c local -v --vault-password-file /provision/playbooks/.passwd SHELL end
/vagrant/provision/bash/install_ansible.sh
このスクリプトは、以下を実行する。
virtualenvのインストールとvenvの生成
pip でansibleのインストール
#!/bin/bash
# $ curl -kL "https://bootstrap.pypa.io/get-pip.py" | sudo /usr/bin/python3
$ cd $HOME
$ /usr/local/bin/virtualenv venv
$ source $HOME/venv/bin/activate
$ pip install ansible
$ ansible --version
これでCentOS7.8でVagrantUPできます。
参考;
コメント
コメントを投稿